
    #?h                     <    S SK r S SKrS SKrS SKJr   " S S5      rg)    N)Alfitc                   J    \ rS rSrS rS rSS jrSS jrS rS r	SS	 jr
S
rg)Lensu   c                     Xl         [        U R                   5      U l        U R                   R                  U l        SU l        U R                  S-   U l        0 U l        SU l        SU l        0 U l	        g )Nz.lensu.jsonz.gzr   )
er   alfit
do_verbose	ext_no_gzextlengthscount_papidscount_lengthsraw)selferimps     !/home/ernad/ernad/python/lensu.py__init__Lensu.__init__
   s_    466]
&&++&>>E)    c           	         [        U R                  5      S:X  a  U R                  5       U l        Sn0 nU R                   H  nXR                  U   -  nXU'   M     0 U l        0 U l        U R                   H6  nU R                  U   U-  U R                  U'   X#   U-  U R                  U'   M8     U R
                  (       aA  U R                   H0  n[        U SU R                  U    SU R                  U    35        M2     gg)z-> used by the grundr    N)lenr   getrelatcumulr
   print)r   totalcumulslengths       r   serveLensu.serve   s    txx=AxxzDHhhFXXf%%E"6N  

hhF!%&!1E!9DJJv!'%!7DJJv  ??(($**V"4!5Qtzz&7I6JKL # r   Nc                    U R                   nUc!  U R                  5       (       a  [        S5        gU R                   R                  nU R                  R                  SS9nSnU H  nU R                  (       a  [        SU-   S-   S	S
S9  [        R                  " U5      U l	        U R                  (       a
  [        SS	S9  U R                   H  nU R                  U5        M     US-  nUc  M  Xb:  d  M    O   [        R                  " U R                  5      n	[        R                  " U R                  5      n
0 n[        U R                   R#                  5       5      nU H  nU R                   U   X'   M     U R$                  nU SU	 SU
 U 3nUR&                  S   S-   U-   n[        R(                  " UU5        [        SU-   5        [        R*                  " UU5        g)z#-> makes update for all alfit filesNzThe lensu is up to date.Frandom)orderr   zlensu loads z ... T )flushenddone)r'      _fitli/zlensu wrote )r   is_up_to_dater   max_issuedater	   	out_fufisr
   filerloadd
feed_papidtinnusmaker   r   sortedr   keysr   dirsdumpclear_by_extension)r   r
   	max_filesr   	issuedatealfit_fufiscount_files
alfit_fufipapidr   r   outnumbersr    r   finaout_fufis                    r   updateLensu.update+   s   FF!3!3!5!5,-FF((	jj***:%Jnz1G; b*ZZ
+DFfD)&  1K$)A & {{4#4#45D$6$67**,-F,,v.CK hhAl^1]OC5A66'?S(4/

3!nx'(  3/r   c                     [         R                  " U5      U l        U R                   H  nU R                  U5        M     g )N)r1   r2   r3   r4   )r   r@   r
   rA   s       r   update_for_fufiLensu.update_for_fufiM   s,    J'VVEOOE" r   c                     U =R                   S-  sl         [        U R                  U   5      nU =R                  U-  sl        X R                  ;  a  SU R                  U'   g U R                  U==   S-  ss'   g )Nr*   )r   r   r3   r   r   )r   rA   r    s      r   r4   Lensu.feed_papidS   se    QTVVE]#f$%#$DLL V!r   c                     U R                   nSU 3nU R                  R                  R                  U R                  R                  S   U5      nUc  [        SU 35        g[        R                  " U5      nU$ )z6loads last ensu.json.gz file fit_count --> paper_count*r,   Nzlensu has not file )r   r   foldalast_by_mtimer9   r   r1   r2   )r   r   globfufidatas        r   r2   
Lensu.load\   sh    hh3%yvv||))$&&++g*>E<'u-.zz$r   c                       U R                   nU R                   R                  nUR                  S   S-   U-   S-   U R                  -   n[	        [
        R
                  " U5      5      S:X  a  gg)z=<- considered up to date if there is a file for max_issuedater,   r-   z_*_*r   FT)r   r/   r9   r   r   rQ   )r   r
   r   r/   glob_strings        r   r.   Lensu.is_up_to_dateg   sf    "FF,,ffWo+m;fDHH tyy%&!+r   )r	   r   r   r   r3   r
   r   r   r   r   r   r   )FN)F)__name__
__module____qualname____firstlineno__r   r!   rF   rI   r4   r2   r.   __static_attributes__ r   r   r   r      s'    M$ 0D#"	r   r   )r1   rQ   r5   r	   r   r   r]   r   r   <module>r^      s       j jr   