§
   p‡ÛoØ;Ë_ã                   óÖ   — d Z ddlmZmZ ddlZddlmZmZ dZd 	                    e¦  «        Z
d\  ZZZZZd\  ZZZd	\  ZZZZd
\  ZZZZZZdZd„ Zd„ Z G d„ d¦  «        Z dd„Z!dd„Z"dS )z°Video action eligibility and labels from the library store and metadata cache.

Menu layouts and editing live in wcs.skin.context. Provider entry points only describe an item.
é    )ÚquoteÚ
quote_plusN)Únext_upÚrowszplugin.video.milionarzplugin://{}/)i�~  i‘~  i’~  i“~  i”~  )i•~  i–~  i—~  )i˜~  i™~  iš~  i›~  )iœ~  i�~  iž~  iŸ~  i ~  i¡~  i¤~  c                 ó^   — d                      t                               d¦  «        | ¦  «        S )NzRunPlugin({}?{})ú/)ÚformatÚBASEÚrstrip)Úquerys    ú_/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/library2/menu.pyÚ_pluginr      s$   € Ø×$Ò$¥T§[¢[°Ñ%5Ô%5°uÑ=Ô=Ð=ó    c                 óª   — t          | ¦  «        } | dk    r#d                     | dz  | dz  dz  | dz  ¦  «        nd                     | dz  | dz  ¦  «        S )Ni  z{}:{:02d}:{:02d}é<   z{:02d}:{:02d})Úintr	   )Úsecondss    r   Ú_mmssr      sd   € Ý�'‰lŒl€GØ]dÐhlÒ]lÐ]lÐ×$Ò$ W°¡_°gÀ±nÈÑ6JÈGÐVXÉLÑYÔYÐYØ×#Ò# G¨r¡M°7¸R±<Ñ@Ô@ðAr   c                   óT   — e Zd Zdd„Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Z	dd
„Z
dd„Zdd„ZdS )ÚMenuNc                 ó„   — |pt          j        ¦   «         | _        t          j        t
          ¦  «        | _        i | _        d S ©N)r   ÚDataÚdataÚ	xbmcaddonÚAddonÚADDON_IDÚ_addonÚ_labels)Úselfr   s     r   Ú__init__zMenu.__init__!   s0   € ØÐ'�DœI™KœKˆŒ	Ý”o¥hÑ/Ô/ˆŒØˆŒˆˆr   c                 ór   — || j         vr"| j                             |¦  «        | j         |<   | j         |         S r   )r   r   ÚgetLocalizedString)r    Ú	string_ids     r   Útextz	Menu.text&   s8   € Ø˜DœLÐ(Ð(Ø&*¤k×&DÒ&DÀYÑ&OÔ&OˆDŒL˜Ñ#ØŒ|˜IÔ&Ð&r   c                 ód  — | j         g }}|dv �rB|dk    r'|                     ¦   «                              |¦  «        n<|                     ¦   «                              |i ¦  «                             ||f¦  «        pi }|dk    rd                     |¦  «        nd                     |||¦  «        }|                     d¦  «        rdnd}	t          |                     d¦  «        pd	¦  «        }
|
d	k    rÁ|                     |                      t          ¦  «                             t          |
¦  «        ¦  «        t          d
                     ||	¦  «        ¦  «        f¦  «         |                     |                      t          ¦  «        t          d                     ||	¦  «        ¦  «        f¦  «         nP|                     |                      t          ¦  «        t          d                     ||	¦  «        ¦  «        f¦  «         |                     |                      t          ¦  «        t          d                     |¦  «        ¦  «        f¦  «         nß|                     |¦  «        \  }}}|d         dv r|d         nd }|d         €|r|d	         d         r|d	         }|r�|                     |                      t          ¦  «                             d                     |d         |d         ¦  «        ¦  «        t          d                     ||d         |d         ¦  «        ¦  «        f¦  «         |S )N)ÚmovieÚepisoder'   ztype=movie&tmdb={}ztype=episode&tmdb={}&s={}&e={}Ú
