§
   bZY¬Üõ(‰ã                   ó|   — d Z ddlmZmZ ddlmZ ddlZdZdZdZ	 G d„ d	e¦  «        Z
d
„ Zd„ Zd„ Zdd„Zd„ Zd„ ZdS )aÊ  What a Millionaire game is about: a film, a series (or one of its episodes), a channel / cinema mix, or a person.

Every place that offers the game describes its subject with a `Subject`; `wcs.games.millionaire.open_game` turns it
into the game window. `from_params` reads the plugin action `milionar_game` (and completes plot, genre and backdrop
from TMDb when the caller had none), `query` writes it, `from_person` describes an actor / director / creator.
é    )Ú
NamedTupleÚOptional)Ú	urlencodeNÚmilionar_gamezhttps://image.tmdb.org/t/p/{}{})ÚactorÚdirectorÚwriterÚcreatorc                   óØ   — e Zd ZU eed<   dZeed<   dZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed	<   dZeed
<   dZee         ed<   dZee         ed<   dZee         ed<   dZeed<   dS )ÚSubjectÚtitleÚmovieÚ
media_typeÚ ÚplotÚgenreÚyearÚposterÚbackdropÚepisode_titleNÚseason_numberÚepisode_numberÚpersonÚtmdb_id)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r   r   r   r   r   r   r   Úintr   r   Údictr   © ó    úk/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/games/millionaire/subject.pyr   r      sÎ   € € € € € € Ø€J€J�JØ€J�ÐÐÑØ€Dˆ#€N€N�NØ€Eˆ3€O€O�OØ€Dˆ#€N€N�NØ€FˆCÐÐÑØ€HˆcÐÐÑØ€M�3ÐÐÑØ#'€M�8˜C”=Ð'Ð'Ñ'Ø$(€N�H˜S”MÐ(Ð(Ñ(Ø!€FˆH�TŒNÐ!Ð!Ñ!Ø€GˆSÐÐÑÐÐr#   r   c                 ó^   — 	 | dvrt          | ¦  «        nd S # t          t          f$ r Y d S w xY w)N©Nr   )r    Ú	TypeErrorÚ
ValueError)Úvalues    r$   Ú_intr*   !   sH   € ðØ"¨*Ð4Ð4�s�5‰zŒzˆz¸$Ð>øÝ•zÐ"ð ð ð Øˆtˆtðøøøs   ‚ —,«,c           
      ó0  — t           | j        | j        | j        | j        | j        | j        | j        | j        dœ	}| j	        r
| j	        |d<   | j
        �
| j
        |d<   | j        �
