§
   ö5M,m@\ˆã                   ó®  — d Z ddlmZmZmZmZ ddlZddlmZ	 dZ
d                     e
¦  «        ZdZdd	dd
dez   dez   dez   dez   ddddddœZi dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7d8d9d:d;d<d=œ¥Zd>d?d@œdAdBidAdBidAdBiddCidDœZdE\  ZZi dFdG“dHdG“dIdJ“dKdJ“dLdG“dMdG“dNdG“dOdP“dQdR“dSdJ“dTdG“dUdG“dVdG“dWdX“dYdX“dZdX“d[dX“i d\dX“d]dX“d^d_“d`d_“dad_“dbd_“dcdd“dedd“dfdd“dgdh“didX“djdd“dkdX“dldh“dmd.“dndo“dpdq“¥dqdrdsdhdhdhdhdhdhdhdhdhdtœ¥Zi dFdA“dHdA“dKd“dId“dLdA“dMdA“dNdA“dOdA“dQdA“dSd“dTdA“dUdA“dVdA“dWd“dYd“dZd"“d[d"“i d\d"“d]d"“d^d“d`d“dad“dbd“dcd$“ded$“dfd$“dgd“did"“djd"“dkd"“dld“dmd.“dnd“dpd.“¥d.dududd"d"d"d"d"d"d"d"dtœ¥ZdvZdXdddwœZd"d$dwœZdddwœZdx„ Zd‡dy„Zdz„ Zd{„ Zd|„ Zd}„ Zd~„ Zd„ Z d€„ Z!d�„ Z"d‚„ Z#dˆdƒ„Z$d‰d…„Z%d†„ Z&dS )Ša)  Click action of Home widgets (docs/plan/milionar-library/150-widget-clicks.md).

Every widget row has a kind (movie, series, episode, ...), a fixed set of click options and a default; the slot's skin
string `mil.<sec>.<n>.click` picks one. This module only knows ids and builds the paths of the items, so it stays light
for the `main.py` fast path (no network, no Kodi library, no router import). The actions behind the paths are the
proven addon actions (`mplay_req`, `show_wcs_details`, ...) and the fast-path actions of `ctx.py` / `channel_play.py`.
é    )Ú	parse_qslÚquoteÚ
quote_plusÚurlsplitN)ÚSECTIONSzplugin.video.milionarzplugin://{}/)ÚsimilarÚgameÚlistÚchannelÚwatched)ÚopenÚdetailÚplay_allÚshuffle)Úplayr   Ú	play_fromÚqueue)r   r   r   )r   Ú
play_startÚstreamr   )Úfolderr   ÚnextÚnext_stream)r   r   r   r   r   Úseason)r	   r   r   r   r   )r	   )r   r   r   r   r   r	   Úchannel_open)ÚliveÚlive_shuffleÚfirstÚrandomr   )r   r   r   )Úvinyl_collectionÚ
vinyl_songÚvinyl_genreÚvinyl_radioÚmovieÚseriesÚepisodeÚmixedr	   ÚdemoÚ	mytv_nextÚ
tv_channelÚcinema_channelr   i
  r   i  r   i  r   i  r   iy~  r   iz~  r   i{~  r   i|~  r   i}~  r   i~~  r   i~  r   i€~  r   i�~  r	   i‚~  r
   iƒ~  r   i„~  r   i…~  i†~  i‡~  iˆ~  i‰~  iŠ~  iŒ~  i¬  )r   r   r   r   r   r   Úheroi‹~  i�~  )r   r   r   i	  i  )r*   r   r!   r"   r    )iw~  ix~  Úvinyl_curatorr   Úvinyl_discoverÚvinyl_top_tracksr    Úvinyl_songsÚvinyl_albumsÚvinyl_artistsÚvinyl_playlistsÚvinyl_genresr!   Úvinyl_radiosr"   Úvinyl_favorite_songsÚvinyl_favorite_playlistsÚvinyl_favorite_albumsÚvinyl_favorite_artistsÚcont_moviesr#   Úmy_movies_progressÚmy_movies_addedÚmy_movies_unwatchedÚmy_movies_watchedÚmy_movies_allÚcont_seriesr%   Úmy_series_nextÚmy_series_newÚmy_series_upcomingÚmy_series_addedr$   Úmy_series_unwatchedÚmy_series_allÚrecent_playedr&   Úwidget_tmdb_popular_moviesÚwidget_tmdb_popular_seriesÚwidget_mycinema_recommendedÚwidget_ai_recentÚwidget_game_topicsÚwidget_mytv_nextr(   Úwidget_demo_moviesr'   r)   r*   )Úwidget_demo_seriesÚwidget_mytv_channelsÚwidget_mycinema_channelsÚfy_continueÚ