last_identÚlastÚdialogÚ
resume_posr   z&action=mplay_req&{}&src={}&from=resumez%action=mplay_req&{}&src={}&from=startz)action=mplay_req&{}&src=dialog&from=startÚkind)ÚresumeÚnextr(   ÚairedzS{:02d}E{:02d}ÚsÚezCaction=mplay_req&type=episode&tmdb={}&s={}&e={}&src=auto&from=start)r   Úmovie_statesÚgetÚepisode_statesr	   ÚfloatÚappendr%   ÚS_RESUMEr   r   Ú	S_RESTARTÚS_PLAYÚS_SOURCEÚseries_stateÚS_NEXT)r    r-   Útmdb_idÚseasonr(   r   ÚitemsÚstater   Úsrcr.   Ú_showÚorderÚtargets                 r   Ú_play_itemszMenu._play_items,   s/  € Ø”i ˆeˆØÐ'Ð'Ñ'Ø9=Àº¸�T×&Ò&Ñ(Ô(×,Ò,¨WÑ5Ô5Ð5Ø×-Ò-Ñ/Ô/×3Ò3°G¸RÑ@Ô@×DÒDÀfÈgÐEVÑWÔWð_Ø\^ð à=AÀWº_¸_Ð)×0Ò0°Ñ9Ô9Ð9Ø:×AÒAÀ'È6ÐSZÑ[Ô[ð à!ŸIšI lÑ3Ô3ÐA�&�&¸ˆCÝ˜5Ÿ9š9 \Ñ2Ô2Ð7°aÑ8Ô8ˆFØ˜ŠzˆzØ—’˜dŸiši­Ñ1Ô1×8Ò8½¸v¹¼ÑGÔGÍÐQy÷  RAò  RAð  BGð  ILñ  RMô  RMñ  JNô  JNð  Oñ  Pô  Pð  PØ—’˜dŸiši­	Ñ2Ô2µGÐ<c×<jÒ<jÐkpÐruÑ<vÔ<vÑ4wÔ4wÐxÑyÔyÐyÐyà—’˜dŸiši­Ñ/Ô/µÐ9`×9gÒ9gÐhmÐorÑ9sÔ9sÑ1tÔ1tÐuÑvÔvÐvØ�LŠL˜$Ÿ)š)¥HÑ-Ô-­wÐ7b×7iÒ7iÐjoÑ7pÔ7pÑ/qÔ/qÐrÑsÔsÐsÐsà"&×"3Ò"3°GÑ"<Ô"<ÑˆE�5˜%Ø).¨v¬Ð:LÐ)LÐ)L�U˜9Ô%Ð%ÐRVˆFØ�VŒ}Ð$¨Ð$°5¸´8¸GÔ3DÐ$Ø˜qœ�Øð HØ—’˜dŸiši­Ñ/Ô/×6Ò6Ð7G×7NÒ7NÈvÐVYÌ{Ð\bÐcfÔ\gÑ7hÔ7hÑiÔiÝ%Ð&k×&rÒ&rØ")¨6°#¬;¸¸s¼ñ'Eô 'Eñ Fô FðGñ Hô Hð Hð ˆr   c                 óŠ  ‡‡‡
— | j         }‰dk    rOt          |                     ¦   «                              |¦  «        pi                      d¦  «        pd¦  «        dk    S ‰dk    ret          |                     ¦   «                              |i ¦  «                             ‰|f¦  «        pi                      d¦  «        pd¦  «        dk    S |                     |¦  «        \  }}}|                     ¦   «                              |i ¦  «        Š
ˆˆfd„|D ¦   «         }	t          |	¦  «        ot          ˆ
fd„|	D ¦   «         ¦  «        S )zEMovie / episode: played; series / season: every aired episode played.r'   Ú	playcountr   r(   c                 óH   •— g | ]}|d          ¯
‰dk    s|d         ‰k    ¯|‘ŒS )r0   Útvr1   © )Ú.0r2   r-   r?   s     €€r   ú
<listcomp>z#Menu.is_watched.<locals>.<listcomp>P   s8   ø€ ÐWÐWÐW�q Q w¤ZÐW°T¸T²\°\ÀQÀsÄVÈvÒEUÐEU�ÐEUÐEUÐEUr   c              3   ó®   •K  — | ]O}t          ‰                     |d          |d         f¦  «        pi                      d¦  «        pd¦  «        dk    V — ŒPdS )r1   r2   rH   r   N)r   r4   )rL   r2   Ústatess     €r   ú	<genexpr>z"Menu.is_watched.<locals>.<genexpr>Q   se   øè è € Ð"vÐ"vÐkl¥3¨¯
ª
°A°c´F¸A¸c¼FÐ3CÑ(DÔ(DÐ(JÈ×'OÒ'OÐP[Ñ'\Ô'\Ð'aÐ`aÑ#bÔ#bÐefÒ#fÐ"vÐ"vÐ"vÐ"vÐ"vÐ"vr   )r   r   r3   r4   r5   r<   ÚboolÚall)r    r-   r>   r?   r(   r   rC   rD   Ú_stateÚscoperO   s    ` `      @r   Ú
is_watchedzMenu.is_watchedG   sK  øøø€ àŒyˆØ�7Š?ˆ?Ý˜×)Ò)Ñ+Ô+×/Ò/°Ñ8Ô8Ð>¸B×CÒCÀKÑPÔPÐUÐTUÑVÔVÐYZÒZÐZØ�9ÒÐÝ˜×+Ò+Ñ-Ô-×1Ò1°'¸2Ñ>Ô>×BÒBÀFÈGÐCTÑUÔUÐ[ÐY[×`Ò`ÐalÑmÔmÐrÐqrÑsÔsÐvwÒwÐwØ#×0Ò0°Ñ9Ô9Ñˆˆu�fØ×$Ò$Ñ&Ô&×*Ò*¨7°BÑ7Ô7ˆØWÐWÐWÐWÐW˜EÐWÑWÔWˆÝ�E‰{Œ{Ðv�sÐ"vÐ"vÐ"vÐ"vÐpuÐ"vÑ"vÔ"vÑvÔvÐvr   c           	      ód  — g }|                       ||||¦  «        }d                     ||¦  «        |�d                     |¦  «        ndz   |�d                     |¦  «        ndz   }|                     |                      |rt          nt
          ¦  «        t          d                     ||rdnd¦  «        ¦  «        f¦  «         |                      ||¦  «        rX|                     |                      t          ¦  «        t          d                     |d	k    rd	nd
|¦  «        ¦  «        f¦  «         |S )Nztype={}&tmdb={}z&s={}Ú z&e={}zaction=ctx_mark&{}&watched={}r   é   z(action=ctx_hide_continue&type={}&tmdb={}r'   rJ   )	rU   r	   r7   r%   ÚS_UNWATCHEDÚ	S_WATCHEDr   Ú_in_continueÚS_HIDE)r    r-   r>   r?   r(   r@   Úwatchedr   s           r   Ú_state_itemszMenu._state_itemsS   sI  € ØˆØ—/’/ $¨°¸ÑAÔAˆØ!×(Ò(¨¨wÑ7Ô7ÐU[ÐUg¸7¿>º>È&Ñ;QÔ;QÐ;QÐmoÑpØ*1Ð*=ˆw�~Š~˜gÑ&Ô&Ð&À2ñGˆà�Š�d—i’i¨wÐ E¥ ½IÑFÔFÝÐ=×DÒDÀUÐQXÐL_ÈAÈAÐ^_Ñ`Ô`ÑaÔaðcñ 	dô 	dð 	dà×Ò˜T 7Ñ+Ô+ð 	BØ�LŠL˜$Ÿ)š)¥FÑ+Ô+­WÐ5_×5fÒ5fØ 7š?˜?��°°gñ6?ô 6?ñ .@ô .@ð Añ Bô Bð Bàˆr   c                 óš  — |dk    rdnd}| j                              |¦  «                             |¦  «        pi }|                     d¦  «        rdS |dk    rTt          | j                              ¦   «                              |¦  «        pi                      d¦  «        pd¦  «        dk    S t          |                     d¦  «        ¦  «        S )Nr'   rJ   Úhidden_from_continue_atFr,   r   Úlast_activity_at)r   Útitlesr4   r6   r3   rQ   )r    r-   r>   ÚmediaÚrows        r   r[   zMenu._in_continue_   sÂ   € Ø 7š?˜?��°ˆØŒi×Ò˜uÑ%Ô%×)Ò)¨'Ñ2Ô2Ð8°bˆØ�7Š7Ð,Ñ-Ô-ð 	Ø�5Ø�7Š?ˆ?Ý˜$œ)×0Ò0Ñ2Ô2×6Ò6°wÑ?Ô?ÐEÀ2×JÒJÈ<ÑXÔXÐ]Ð\]Ñ^Ô^ÐabÒbÐbÝ�C—G’GÐ.Ñ/Ô/Ñ0Ô0Ð0r   c           	      ó:  — |dk    }t          | j                             |rdnd¦  «                             |¦  «        pi                      d¦  «        ¦  «        }|r|rt          nt
          n|rt          nt          }|                      |¦  «        t          d 
                    |rdnd||rdnd¦  «        ¦  «        fg}|                     |                      |rt          nt          ¦  «        t          d 
                    |rdnd|¦  «        ¦  «        f¦  «         |S )Nr'   rJ   Úin_listz&action=ctx_list&type={}&tmdb={}&add={}r   rX   z"action=ctx_channel&type={}&tmdb={})rQ   r   rb   r4   ÚS_REMOVE_MOVIESÚS_ADD_MOVIESÚS_REMOVE_SERIESÚS_ADD_SERIESr%   r   r	   r7   Ú