| j        |d<   t          d„ |                     ¦   «         D ¦   «         ¦  «        S )z]The plugin query of the action `milionar_game` for a subject (what `from_params` reads back).)	Úactionr   r   r   r   r   Úfanartr   r   r   Nr   r   c                 ó"   — i | ]\  }}|d v¯	||“ŒS )r&   r"   )Ú.0Úkeyr)   s      r$   ú
<dictcomp>zquery.<locals>.<dictcomp>3   s)   € Ð]Ð]Ð]¡Z S¨%ÀUÐR\ÐE\ÐE\�c˜5ÐE\ÐE\ÐE\r#   )ÚACTIONr   r   r   r   r   r   r   r   r   r   r   r   Úitems)ÚsubjectÚparamss     r$   Úqueryr6   (   s£   € å¨¬ÀgÔFXÐelÔetØ”l¨g¬nÈÔHXØ”l¨W¬]ð<ð <€Fð Ôð 8Ø")Ô"7ˆˆÑØÔÐ(Ø")Ô"7ˆˆÑØÔÐ)Ø#*Ô#9ˆÐÑ ÝÐ]Ð]°6·<²<±>´>Ð]Ñ]Ô]Ñ^Ô^Ð^r#   c                 ó&   — dt          | ¦  «        z   S )Nz plugin://plugin.video.milionar/?)r6   )r4   s    r$   Ú
plugin_urlr8   6   s   € Ø-µ°g±´Ñ>Ð>r#   c                 ó  — | pi                       d¦  «        }|rt                               d|¦  «        nd}t          |�|n| pi                       dd¦  «        ||�|n| pi                       dd¦  «        dd…         |||�|n| ¬¦  «        S )	zgA person game: the profile photo is the card and its backdrop, the biography (500 characters) the plot.Úprofile_pathÚw780r   NÚnameÚ	biographyiô  )r   r   r   r   r   r   )ÚgetÚ
TMDB_IMAGEÚformatr   )Údatar   r   r   r   r:   Úpictures          r$   Úfrom_personrC   :   s´   € à�J˜B×#Ò# NÑ3Ô3€LØ9EÐM�j×Ò ¨Ñ5Ô5Ð5È2€GÝ %Ð"3˜˜¸$¸*À"×9IÒ9IÈ&ÐRTÑ9UÔ9UÐblØ!%Ð!1˜˜¸¸
À×7GÒ7GÈÐUWÑ7XÔ7XÐZ^Ð[^ÐZ^Ô_Ø!¨GÀfÐFX¸F¸FÐ^bðdñ dô dð dr#   c                 ó¬  — |                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       d	d¦  «        }|p|}d
}	|                       dd¦  «        }
|r|sª|r¨	 t          ||¦  «        }nL# t          $ r?}t          j        d                     ||¦  «        t          j        ¦  «         d
}Y d
}~nd
}~ww xY w|rH|p|d         }|p|d         }|p|d	         }|d         p|}|d         }	|
p|                      dd¦  «        }
t          |||||p|||                       dd¦  «        t          |                       d¦  «        ¦  «        t          |                       d¦  «        ¦  «        |	||
¬¦  «        S )zlThe subject of a `milionar_game` plugin call; plot, genre and backdrop come from TMDb when they are missing.r   r   r-   r   r   r   r   r   r   Nr   zA[plugin.video.milionar] Error getting {} details for the game: {}r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )	r>   Ú_tmdb_detailsÚ	ExceptionÚxbmcÚlogr@   ÚLOGERRORr   r*   )r5   r   r-   r   r   r   r   r   r   r   r   ÚdetailsÚexcs                r$   Úfrom_paramsrL   C   s  € à�JŠJ�w Ñ#Ô#€EØ�ZŠZ˜ "Ñ%Ô%€FØ�ZŠZ˜ "Ñ%Ô%€FØ�jŠj˜ BÑ'Ô'€GØ—’˜L¨'Ñ2Ô2€JØ�:Š:�f˜bÑ!Ô!€DØ�JŠJ�w Ñ#Ô#€EØÐ˜€HØ€FØ�:Š:�f˜bÑ!Ô!€DØð 3˜ð 3 Gð 3ð	Ý# G¨ZÑ8Ô8ˆGˆGøÝð 	ð 	ð 	ÝŒHÐX×_Ò_Ð`jÐloÑpÔpÝ”]ñ$ô $ð $àˆGˆGˆGˆGˆGˆGøøøøð	øøøð ð 	3ØÐ*˜7 6œ?ˆDØÐ-˜W WÔ-ˆEØÐ-˜W WÔ-ˆEØ˜zÔ*Ð6¨hˆHØ˜XÔ&ˆFØÐ2˜7Ÿ;š; v¨rÑ2Ô2ˆDÝ˜¨:¸DÈÐV\ÐVfÐ`fØ$°F·J²J¸ÐPRÑ4SÔ4SÝ!% f§j¢j°Ñ&AÔ&AÑ!BÔ!BÕSWÐX^×XbÒXbÐcsÑXtÔXtÑSuÔSuØ ¨'¸ð>ñ >ô >ð >s   Â>C Ã
DÃ5DÄDc                 óü  ‡— ddl m} |t          v r�|                     | |¦  «        Š‰sdS ‰                     dd¦  «        }‰                     dd¦  «        ‰                     dd¦  «        d|rt
                               d|¦  «        ndˆfd	„d