fy_for_youÚfy_top10Úfy_because_1Úfy_because_2Úfy_because_3Ú
fy_tonightÚfy_newÚfy_gemsr   ©r   r   r   r   r   )Úmoviesr$   c                 ó8   — t                                | d¦  «        S ©NÚ )ÚROW_KINDÚget©Úrows    úa/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/library2/clicks.pyÚkind_ofrd   ]   s   € Ý�<Š<˜˜RÑ Ô Ð ó    c                 ó’   — t                                t                               | d¦  «        d¦  «        }|r|�	|t          v r|dz   S |S )z9Click options of a widget row (empty: a folder-only row).r^   © N)r+   )ÚOPTIONSr`   r_   ÚHERO_SECTIONS)rb   ÚsectionÚvaluess      rc   Úoptionsrl   a   sI   € å�[Š[�Ÿš c¨2Ñ.Ô.°Ñ3Ô3€FØð "�7�? gµÐ&>Ð&>Ø˜	Ñ!Ð!Ø€Mre   c                 ó8   — t                                | d¦  «        S r]   )ÚDEFAULTr`   ra   s    rc   Údefaultro   i   s   € Ý�;Š;�s˜BÑÔÐre   c                 óF   — |t          | ¦  «        v r|nt          | ¦  «        S )zbThe click of a widget: its stored value when it is valid for the row, otherwise the row's default.)rl   ro   )rb   Úvalues     rc   Úresolverr   m   s"   € à�W S™\œ\Ð)Ð)ˆ5ˆ5­w°s©|¬|Ð;re   c                 ó(  — t                                | d¦  «        }t                               |i ¦  «                             |¦  «        pt                               |¦  «        }|r,t	          j        t          ¦  «                             |¦  «        n|S r]   )r_   r`   ÚKIND_LABELSÚLABELSÚ	xbmcaddonÚAddonÚADDON_IDÚgetLocalizedString)rb   ÚoptionÚkindÚ	string_ids       rc   Úlabelr}   r   sp   € Ý�<Š<˜˜RÑ Ô €DÝ—’  bÑ)Ô)×-Ò-¨fÑ5Ô5ÐK½¿ºÀFÑ9KÔ9K€IØFOÐ[�9Œ?�8Ñ$Ô$×7Ò7¸	ÑBÔBÐBÐU[Ð[re   c                 óp   — t          j        t          ¦  «                             t          |          ¦  «        S )zBLabel of an option without a row (the skin settings of the lists).)rv   rw   rx   ry   ru   )rz   s    rc   Úlabel_ofr   x   s$   € åŒ?�8Ñ$Ô$×7Ò7½¸v¼ÑGÔGÐGre   c                 ó–   — ddl }|                     d                     | ¦  «        ¦  «        }|t          |          v r|nt          |          S )zrClick of the skin's lists (`movies` | `series`): the skin setting, valid or the default (never the addon setting).r   NzSkin.String(mil.list.{}.click))ÚxbmcÚgetInfoLabelÚformatÚLIST_OPTIONSÚLIST_DEFAULT)r{   r�   rq   s      rc   Ú
list_clickr†   }   sK   € à€K€K€KØ×ÒÐ>×EÒEÀdÑKÔKÑLÔL€EØ�\¨$Ô/Ð/Ð/ˆ5ˆ5µ\À$Ô5GÐGre   c                 óV   — d                      t          t          | d¬¦  «        ¦  «        S )zdPlayable plugin URL that resolves to nothing and starts RunPlugin(<query>) (the `skin_run` pattern).z{}?action=skin_run&run={}r^   )Úsafe)rƒ   ÚBASEr   )Úquerys    rc   Ú_runr‹   †   s%   € à&×-Ò-­dµE¸%ÀbÐ4IÑ4IÔ4IÑJÔJÐJre   c                 ó8   — d                      t          | ¦  «        S )Nz${}?action=mlist&kind=seasons&tmdb={}©rƒ   r‰   )Útmdb_ids    rc   Úseasons_pathr�   ‹   s   € Ø1×8Ò8½¸wÑGÔGÐGre   c                 ó:   — d                      t          | |¦  «        S )Nz*{}?action=mlist&kind=episodes&tmdb={}&s={}r�   )rŽ   r   s     rc   Úseason_pathr‘   �   s   € Ø7×>Ò>½tÀWÈfÑUÔUÐUre   c                 óV   — d                      t          t          | pd¦  «        ¦  «        S )Nz{}?action=mupcoming&text={}r^   )rƒ   r‰   r   )Útexts    rc   Ú_unairedr”   “   s$   € Ø(×/Ò/µµjÀÀÈÑ6LÔ6LÑMÔMÐMre   c                 óÌ  — |pi }t          |¦  «        }|                     d¦  «        pd}|�|t          v rt          |¦  «        dfS | dk    r+d                     |¦  «        }d                     |¦  «        }	nJ| dk    r-d	                     |||¦  «        }d
                     |¦  «        }	nd}d
                     |¦  «        }	| dk    rdnd}