S_MYCINEMAÚS_MYTV)r    r-   r>   r'   ÚlistedÚlabelr@   s          r   Ú_list_itemszMenu._list_itemsi   s2  € Ø˜’ˆÝ�t”y×'Ò'°5Ð(B¨¨¸dÑCÔC×GÒGÈÑPÔPÐVÐTV×[Ò[Ð\eÑfÔfÑgÔgˆØAFÐy FÐ<•�µ°Ð`fÐMxÍ_È_ÕlxˆØ—)’)˜EÑ"Ô"¥GÐ,T×,[Ò,[ØÐ&ˆGˆG $¨°fÐ1C°°À!ñ-Eô -Eñ %Fô %Fð Gð Hˆà�Š�d—i’i¨eÐ ?¥
 
½Ñ@Ô@ÝÐB×IÒIÐUZÐJdÈ'È'Ð`dÐfmÑnÔnÑoÔoðqñ 	rô 	rð 	ràˆr   rW   c                 óü  — |dk    }|rdnd}|r| j                              |¦  «        n| j                              |¦  «        }| j                              ||¦  «        pi }	|r|                     d¦  «        n|                     d¦  «        p+|	                     d¦  «        p|	                     d¦  «        p|}|                      t          ¦  «        t          d                     ||¦  «        ¦  «        fg}
|                     d¦  «        p|                     d¦  «        p|}|
 	                    |                      t          ¦  «        t          d                     |rd	nd
|t          |¦  «        ¦  «        ¦  «        f¦  «         |rp|                     d¦  «        r[|
 	                    |                      t          ¦  «        d                     t                               d¦  «        |¦  «        f¦  «         t          j        t          j        |                     d¦  «        ¦  «        }ddlm} |                     |                     |t-          |¦  «        ||                     d¦  «        pd||                     d¦  «        p|                     d¦  «        pdd d…         |dv r|nd |dk    r|nd ¬¦  «        ¦  «        }|
 	                    |                      t.          ¦  «        t          |¦  «        f¦  «         |
S )Nr'   rJ   ÚtitleÚnamez0action=show_wcs_details&media_type={}&tmdb_id={}Úoriginal_titleÚoriginal_namez=action=display_similar_{}_dialog&tmdb_id={}&original_title={}ÚmoviesÚseriesÚbelongs_to_collectionzHActivateWindow(Videos,{}?action=show_movie_collection&tmdb_id={},return)r   Úposter_pathr   )ÚmillionaireÚoverviewrW   Úrelease_dateÚfirst_air_dateé   )r?   r(   r(   )rq   r>   Ú
media_typeÚplotÚposterÚyearÚseason_numberÚepisode_number)r   r'   ÚshowÚsnapshotr4   r%   ÚS_DETAILr   r	   r7   Ú	S_SIMILARr   ÚS_COLLECTIONr
   r   r   Ú_imageÚPOSTERÚ	wcs.gamesry   r   ÚSubjectÚstrÚS_GAME)r    r-   r>   r?   r(   rq   r'   rc   Údetailr…   r@   Úoriginalr€   ry   Úgames                  r   Ú_discovery_itemszMenu._discovery_itemst   s  € Ø˜’ˆØ Ð*�� dˆØ-2ÐO�”—’ Ñ)Ô)Ð)¸¼	¿ºÀwÑ8OÔ8OˆØ”9×%Ò% e¨WÑ5Ô5Ð;¸ˆØ(-ÐE�—’˜GÑ$Ô$Ð$°6·:²:¸fÑ3EÔ3Eð  AÈ(Ï,Ê,ÐW^ÑJ_ÔJ_ð  AÐck×coÒcoÐpvÑcwÔcwð  Að  |AˆØ—)’)�HÑ%Ô%¥wÐ/a×/hÒ/hÐinÐpwÑ/xÔ/xÑ'yÔ'yÐzÐ{ˆØ—:’:Ð.Ñ/Ô/ÐW°6·:²:¸oÑ3NÔ3NÐWÐRWˆØ�Š�d—i’i¥	Ñ*Ô*­GÐ4s×4zÒ4zØÐ+ˆHˆH 8¨WµjÀÑ6JÔ6Jñ5Lô 5Lñ -Mô -Mð Nñ 	Oô 	Oð 	Oàð 	-�V—Z’ZÐ 7Ñ8Ô8ð 	-Ø�LŠL˜$Ÿ)š)¥LÑ1Ô1Ð3}÷  4Eò  4EÝ—’˜CÑ Ô  'ñ4+ô 4+ð ,ñ -ô -ð -å”�Tœ[¨&¯*ª*°]Ñ*CÔ*CÑDÔDˆØ)Ð)Ð)Ð)Ð)Ð)Ø× Ò  ×!4Ò!4Ø¥ W¡¤¸%ÀfÇjÂjÐQ[ÑF\ÔF\ÐFbÐ`bÐkqØ—*’*˜^Ñ,Ô,ÐR°·
