
    @};dE                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ  G d dej                  j                  j                        Zd Zy)    N)RBc                   $    e Zd Zd Zd Zd Zd Zy)TrackListHandlerc                     t         j                  j                  j                  j	                  |        || _        || _        || _        || _        || _	        i | _
        y N)xmlsaxhandlerContentHandler__init___TrackListHandler__db_TrackListHandler__entry_type_TrackListHandler__sku_dict_TrackListHandler__home_dict_TrackListHandler__art_dict_TrackListHandler__track)selfdb
entry_typesku_dict	home_dictart_dicts         I/usr/lib/x86_64-linux-gnu/rhythmbox/plugins/magnatune/TrackListHandler.pyr   zTrackListHandler.__init__$   sJ    ''//  ))$/$) $$/$$/$,    c                     d| _         y )N _TrackListHandler__text)r   nameattrss      r   startElementzTrackListHandler.startElement-   s	    $+r   c                 	   |dk(  r	 d| j                   v r| j                   d   }n| j                   d   }t        |      }| j                  j                  |      }|d k(  r5t        j
                  j                  | j                  | j                  |      }	 t        | j                   d         }|dk  rt        	 t        j                  |dd      j                         }	 t        | j                   d	         }	 t        | j                   d
         }| j                  j                  |t        j                  j                  t        | j                   d                | j                  j                  |t        j                  j                   t        | j                   d                | j                  j                  |t        j                  j"                  t        | j                   d                | j                  j                  |t        j                  j$                  t        | j                   d                | j                  j                  |t        j                  j&                  t)        |             | j                  j                  |t        j                  j*                  t)        |             | j                  j                  |t        j                  j,                  t)        |             t        |      }t/        j0                  t        | j                   d               }	|	| j2                  |<   t        | j                   d         | j4                  |	<   t        | j                   d         | j6                  |	<   | j                  j9                          i | _         y |dk(  ry | jB                  | j                   |<   y # t        $ r t        | j                   d   dd       }Y 5w xY w# t        $ r d}Y 	w xY w# t        $ r d}Y w xY w# t:        $ ra}
t/        j<                  t/        j>                           tA        d| j                   d   d| j                   d   |
       Y d }
~
i | _         y d }
~
ww xY w)NTrackoggurlurlyearr   
launchdate      tracknumsecondsartist	albumname	tracknamemagnatunegenresalbumskuhomecover_smallzCouldn't add z - AllSongs)"r   strr   entry_lookup_by_locationr   RhythmDBEntrynewr   	parse_int
ValueErrordatetimedate	toordinal	entry_setRhythmDBPropTypeARTISTALBUMTITLEGENRETRACK_NUMBERintDATEDURATIONsysinternr   r   r   commit	Exception
excepthookexc_infoprintr   )r   r   trackurlentryr&   r;   r*   durationkeyskues              r   
endElementzTrackListHandler.endElement0   sw   	W_1[4<<X&XU#X8}H II..9E}!!$))T->->IU7dll6*+T	 	
 ==q!$..0D$,,z23X$,,y12X 	IIr22993t||H?U;VWIIr2288#dll;>W:XYIIr2288#dll;>W:XYIIr2288#dllK\>]:^_IIr22??XOIIr2277TCIIr22;;S]K
h-C
**Sj12
3CDOOCV 45DSt||M:;DOOCII
 4<z4<<I  7dll<0156T7  X  X$  [NNCLLN#	DLL$:DLL<U
VXYZZ4<	[s   BP #O 9&P  O3 9P JP $O0,P /O00P 3P>P PP PP PP 	R AQ<<Rc                 ,    | j                   |z   | _         y r   r   )r   contents     r   
characterszTrackListHandler.charactersk   s    g%$+r   N)__name__
__module____qualname__r   r!   rT   rW    r   r   r   r   #   s    9$v&r   r   c                 T    d}| D ]  }|dv r||z  } t        |      S  t        |      S )Nr   
0123456789)rD   )snewscs      r   r8   r8   o   s@    

 	Q,194D		
 	D	r   )rG   xml.saxr   xml.sax.handlerr:   rerbgi.repositoryr   r	   r
   r   r   r8   r[   r   r   <module>rf      s8   8    	 I&sww55 I&Xr   