|dv rd|dv rdnd}|dk    rdnd}| dk    r&t          d                     |||¦  «        ¦  «        dfS t          d                     |||¦  «        ¦  «        dfS |dk    rt          |	¦  «        dfS |dk    rt          |¦  «        dfS |dk    r| dk    rt          ||¦  «        dfS |dk    rR|                     d¦  «        p|}t          d                     | dk    rdnd|t          |¦  «        ¦  «        ¦  «        dfS |dk    rÏdd l	m
} |                     |t          |¦  «        |
|                     d!¦  «        pd|                     d"¦  «        pd|                     d#¦  «        pd|                     d$¦  «        pd| dk    r|nd| dk    r|nd|                     d%¦  «        pd¬&¦
  «
        }t          |                     |¦  «        ¦  «        dfS |d'k    r%t          d(                     |
|¦  «        ¦  «        dfS |d)k    r%t          d*                     |
|¦  «        ¦  «        dfS |d+k    rL| dk    rd,                     ||¦  «        nd}t          d-                     | dk    rdn|
||¦  «        ¦  «        dfS t          |	¦  «        dfS ).a  (path, is_folder) of the click `click` on a title.

    media: `movie`, `tv` (a series) or `episode`; `meta`: title, original, plot, poster, fanart, year of the title;
    `unaired_text`: set for an episode that has not aired yet (a play like option only shows it).
    Útitler^   NFr#   ztype=movie&tmdb={}z3action=show_wcs_details&media_type=movie&tmdb_id={}r%   ztype=episode&tmdb={}&s={}&e={}z0action=show_wcs_details&media_type=tv&tmdb_id={}ÚtvrZ   )r   r   ÚdialogÚknownr   ÚstartÚresumez&action=ctx_next&tmdb={}&src={}&from={}z"action=mplay_req&{}&src={}&from={}r   r   Tr   r   Úoriginalz=action=display_similar_{}_dialog&tmdb_id={}&original_title={}r[   r$   r	   r   )ÚmillionaireÚplotÚyearÚposterÚfanartÚepisode_title)
r–   rŽ   Ú
media_typerž   rŸ   r    ÚbackdropÚseason_numberÚepisode_numberr¢   r
   z&action=ctx_list_toggle&type={}&tmdb={}r   z"action=ctx_channel&type={}&tmdb={}r   z