²
Ð;KÑ0LÔ0LÐRÐPRÐTVÐUVÐTVÔWØ$(Ð,AÐ$AÐ$A˜&˜&ÀtØ&*¨iÒ&7Ð&7˜7˜7¸Tð	 "5ñ "Cô "Cñ Dô Dˆð
 	�Š�d—i’i¥Ñ'Ô'­°©¬Ð7Ñ8Ô8Ð8Øˆr   c                 ó^   — ddl m} |                     |t          |¦  «        |||dœ¦  «        S )zTCompatibility with callers of the old builder; layout belongs to the shared manager.r   ©Úcontext©ÚtypeÚtmdbr1   r2   rq   )Úwcs.skinr•   Úpartsr�   ©r    r-   r>   r?   r(   rq   r•   s          r   Úbuild_partszMenu.build_parts‹   s<   € à$Ð$Ð$Ð$Ð$Ð$Ø�}Š} dµC¸±L´LÀvÐT[ÐfkÐlÐlÑmÔmÐmr   c                 ó^   — ddl m} |                     |t          |¦  «        |||dœ¦  «        S )Nr   r”   r–   )r™   r•   Úentryr�   r›   s          r   Úbuildz
Menu.build�   s<   € Ø$Ð$Ð$Ð$Ð$Ð$Ø�}Š} dµC¸±L´LÀvÐT[ÐfkÐlÐlÑmÔmÐmr   r   ©NN)rW   )NNrW   )Ú__name__Ú
__module__Ú__qualname__r!   r%   rF   rU   r^   r[   ro   r’   rœ   rŸ   rK   r   r   r   r       sÑ   € € € € € ðð ð ð ð
'ð 'ð 'ðð ð ð6
wð 
wð 
wð 
wð
ð 
ð 
ð1ð 1ð 1ðð ð ðð ð ð ð.nð nð nð nð
nð nð nð nð nð nr   r   c                 ó4  — 	 ddl m} |                     |                      d¦  «        ¦  «        }|                     |t          |¦  «        |||                      ¦   «         ¬¦  «         |                      d|                     |¦  «        ¦  «         |  	                    | 
                    |¦  «        d¦  «         dS # t          $ rP}ddl}	|	                     d                     t          |¦  «        j        |¦  «        |	j        ¦  «         Y d}~dS d}~ww xY w)zBPut the menu on a ListItem; a failing menu never breaks a listing.r   r”   zmilionar.ctxdatar–   TNu0   [MilionÃ¡Å™ Library] context menu failed: {}: {})r™   r•   ÚunpackÚgetPropertyÚupdater�   ÚgetLabelÚsetPropertyÚpackÚaddContextMenuItemsrž   Ú	ExceptionÚxbmcÚlogr	   r—   r¡   Ú
