
    M@ca                     ^    d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dl	m
Z
  G d de
      Zy)    N)printMsg)
formatSize
formatTime)versionToString)LoaderPluginc                   <     e Zd ZdgZdZdZ fdZ fdZd Z xZ	S )	NfoPluginnfoz,Create NFO files for each directory scanned.zEach directory scanned is treated as an album and a `NFO <http://en.wikipedia.org/wiki/.nfo>`_ file is written to standard out.

NFO files are often found in music archives.c                 :    t         t        |   |       i | _        y N)superr	   __init__albums)self
arg_parser	__class__s     3/usr/lib/python3/dist-packages/eyed3/plugins/nfo.pyr   zNfoPlugin.__init__   s    i'
3    c                    t         t        |   |       | j                  r| j                  j                  r| j                  j                  }|j
                  }|rF|| j                  vr8g | j                  |<   | j                  |   j                  | j                         y |r)| j                  |   j                  | j                         y y y y r   )r   r	   
handleFile
audio_filetagalbumr   append)r   fr   r   r   s       r   r   zNfoPlugin.handleFile   s    i)!,??t22//%%CIIEdkk1%'E"E"))$//:E"))$//:   3?r   c                     | j                   st        d       y | j                   D ]  }| j                   |   }|s|j                  d        d}d}d}|D ]  }|j                  }t	        |j
                  xs d      }||kD  r|}||j                  j                  d   z  }d|j                  j                  v sd|j                  j                  d   }	|	xs |} |t	        |      z  }t        d       t        d|d   j                  j                  z         t        d	|z         t        d
|d   j                  j                  xs |d   j                  j                  z         t        d|d   j                  j                  z         |d   j                  j                  }
|
r|
j                  }
nd}
t        d|
z         t        d       t        d       t        d|z         t        d       t        d|d|d   j                  j                  d|d   j                  j                          t        dt#        |d   j                  j$                        z         t        d       t        d       t        d       t        d       t        d       d}d}d}|D ]  }|j                  }|dz  }|j
                  xs d}t	        |      }d||z
  dz   z  }|j                  j&                  }||z  }||j                  j(                  z  }dt	        t+        t	        |                  t	        t+        |            z
  z  }t        d||||t-        |      fz          t        d       t        dt-        |      z         t        dt/        |      z         t        d       t        d       t        dt0        j$                  dt3        j4                                t        d d!z         t        d        y )"NzNo albums found.c                 v    | j                   j                  d   xs d| j                   j                  d   xs dfS )Nr   i     )r   	track_num)afs    r   <lambda>z&NfoPlugin.handleDone.<locals>.<lambda>*   s7    RVV-=-=a-@-GC-/VV-=-=a-@-GC-I r   )keyr    r   encoder_versionzArtist   : %szAlbum    : %szReleased : %szRecorded : %szGenre    : %sz
Source  : zEncoder : %szCodec   : mp3zBitrate : ~z K/s @ z Hz, zTag     : ID3 %szRipped By: zTrack Listingz-------------    0z %s%d. %s%s(%s)zTotal play time : %szTotal size      : %szN==============================================================================z.NFO file created with eyeD3 z on z)For more information about eyeD3 go to %szhttp://eyeD3.nicfit.net/)r   r   sortr   lentitleinfobit_ratelame_tagartistoriginal_release_daterelease_daterecording_dategenrenamesample_freqmoder   version	time_secs
size_bytesstrr   r   eyed3timeasctime)r   r   audio_filesmax_title_lenavg_bitrateencoder_infor   r   	title_lenr6   r2   count
total_time
total_sizer*   paddingr7   zero_pads                     r   
handleDonezNfoPlugin.handleDone!   s   {{'([[ U	E++e,K "I J MKL) =
 nn		R0	},$-Mz77::$
(@(@@(oo667HIG$+$;|L= &K(88KRL_{1~'9'9'@'@@A_u,-_!!n((>> 6!!n((557 8 _{1~'9'9'H'HHIN&&,,E

_u,-RL\"^l23_%!;q>#6#6#B#B!!n))..0 1 '$[^%7%7%?%?@A B RL]#RL_%_%EJJ) 2
 nn
		RJ	-)";q!@A&OO55	i'
joo888
#c#k*:&;"<s3u:"NO*"E5'$Y/11 22  RL+
+, -+
+, - RLXmmT\\^5 6@/0 1XkU	r   )
__name__
__module____qualname__NAMESSUMMARYDESCRIPTIONr   r   rG   __classcell__)r   s   @r   r	   r	   	   s'    GE<GAK

;Zr   r	   )r;   r:   eyed3.utils.consoler   eyed3.utilsr   r   	eyed3.id3r   eyed3.pluginsr   r	    r   r   <module>rT      s%      ( . % &r rr   