&s={}&e={}z(action=ctx_mark_toggle&type={}&tmdb={}{})Úintr`   ÚUNAIRED_NOTEr”   rƒ   r‹   r�   r‘   r   Ú	wcs.gamesr�   ÚSubjectÚstrrŠ   )ÚmediarŽ   Úclickr   r%   ÚmetaÚunaired_textr–   Úquery_idÚdetailsr{   Úsrcrš   rœ   r�   ÚsubjectÚextras                    rc   Ú
title_pathrµ   —   s+  € ð ˆ:�2€DÝ�'‰lŒl€GØ�HŠH�WÑÔÐ# €EØÐ E­\Ð$9Ð$9Ý˜Ñ%Ô% uÐ,Ð,Ø�ÒÐØ'×.Ò.¨wÑ7Ô7ˆØG×NÒNÈwÑWÔWˆˆØ	�)Ò	Ð	Ø3×:Ò:¸7ÀFÈGÑTÔTˆØD×KÒKÈGÑTÔTˆˆàˆØD×KÒKÈGÑTÔTˆØ˜wÒ&Ð&ˆ7ˆ7¨D€DØÐGÐGÐGØÐ#<Ð<Ð<ˆhˆhÀ'ˆØ  LÒ0Ð0��°hˆØ�DŠ=ˆ=ÝÐ@×GÒGÈÐQTÐV[Ñ\Ô\Ñ]Ô]Ð_dÐdÐdÝÐ8×?Ò?ÀÈ#ÈuÑUÔUÑVÔVÐX]Ð]Ð]Ø�ÒÐÝ�G‰}Œ}˜eÐ#Ð#Ø�ÒÐÝ˜GÑ$Ô$ dÐ*Ð*Ø�ÒÐ˜U iÒ/Ð/Ý˜7 FÑ+Ô+¨TÐ1Ð1Ø�	ÒÐØ—8’8˜JÑ'Ô'Ð0¨5ˆÝÐS×ZÒZØ Ò(Ð(ˆHˆH¨h¸ÅÈHÑAUÔAUñWô Wñ Xô XØY^ð_ð 	_à�‚€Ø)Ð)Ð)Ð)Ð)Ð)Ø×%Ò%¨E½3¸w¹<¼<ÐTXØ+/¯8ª8°FÑ+;Ô+;Ð+A¸rÈÏÊÐQWÑHXÔHXÐH^Ð\^Ø-1¯XªX°hÑ-?Ô-?Ð-EÀ2ÐPT×PXÒPXÐYaÑPbÔPbÐPhÐfhØ>CÀyÒ>PÐ>P°F°FÐVZØ@EÈÒ@RÐ@R°W°WÐX\Ø48·H²H¸_Ñ4MÔ4MÐ4SÐQSð &ñ Uô Uˆõ �K×%Ò% gÑ.Ô.Ñ/Ô/°Ð6Ð6Ø�‚€ÝÐ<×CÒCÀDÈ'ÑRÔRÑSÔSÐUZÐZÐZØ�	ÒÐÝÐ8×?Ò?ÀÀgÑNÔNÑOÔOÐQVÐVÐVØ�	ÒÐØ8=ÀÒ8JÐ8J�×#Ò# F¨GÑ4Ô4Ð4ÐPRˆÝÐ>×EÒEÐSXÐ\eÒSeÐSeÀiÀiÐkoÐqxÐzñ  Aô  Añ  Bô  Bð  DIð  Ið  	IÝ�‰=Œ=˜%ÐÐre   Fc                 óz  — |rd                      | ¦  «        S t          t          t          | ¦  «        j        ¦  «        ¦  «        }|                     d¦  «        dk    rI|                     d¦  «        r4d                      t                               d¦  «        |d         ¦  «        S d                      | ¦  «        S )a/  The builtin the skin's container `onclick` runs for an item (`ListItem.Property(milionar.exec)`).

    Kodi's own click on a widget item (CDirectoryProvider::OnClick) first runs its video "select action" for every item
    with a video tag: an item with a resume point gets Kodi's resume prompt before our action. The skin therefore runs
    the click itself (Includes_Home.xml `onclick_action`); this is what it runs: a folder opens in the Videos window, an
    action starts through RunPlugin (the `run` of a `skin_run` URL directly, without the extra hop).z ActivateWindow(Videos,{},return)ÚactionÚskin_runÚrunzRunPlugin({}?{})ú/zRunPlugin({}))rƒ   Údictr   r   rŠ   r`   r‰   Úrstrip)Úpathr   Úparamss      rc   Úexec_forr¿   Ï   s    € ð ð ?Ø1×8Ò8¸Ñ>Ô>Ð>Ý•)�H T™NœNÔ0Ñ1Ô1Ñ2Ô2€FØ‡z‚z�(ÑÔ˜zÒ)Ð)¨f¯jªj¸Ñ.?Ô.?Ð)Ø!×(Ò(­¯ª°SÑ)9Ô)9¸6À%¼=ÑIÔIÐIØ×!Ò! $Ñ'Ô'Ð're   c                 ój  — |                       d¦  «        dk    rdnd}|                       d¦  «        p|                       d¦  «        }|                       d¦  «        p|                       d¦  «        pd|                       d	¦  «        pd|                       d