LOGWARNING)
ÚitemÚmenur-   r>   r?   r(   r•   r   Úexcr­   s
             r   Úattachr³   •   s!  € ðvØ$Ð$Ð$Ð$Ð$Ð$Ø�~Š~˜d×.Ò.Ð/AÑBÔBÑCÔCˆØ�Š˜¥C¨¡L¤L°F¸gÈTÏ]Ê]É_Ì_ˆÑ]Ô]Ð]Ø×ÒÐ+¨W¯\ª\¸$Ñ-?Ô-?Ñ@Ô@Ð@Ø× Ò  §¢¨tÑ!4Ô!4°dÑ;Ô;Ð;Ð;Ð;øÝð vð vð vØˆˆˆØ�ŠÐC×JÒJÍ4ÐPSÉ9Ì9ÔK]Ð_bÑcÔcÐeiÔetÑuÔuÐuÐuÐuÐuÐuÐuÐuøøøøðvøøøs   ‚B9B= Â=
DÃADÄDc                 ó˜  — t          |¦  «        }| D ]·\  }}}|                     d¦  «        }|                     d¦  «        }|dvs|rd|v rŒ;|                     d¦  «        |                     d¦  «        }	}|dk    rŒlt          |||t          |¦  «        |dk    rt          |¦  «        nd	|	dk    rt          |	¦  «        nd	¦  «         Œ¸d	S )
z¸Context menu on every [(path, ListItem, is_folder)] that carries `milionar.type` (movie / tv / season / episode);
    not on the "all seasons" folder, unaired episodes and the buttons.zmilionar.typezmilionar.tmdb)r'   rJ   r?   r(   Ú	mupcomingz
