
    Z'i                     x    d Z ddlZddlZddlmZ dZdZdZdZdZ	d	Z
d
ZdZdZdZdZdZdZdZdZdZ G d d      Zy)u>   
Created on 14 нояб. 2016 г.

@author: Shelepnev, Dmitry
    N)configAUTHORGENRETITLESERIESSERNOFILESIZELIBIDDELEXTDATELANGINSNOFOLDERLIBRATEKEYWORDSc                       e Zd Zd fdZd Zy)Inpxc                      y)Nr    )inpxinpsizes      &/opt/sopds/opds_catalog/inpx_parser.py<lambda>zInpx.<lambda>    s        c                 H   || _         t        j                  j                  |      | _        d| _        d| _        g | _        d| _        g | _	        d| _
        d| _        d| _        || _        || _        t        j                   | _        t        j$                  | _        d| _        y )NFutf-8   :r   )	inpx_fileospathdirnameinpx_cataloginpx_structureinpx_foldersinpx_formatinpx_archiveinpx_arch_fnamesinpx_encodinginpx_separatorinpx_itemseparatorappend_callbackinpskip_callbackr   SOPDS_INPX_TEST_ZIPTEST_ZIPSOPDS_INPX_TEST_FILES
TEST_FILESerror)selfr"   r/   r0   s       r   __init__zInpx.__init__    s    "GGOOI6#!! "$%"%. 022 66
r   c                    t        j                  | j                  d      }|j                         }d|v rpd| _        |j                  d      }t        |j                         d      }|j                  d      | _	        |j                          t        | j                  v | _        nCt        t        t        t         t"        t$        t&        t(        t*        t,        t.        t0        g| _	        |D ]`  }t2        j4                  j7                  |      \  }}|j9                         dk7  r:| j;                  | j                  ||j=                  |      j>                        rq|j                  |      }|D ]  }	|	j                  | j@                        }
i }| j                  s|d|t        <   tC        | j                        D ]  \  }}	 |t        t        t         fv rV|
|   jE                  | jF                        j                  | jH                        ||<   d||   v r6||   jK                  d       n!|
|   jE                  | jF                        ||<    |t*           jO                         d	vrt2        j4                  jQ                  | jR                  |t                 }| jT                  s| jV                  r!t2        j4                  jY                  |      sf| jV                  r;|t$           d
|t,           t        j                  |d      j                         vr| j[                  | j                  ||        |j                          c |j                          y # tL        $ r	 d||<   Y w xY w)Nrzstructure.infoTr   ;z.INPz.zip )r;   0.).zipfileZipFiler"   namelistr'   openstrreadsplitr)   closesFolderr(   sAuthorsGenresTitlesSeriessSerNosFilesSizesLibIdsDelsExtsDatesLangr#   r$   splitextupperr0   getinfo	file_sizer-   	enumeratedecoder,   r.   remove
IndexErrorstripjoinr&   r2   r4   isfiler/   )r6   finpxfilelistfsdsfsbinp_fileinp_nameinp_extfinpline	meta_list	meta_dataidxkeyzip_files                  r   parsez
Inpx.parse1   s   4>>#x'"&D::./Ddiik'*C"yy~DJJL '4+;+; ;D 'vgfU5QWX\]abghmnD ! /	H!#!1!1(!;Xg }}&( $$T^^Xu}}X?V?`?`a::h'D !J JJt':':;		 ((3;V)DIg& )$*:*: ; 	,HC,76'"::-6s^-B-B4CUCU-V-\-\]a]t]t-uIcN!in4 )# 5 5b 9-6s^-B-B4CUCU-VIcN	, "$--/8; 77<<(9(99W;MNMMT__bggnnX>V ??$-e$4Yt_EYacfIgIpIpIrr $$T^^XyIC!JF JJL_/	` 	) & ,)+	#,s   B
MM1	0M1	N)__name__
__module____qualname__r7   rl   r   r   r   r   r      s    F\ "Dr   r   )__doc__r#   r>   	constancer   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   sInsNorF   sLibRate	sKeyWordsr   r   r   r   <module>ru      sq    
  















	V Vr   