
    _OgW                         S r SSKJrJrJrJr  SSKrSSKJr  SSK	J
r
Jr  SrSS jrS rS	 rSS
 jrS rS rS rSS jr\S:X  a  \" 5         gg)zA
This module provides the command line interface for Cinemagoer.
    )absolute_importdivisionprint_functionunicode_literalsN)ArgumentParser)VERSIONIMDb   c           
          US:X  a  SOSn[        SU-  5        [        SS[        U5      -  < 35        [        U S U 5       H,  u  pE[        SUS-   [        XQS	-   5      US
U-      S.-  5        M.     g )Nmovietitlenamez  # IMDb id %sz=== ======= =z!%(index)3d %(imdb_id)7s %(title)s   IDz
long imdb )indeximdb_idr   )printlen	enumerategetattr)itemstype_nfieldiitems         M/Users/admin/workspace/ai/Jarvis/env/lib/python3.13/site-packages/imdb/cli.pylist_resultsr      s~    'GVE	
U
"#	cCJ.
01U2AY'1UtT\2,./5
 
 	 (    c                    [        5       nU R                  b  U R                  O[        nU R                  S:X  a  UR	                  U R
                  5      nU R                  (       a   UR                  US   5      n[        USUS9  g [        S5        [        S5        [        US U 5       H  u  pE[        SUS-   US	.-  5        M     g U R                  S:X  a  UR                  U R
                  5      nOU R                  S
:X  a  UR                  U R
                  5      nOWU R                  S:X  a  UR                  U R
                  5      nO+U R                  S:X  a  UR                  U R
                  5      nU R                  (       a1  UR                  WS   5        [        US   R!                  5       5        g [        WU R                  U R                  S9  g )Nkeywordr   r   )r   r   z  # keywordz=== =======z%(index)3d %(kw)sr   )r   kwperson	charactercompany)r	   r   DEFAULT_RESULT_SIZEtypesearch_keywordkeyfirstget_keywordr   r   r   search_moviesearch_personsearch_charactersearch_companyupdatesummary)args
connectionr   r   r   r"   s         r   search_itemr5   +   sg   J&&$*=AyyI))$((3::**584Eg3- - 'bq	2
)a!e7,KKL 3 99++DHH5EYY(",,TXX6EYY+%//9EYY)#--dhh7E::eAh'%(""$%dii466:r    c                 P   [        5       nU R                  S:X  aD  U R                  b  U R                  O[        nUR	                  U R
                  US9n[        USS9  g U R                  S:X  a  UR                  U R
                  5      nOU R                  S:X  a  UR                  U R
                  5      nOWU R                  S:X  a  UR                  U R
                  5      nO+U R                  S:X  a  UR                  U R
                  5      n[        WR                  5       5        g )Nr"   )resultsr   )r   r$   r%   r&   )r	   r(   r   r'   r,   r*   r   	get_movie
get_personget_characterget_companyr   r2   )r3   r4   r   r   r   s        r   get_itemr<   I   s    JyyIff(DFF.A&&txx&;U'*99''1DYY("((2DYY+%++DHH5DYY)#))$((3Ddllnr    c                    [        S5        [        S5        Ub  UO[        n[        U S U 5       HS  u  p#[        SUS-   UR                  S5      UR                  S5      UR                  UR                  S5      S.-  5        MU     g )	Nz   # rating   votes IMDb id titlez === ====== ======= ======= =====z:%(index)3d    %(rating)s %(votes)7s %(imdb_id)7s %(title)sr   ratingvoteszlong imdb title)r   r>   r?   r   r   )r   r'   r   getmovieID)r   r   r   r   s       r   list_rankingrB   [   s    	
,-	
,-] 3AeBQi(JUii)YYw'}}YY01N
 
 	 )r    c                     [        5       nUR                  5       nU R                  (       a1  UR                  US   5        [	        US   R                  5       5        g [        X R                  S9  g Nr   )r   )r	   get_top250_moviesr+   r1   r   r2   rB   r   r3   r4   r   s      r   get_top_moviesrG   i   sQ    J((*Ezz%(#eAh !Uff%r    c                     [        5       nUR                  5       nU R                  (       a1  UR                  US   5        [	        US   R                  5       5        g [        X R                  S9  g rD   )r	   get_bottom100_moviesr+   r1   r   r2   rB   r   rF   s      r   get_bottom_moviesrJ   s   sQ    J++-Ezz%(#eAh !Uff%r    c                 ,   [        U 5      nUR                  SSS[        -   S9  UR                  SSS9nSUl        UR                  SS	S
9nUR                  SS/ SQS9  UR                  SSS
9  UR                  S[        SS9  UR                  SSSS9  UR                  [        S9  UR                  SSS
9nUR                  SS/ SQS9  UR                  SSS
9  UR                  S[        SS9  UR                  [        S9  UR                  SSS
9nUR                  S[        S S9  UR                  SSSS9  UR                  [        S9  UR                  S!S"S
9nUR                  S[        S S9  UR                  SSSS9  UR                  [        S9  U$ )#Nz	--versionversionz	%(prog)s )actionrL   command)metavardestTsearchzsearch for items)helpr(   ztype of item to search for)r   r$   r%   r&   r"   )rR   choicesr*   z#title or name of item to search forz-nznumber of items to list)r(   rR   z--first
store_truezdisplay only the first result)rM   rR   )funcr@   z"retrieve information about an itemztype of item to retrievez-IMDb id (or keyword name) of item to retrievez,number of movies to list (only for keywords)topzget top ranked moviesznumber of movies to listbottomzget bottom ranked movies)r   add_argumentr   add_subparsersrequired
add_parserintset_defaultsr5   r<   rG   rJ   )progparsercommand_parserscommand_search_parsercommand_get_parsercommand_top_parsercommand_bottom_parsers          r   make_parserre   }   s   D!F
I{W?TU++II+NO#O+66xFX6Y&&v4P/e ' g&&u3X&Y&&t#<U&V&&yLk&l&&K&8(33E@d3e##F1K,b $ d##E0_#`##Ds9g#h###2(33E@W3X##Ds9S#T##IlIh#i###8+66xF`6a&&t#<V&W&&yLk&l&&,=&>Mr    c                     U b  U O[         R                  n [        SS9nUR                  U SS  5      nUR	                  U5        g )Nimdbpy)r^   r   )sysargvre   
parse_argsrU   )ri   r_   	argumentss      r   mainrl      s>    #4Dh'F!!$qr(+INN9r    __main__)N)__doc__
__future__r   r   r   r   rh   argparser   imdbr   r	   r'   r   r5   r<   rB   rG   rJ   re   rl   __name__ r    r   <module>rt      s_   " S R 
 #  	;<$&& F zF r    