
    Mg                        S SK r S SKJrJr  S SKJrJr  S SKJr  \ R                  " 5       r	S r
\" SSS9S&S	 j5       r\" S
SS9S 5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S5      S 5       5       r\" SS9\" S 5      S! 5       5       r\" SS9\" S"5      S# 5       5       rS$ rS% rg)'    N)ForeStyle)pluginrequire)	lru_cachec                 6    [        X5      nUc  g [        U5      $ N)search_movieget_movie_by_id)jarvismoviemovie_ids      ;/Users/admin/workspace/ai/Jarvis/jarviscli/plugins/movie.pymainr   	   s     F*H8$$    2   F)maxsizetypedc                     US:X  a!  U R                  S[        R                  5        g [        R	                  USS9nU(       d!  U R                  S[        R                  5        g U(       d  US   nUR
                  $ U$ )N zPlease add movie name!
   )resultszError: Did not find movie!r   )sayr   REDappr
   movieID)r   r   all_resultsr   firsts        r   r
   r
      sh    {

+TXX6ub1G

/:
}}Nr      c                 ,    [         R                  U 5      $ r	   )r   	get_movie)r   s    r   r   r   !   s    ==""r   T)networkz
movie castc                 b    [        X5      nUb!  US    H  nU R                  US   5        M     gg)r   Ncastnamer   r   r   r   datads       r   
movie_castr*   &   s7     DfAJJqy!  r   zmovie directorc                 b    [        X5      nUb!  US    H  nU R                  US   5        M     gg)r   Ndirectorr%   r&   r'   s       r   movie_directorr-   0   s8     Dj!AJJqy! " r   z
movie plotc                 @   [        X5      nUb  SU;   aE  U R                  S[        R                  5        U R                  US   5        U R                  S 5        SU;   a>  U R                  S[        R                  5        US    H  nU R                  U5        M     ggg)r   Nzplot outlinezPlot outline:plotzPlot:)r   r   r   GREENr'   s       r   
movie_plotr1   :   s     DT!JJ

3JJtN+,JJrNT>JJw

+&\

1 "  r   zmovie producerc                 b    [        X5      nUb!  US    H  nU R                  US   5        M     gg)r   N	producersr%   r&   r'   s       r   movie_producerr4   J   s8     Dk"AJJqy! # r   zmovie ratingc                 \    [        X5      nUb  U R                  [        US   5      5        gg)r   Nratingr   r   strr   r   r(   s      r   movie_ratingr:   T   s.     D

3tH~&' r   z
movie yearc                 \    [        X5      nUb  U R                  [        US   5      5        gg)r   Nyearr7   r9   s      r   
movie_yearr=   ]   s.     D

3tF|$% r   zmovie runtimec                     [        X5      nUb<  SU;   a$  U R                  [        US   S   5      S-   5        gU R                  S5        gg)r   Nruntimesr   z minuteszNo runtime data presentr7   r9   s      r   movie_runtimer@   f   sN     DJJs4
+A./*<=JJ01	 r   zmovie countriesc                 n    [        X5      nUb'  US    H  nU R                  [        U5      5        M     gg)r   N	countriesr7   r'   s       r   movie_countriesrC   r   s8     Dk"AJJs1v # r   zmovie genresc                 \    [        X5      nUb  US    H  nU R                  U5        M     gg)r   Ngenresr&   r'   s       r   movie_genresrF   |   s2     DhAJJqM   r   z
movie infoc                 8    [        X5      nUb  [        X5        gg)z(
Display table with various information
N)r   get_movie_infor9   s      r   
movie_inforI      s!     Dv$ r   zmovie searchc                    [        XSS9nU(       d  g/ nU H  nUS   S:X  d  M  UR                  U5        M!     [        U5      S:  a  SnO[        U5      nU R                  S5        SnS	nXvS
-  S-   -  nU R                  U[        R
                  5        [        U5       HV  nX8   n[        R
                  [        US-   5      -   US-  -   nU[        R                  US   -   -  nU R                  U5        MX     U R                  S5        U R                  S5        U R                  5       n	U	S:X  a  g[        U	5      S:w  a"  U R                  [        R                  S-   5      $ U	S;   a  [        U	5      n	OU	S:X  a  g[        U	5      U:  d  [        U	5      S:  a"  U R                  [        R                  S-   5      $ X9S-
     R                  n
[        U
5      n[        X5        g)zsearch for a movie on IMDBT)r   Nkindr      r    ID   zMovie title      zsmart long imdb canonical titlez'Please enter ID to know more(q - quit):zPlease enter valid value	123456789qz#Please enter id from the given list)r
   appendlenr   r   r0   ranger8   RESETinputr   intr   r   rH   )r   r   r   movie_resultsitemcountspacetextiinput_idr   r(   s               r   movie_searchra      s    6d;G  M<7"  &  =AM"
JJrNEDAI%%D
JJtTZZ 5\zzCAJ&2

T"CDDD

4	  JJrN
JJ89||~H 2~
8}zz$((%??@@	[	 x=	S 	H3x=1#4zz$((%JJKK\*22H8$D6 r   c                     [         R                  SR                  U 5      -   n[        R                  S-   [        U5      -   nX#-   $ )z
pretty print key value pair
z{:<14}z: )r   r0   formatr   	RESET_ALLr8   )keyvalue
green_textnormal_texts       r   colorized_outputri      s;     hooc22J//D(3u:5K##r   c           	         U R                  S5        U R                  S5        U R                  S5        U R                  5       nUR                  5       nU R                  S5        U H  nX1;   a  X   nUS:X  a  SR                  U5      nUS:X  a(  U Vs/ s H  oUS   PM	     nnSR                  USS	 5      n[	        U[
        5      (       a  US   nU R                  [        UR                  5       [        U5      5      5        M  U R                  [        UR                  5       S
5      5        M     [        R                  S   S-   UR                  -   nU R                  [        SU5      5        U R                  S5        gs  snf )z?
Takes a movie attributes as input and prints them accordingly
r   zDWhat type of information do you want: cast, producers, genres, etc.?z3Write one after another separated by space, please:rE   z, r$   r%   r   rO   zno information retrieved
movie_basettzIMDB urlN)r   rX   splitjoin
isinstancelistri   
capitalizer8   r   urlsr   )r   r(   movie_attributes	attributerf   personlst	movie_urls           r   rH   rH      sM    JJrN
JJNP
JJDE||~'--/
JJrN%	OEH$		%(F"49:E&f~E:		#a(+%&&aJJ'	(<(<(>E
KLJJ ((*.01! &. &-<I
JJ
I67
JJrN# ;s   F)F)imdbcoloramar   r   r   r   	functoolsr   IMDbr   r   r
   r   r*   r-   r1   r4   r:   r=   r@   rC   rF   rI   ra   ri   rH    r   r   <module>r}      s      " 
iik% 2U# $ 2U## $# 	"  " 	"  " 	   	"  " 	(  ( 	&  & 	2  2 	   	   	%  % 	4!  4!n$&r   