milionar.sz
milionar.ez-1rW   N)r   r¦   r³   r   )
r@   r   r±   Úpathr°   Ú_folderr-   r>   r?   r(   s
             r   Úattach_itemsr¸   ¢   sù   € õ �‰:Œ:€DØ$ð ð Ñˆˆd�GØ×Ò Ñ0Ô0ˆØ×"Ò" ?Ñ3Ô3ˆØÐ;Ð;Ð;À7Ð;ÈkÐ]aÐNaÐNaØØ×*Ò*¨<Ñ8Ô8¸$×:JÒ:JÈ<Ñ:XÔ:X�ˆØ�TŠ>ˆ>ØÝˆt�T˜4¥ W¡¤¸fÈºl¸l­s°6©{¬{¨{ÐPTÐfmÐqsÒfsÐfsÕVYÐZaÑVbÔVbÐVbÐy}Ñ~Ô~Ð~Ð~ðð r   r    r   )#Ú__doc__Úurllib.parser   r   r   Úwcs.library2r   r   r   r	   r
   r8   r9   r:   r;   r=   rZ   rY   r\   rh   rg   rj   ri   rl   rk   r†   r‡   rˆ   rŽ   ÚS_MOREr   r   r   r³   r¸   rK   r   r   ú<module>r½      s<  ððð ð +Ð *Ð *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à"€Ø×Ò˜XÑ&Ô&€à0QÑ -€ˆ)�V˜X vØ!4Ñ €	ˆ;˜Ø?YÑ <€ˆo˜|¨_Ø@hÑ =€ˆ
�H˜i¨°vØ	€ð>ð >ð >ðAð Að Aðrnð rnð rnð rnð rnñ rnô rnð rnðj
vð 
vð 
vð 
vðð ð ð ð ð r   