¦  «        pddœ}t          ||||¬¦  «        S )zr(path, is_folder) for an entry of the cached / history widgets (`media_type`, `tmdb_id`, title, plot, poster ...).r£   r#   r—   rŽ   Úidr–   Únamer^   rž   r    )r–   rž   r    )r®   )r`   rµ   )Úentryr­   r¬   rŽ   r®   s        rc   Ú
entry_pathrÄ   Þ   s²   € à—y’y Ñ.Ô.°'Ò9Ð9ˆGˆG¸t€EØ�iŠi˜	Ñ"Ô"Ð5 e§i¢i°¡o¤o€GØ—Y’Y˜wÑ'Ô'ÐB¨5¯9ª9°VÑ+<Ô+<ÐBÀÈEÏIÊIÐV\ÑL]ÔL]ÐLcÐacØ—i’i Ñ)Ô)Ð/¨Rð1ð 1€Då�e˜W e°$Ð7Ñ7Ô7Ð7re   )N)NNNN)F)'Ú__doc__Úurllib.parser   r   r   r   rv   Úwcs.skin.hero_contractr   ri   rx   rƒ   r‰   ÚCOMMONrh   ru   rt   ÚS_CLICKÚS_CHOOSEr_   rn   r¨   Ú
LIST_KINDSr…   r„   rd   rl   ro   rr   r}   r   r†   r‹   r�   r‘   r”   rµ   r¿   rÄ   rg   re   rc   ú<module>rÌ      s÷  ððð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?à Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <à"€Ø×Ò˜XÑ&Ô&€ð 
;€àAØ:Ø<Ø1Ø7¸&Ñ@Ø9¸FÑBØMÐPVÑVØ7¸&Ñ@Ø;ØØZØEØ0ðð €ð 
Ø�ð
Ø  %ð
Ø)4°eð
Ø=DÀeð
à
ˆEð
à ð
à(0°%ð
à9AÀ5ð
àJRÐTYð
à[cÐejð
ð ˆEð
ð ! %ð
ð *3°Eð
ð <BÀ5ð
ð KQÐRWð
ð ZcÐdið
ð ˆuð	
ð ',°UÈEÐ\aÐmrØ˜5ð
ð 
ð 
€ð -2¸5Ð!AÐ!AØ$*¨E ?ÀFÈEÀ?Ø% u˜o¸fÀe¸_ðNð N€ð !Ñ €ˆðØÐ'ðØ)9Ð;Mðà˜ðð �<ðð "0Ð1Cðð FUÐVhðð Ð)ð	ð ,:¸=ð	ð KYÐZgð	ð
 ˜Lðð
 +EÐFXðð Ð/ðð 2JÐK]ðð �7ðð 1°'ðð <MÈgðð XmÐnuðð ð ˜ðð #2°7ðð �9ðð /°	ðð <KÈIðð XlÐmvðð �xðð "7¸ðð CRÐS[ðð �Wðð ! 'ðð ,HÈðð TqÐryðð ˜ðð "6°vðð @RÐS^ðð ˜&ðð ð 9?Ø(ÐFVØ¨'¸wÐX_Ø¨WÀGÐW^Ðkrð#ð ð €ð&Ø�VðØ-¨vðØ7DÀfðà˜ðð �Fðð ,¨Vðð 6GÈðð Q_Ð`fðð �Fð	ð 3°Fð	ð =WÐX^ð	ð
 ˜Vðð
 &>¸vðð �6ðð 0°ðð :KÈHðð WlÐmuðð ð ˜ðð $3°Hðð �6ðð ,¨Vðð 6EÀfðð OcÐdjðð �xðð "7¸ðð CRÐS[ðð �Vðð ! (ðð -IÈ(ðð UrÐs{ðð ˜ðð !5°fðð ?QÐRXðð ˜&ðð ð 9?Ø"ÀØ¨¸xÐYaØ¨hÀhÐZbÐowð!ð ð €ð$ G€ð  ¨8Ð4Ð4€
Ø"¨hÐ7Ð7€ØDÐP{Ð|Ð|€ð!ð !ð !ðð ð ð ð ð  ð  ð<ð <ð <ð
\ð \ð \ðHð Hð Hð
Hð Hð HðKð Kð Kð
Hð Hð HðVð Vð VðNð Nð Nð5 ð 5 ð 5 ð 5 ðp(ð (ð (ð (ð8ð 8ð 8ð 8ð 8re   