ddddg ffD ¦   «         dœS |dv r„ddl}ddl}|                     d                     | ¦  «        d| 	                    | 
                    ¦   «         ¦  «        ddœ¬¦  «        }|                     ¦   «          |                     ¦   «         Šn|                     | ¦  «        Š‰sdS ‰                     dd¦  «        }d‰                     dd¦  «        d                     d„ ‰                     d¦  «        pg dd…         D ¦   «         ¦  «        |rt
                               d|¦  «        ndd‰                     d¦  «        p‰                     d¦  «        pddd…         dœS ) zW{'title', 'plot', 'genre', 'backdrop', 'person'} of a TMDb id (person, series or film).r   )Ú
TMDbClientNr:   r   r<   r=   r;   c                 óD   •— i | ]\  }}|‰                      ||¦  «        “ŒS r"   ©r>   )r/   r0   ÚdefaultrA   s      €r$   r1   z!_tmdb_details.<locals>.<dictcomp>m   s9   ø€ ð (ð (ð (¹<¸3À˜3 §¢¨¨gÑ 6Ô 6ð (ð (ð (r#   )r<   r   )r=   r   )Úknown_for_departmentr   )r:   r   Ú	known_for)r   r   r   r   r   )ÚseriesÚtvz"https://api.themoviedb.org/3/tv/{}é
   zcs-CZ)Úapi_keyÚlanguage)Útimeoutr5   Úbackdrop_pathÚoverviewz, c              3   óB   K  — | ]}|                      d d¦  «        V — ŒdS )r<   r   NrP   )r/   Úgs     r$   ú	<genexpr>z _tmdb_details.<locals>.<genexpr>}   s0   è è € ÐYÐY°Q˜qŸušu V¨RÑ0Ô0ÐYÐYÐYÐYÐYÐYr#   Úgenresé   Úrelease_dateÚfirst_air_dateé   )r   r   r   r   r   r   )Úwcs.metadatarN   ÚPERSON_TYPESÚget_person_detailsr>   r?   r@   ÚrequestsÚ	xbmcaddonÚget_tmdb_api_keyÚAddonÚraise_for_statusÚjsonÚget_movie_detailed_infoÚjoin)	r   r   ÚtmdbÚprofilerg   rh   ÚresponserZ   rA   s	           @r$   rE   rE   c   sc  ø€ à/Ð/Ð/Ð/Ð/Ð/Ø•\Ð!Ð!Ø×&Ò& w°
Ñ;Ô;ˆØð 	Ø�4Ø—(’(˜>¨2Ñ.Ô.ˆØŸš &¨"Ñ-Ô-°t·x²xÀÈRÑ7PÔ7PÐ[]ØBIÐQ�J×-Ò-¨f°gÑ>Ô>Ð>Èrð(ð (ð (ð (Ø Ð"3Ð5QÐSgØ  "Ð%ðL'ð (ñ (ô (ð)ð )ð 	)ð
 Ð%Ð%Ð%ØˆˆˆØÐÐÐØ—<’<Ð D× KÒ KÈGÑ TÔ TÐ^`Ø×,Ò,¨Y¯_ª_Ñ->Ô->Ñ?Ô?ÈWðjVð jV�<ñ Wô Wˆà×!Ò!Ñ#Ô#Ð#Ø�}Š}‰Œˆˆà×+Ò+¨GÑ4Ô4ˆØð ØˆtØ—H’H˜_¨bÑ1Ô1€MØ §¢¨*°bÑ!9Ô!9Ø—Y’YÐYÐY¸4¿8º8ÀHÑ;MÔ;MÐ;SÐQSÐUWÐVWÐUWÔ:XÐYÑYÔYÑYÔYØDQÐY�
×)Ò)¨&°-Ñ@Ô@Ð@ÐWYÐeiØ—X’X˜nÑ-Ô-ÐQ°·²Ð:JÑ1KÔ1KÐQÈrÐSUÐTUÐSUÔVðXð Xð Xr#   )NNN)Ú__doc__Útypingr   r   Úurllib.parser   rG   r2   r?   re   r   r*   r6   r8   rC   rL   rE   r"   r#   r$   ú<module>ru      só   ððð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "à €€€à	€Ø.€
Ø9€ðð ð ð ð ˆjñ ô ð ðð ð ð_ð _ð _ð?ð ?ð ?ðdð dð dð dð>ð >ð >ð@Xð Xð Xð Xð Xr#   