§
   ,)iáî÷Îlã                   óª   — d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
 dZd\  ZZdZdZd„ Zd	„ Zd
„ Zdd„Zd„ Zd„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd„ ZdS )uÕ   Context menu actions that change the store (docs/plan/milionar-library/080 Â§2, 040 Â§5), main.py fast path.

State transactions publish row changes; Kodi mirroring and missing metadata run in the service worker.
é    N)ÚjobsÚmetaÚrowsÚstoreÚtmdbzplugin.video.milionar)i¢~  i£~  iu~  iŽ~  c                 óZ   — t          j        t          ¦  «                             | ¦  «        S )N)Ú	xbmcaddonÚAddonÚADDON_IDÚgetLocalizedString)Ú	string_ids    ú^/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/library2/ctx.pyÚ_textr      s    € ÝŒ?�8Ñ$Ô$×7Ò7¸	ÑBÔBÐBó    c                  óÜ   — t          j        d¦  «        rUt          j        d¦  «                             d                     t
          ¦  «        ¦  «        rt          j        d¦  «         d S d S d S )NzWindow.IsActive(videos)zContainer.FolderPathzplugin://{}/zContainer.Refresh)ÚxbmcÚgetCondVisibilityÚgetInfoLabelÚ
startswithÚformatr   Úexecutebuiltin© r   r   Ú_doner      ss   € ÝÔÐ8Ñ9Ô9ð 1ÝÔ!Ð"8Ñ9Ô9×DÒDÀ^×EZÒEZÕ[cÑEdÔEdÑeÔeð1åÔÐ/Ñ0Ô0Ð0Ð0Ð0ð1ð 1ð 1ð 1r   c                 ó.   — t          j        | ||¦  «        S )zKComplete cached aired targets, or None when metadata needs background work.)r   Úcached_targets)ÚkindÚtmdb_idÚseasons      r   Ú	_episodesr      s   € åÔ˜t W¨fÑ5Ô5Ð5r   Tc                 ó°  — t          t          j        ¦   «         ¦  «        }| dk    rdgd}}n!| dk    r||fgd}}nt          | ||¦  «        d}}|�t          j        ||¦  «        r[t          j        ||| |||¦  «         t          j        ¦   «                              dt          d¦  «        t          j
        d¦  «         d	S t          j        |||||¦  «        S )
zbMark a movie, an episode, a season or a whole series (aired regular episodes) watched / unwatched.Úmovie©NNÚepisodeÚtvNõ
   MilionÃ¡Å™i�  iˆ  r   )ÚintÚtimer   r   Úhas_pendingÚenqueueÚxbmcguiÚDialogÚnotificationr   ÚNOTIFICATION_INFOr   Ú	mark_many)r   r   r   r#   ÚwatchedÚwhenÚtargetsÚmedias           r   Úmarkr3   #   s×   € å�tŒy‰{Œ{ÑÔ€DØˆw‚€Ø&˜¨�ˆˆØ	�Ò	Ð	Ø! 7Ð+Ð,¨d�ˆˆå" 4¨°&Ñ9Ô9¸4�ˆØ€�$Ô*¨5°'Ñ:Ô:€ÝŒ�U˜G T¨6°7¸GÑDÔDÐDÝŒÑÔ×%Ò% lµE¸%±L´LÅ'ÔB[Ð]aÑbÔbÐbØˆqÝŒ?˜5 '¨7°G¸TÑBÔBÐBr   c                 ó2   — t          j        | |d¦  «         d S )NT)r   Úset_hidden_from_continue)r2   r   s     r   Úhide_continuer6   3   s   € Ý	Ô" 5¨'°4Ñ8Ô8Ð8Ð8Ð8r   c           	      ól  — d}|r•| dk    rt          j        |¦  «        nt          j        |¦  «        }t          j        |¦  «        d         p/| dk    rt	          j        |¦  «        nt	          j        |¦  «        pi }ddlm} | 	                    | ||¦  «        }t          j        | |t          |¦  «        |¦  «         t          j        ¦   «                              dt!          |rt"          nt$          ¦  «                             t!          | dk    rdnd¦  «        ¦  «        t          j        d¦  «         dS )	zjAdd to / remove from My movies / My series; an added title gets a snapshot (name, year, overview, poster).Nr!   r   )Úsharedr%   i_~  i`~  iÄ	  )r   Ú	key_movieÚkey_tvÚgetr   r!   ÚshowÚwcs.library2r8   Úlist_snapshotr   Úset_in_listÚboolr*   r+   r,   r   ÚS_ADDEDÚ	S_REMOVEDr   r-   )r2   r   ÚaddÚlegacyÚkeyÚdatar8   s          r   Úset_listrG   7   s6  € à€FØ
ð <Ø).°'Ò)9Ð)9�dŒn˜WÑ%Ô%Ð%½t¼{È7Ñ?SÔ?SˆÝŒx˜‰}Œ}˜QÔÐj¸5ÀGÒ;KÐ;K¥D¤J¨wÑ$7Ô$7Ð$7ÕQUÔQZÐ[bÑQcÔQcÐjÐhjˆØ'Ð'Ð'Ð'Ð'Ð'Ø×%Ò% e¨W°dÑ;Ô;ˆÝ	Ô�e˜W¥d¨3¡i¤i°Ñ8Ô8Ð8Ý„NÑÔ×!Ò! ,µÀÐ6Sµg°gÍ)Ñ0TÔ0T×0[Ò0[Ý�u Ò'Ð'ˆeˆe¨UÑ3Ô3ñ15ô 15Ý6=Ô6OÐQUñWô Wð Wð Wð Wr   c                 ó  — |                       |g¦  «         |                      |¦  «        \  }}}|d         dv r|d         d         |d         d         fS |d         €.|sdS |d         d	         r|d         d         |d         d         fS dS )
zÜ(season, episode) the series continues with: resume / next episode, the first one for a series not started, S01E01 when
    the cache knows nothing yet; None when the next episode has not aired or the series is complete.r   )ÚresumeÚnextr#   ÚsÚeN)é   rM   r   Úaired)Úpreload_seriesÚseries_state)rF   r   Ú_showÚorderÚstates        r   Únext_targetrT   D   s«   € ð 	×Ò˜˜	Ñ"Ô"Ð"Ø×+Ò+¨GÑ4Ô4Ñ€Eˆ5�%ØˆV„}Ð*Ð*Ð*Ø�YÔ Ô$ e¨IÔ&6°sÔ&;Ð;Ð;ØˆV„}ÐØð 	Ø�4Ø�Œ8�GÔð 	0Ø˜”8˜C”= %¨¤(¨3¤-Ð/Ð/Øˆ4r   ÚknownrI   c                 ó0  — t          t          j        ¦   «         | ¦  «        }|sGt          j        ¦   «                              dt          t          ¦  «        t          j        d¦  «         dS ddl	m
} |                     | |d         |d         ||¦  «         dS )zlClick on a series: play its next episode (`src`: known = same stream as last time else the dialog | dialog).r%   i   Nr   )ÚplayrM   )rT   r   ÚDatar*   r+   r,   r   Ú	S_NO_NEXTr-   r=   rW   Úplay_episode)r   ÚsrcÚstartÚtargetrW   s        r   Ú	play_nextr^   S   sŽ   € å�œ™œ gÑ.Ô.€FØð ÝŒÑÔ×%Ò% lµE½)Ñ4DÔ4DÅgÔF_ÐaeÑfÔfÐfØˆØ!Ð!Ð!Ð!Ð!Ð!Ø×Ò�g˜v aœy¨&°¬)°S¸%Ñ@Ô@Ð@Ð@Ð@r   c                 óà   — t          t          j        ¦   «                              | ¦  «                             |¦  «        pi                      d¦  «        ¦  «        }t          | || ¦  «         dS )zdAdd the title to My movies / My series, or remove it when it is there (the notification says which).Úin_listN)r@   r   rX   Útitlesr;   rG   )r2   r   Úlisteds      r   Útoggle_listrc   ]   s^   € å•4”9‘;”;×%Ò% eÑ,Ô,×0Ò0°Ñ9Ô9Ð?¸R×DÒDÀYÑOÔOÑPÔP€FÝˆU�G ˜ZÑ(Ô(Ð(Ð(Ð(r   c                 óÀ   — ddl m} t          j        | |||¦  «        }|€*|                     ¦   «                              | |||¦  «        }t          | |||| ¦  «         dS )zKMark the movie / episode / series watched, or unwatched when it already is.r   )ÚmenuN)r=   re   r   Úpending_watchedÚMenuÚ
is_watchedr3   )r   r   r   r#   re   r/   s         r   Útoggle_watchedri   c   sn   € à!Ð!Ð!Ð!Ð!Ð!ÝÔ" 4¨°&¸'ÑBÔB€GØ€Ø—)’)‘+”+×(Ò(¨¨w¸ÀÑHÔHˆÝˆˆw˜ ¨W¨Ñ5Ô5Ð5Ð5Ð5r   c                 ó8   — ddl m} |                     | ¦  «        S )z]The skin closes Kodi's menu; our custom popup applies the originating widget's configuration.r   )Úcontext)Úwcs.skinrk   Ú	open_menu)Úparamsrk   s     r   rm   rm   l   s(   € à Ð Ð Ð Ð Ð Ø×Ò˜VÑ$Ô$Ð$r   c           	      óî  ‡ — ‰                       dd¦  «        }‰                       dd¦  «        }|dk    rt          ‰ ¦  «        S t          ‰ d         ¦  «        }ˆ fd„}|dk    r=t          || |d¦  «         |d	¦  «        ‰                       d
¦  «        dk    ¦  «         nÇ|dk    rt	          ||¦  «         n°|dk    r)t          ||‰                       d¦  «        dk    ¦  «         n�|dk    rt          ||¦  «         nj|dk    r%t          || |d¦  «         |d	¦  «        ¦  «         n?|dk    r9t          |‰                       dd¦  «        ‰                       dd¦  «        ¦  «        S t          ¦   «          d S )NÚactionÚ ÚtypeÚctx_openr   c                 ó`   •— ‰                      | ¦  «        dvrt          ‰|          ¦  «        nd S )N)Nrq   )r;   r&   )rE   rn   s    €r   Únumberzrun.<locals>.numbery   s.   ø€ Ø#)§:¢:¨c¡?¤?¸*Ð#DÐ#D�s�6˜#”;ÑÔÐÈ$ÐNr   Úctx_markrK   rL   r/   Ú1Úctx_hide_continueÚctx_listrC   Úctx_list_toggleÚctx_mark_toggleÚctx_nextr[   rU   ÚfromrI   )
r;   rm   r&   r3   r6   rG   rc   ri   r^   r   )rn   rp   r   r   ru   s   `    r   Úrunr~   r   sŸ  ø€ Ø�ZŠZ˜ "Ñ%Ô%€FØ�:Š:�f˜bÑ!Ô!€DØ�ÒÐÝ˜Ñ Ô Ð Ý�&˜”.Ñ!Ô!€GðOð Oð Oð Oð Oà�ÒÐÝˆT�7˜F˜F 3™KœK¨¨°©¬°f·j²jÀÑ6KÔ6KÈsÒ6RÑSÔSÐSÐSØ	Ð&Ò	&Ð	&Ý�d˜GÑ$Ô$Ð$Ð$Ø	�:Ò	Ð	Ý��w §
¢
¨5Ñ 1Ô 1°SÒ 8Ñ9Ô9Ð9Ð9Ø	Ð$Ò	$Ð	$Ý�D˜'Ñ"Ô"Ð"Ð"Ø	Ð$Ò	$Ð	$Ý�t˜W f f¨S¡k¤k°6°6¸#±;´;Ñ?Ô?Ð?Ð?Ø	�:Ò	Ð	Ý˜ &§*¢*¨U°GÑ"<Ô"<¸f¿jºjÈÐQYÑ>ZÔ>ZÑ[Ô[Ð[Ý	�G„G€G€G€Gr   )NNT)rU   rI   r"   )Ú__doc__r'   r   r	   r*   r=   r   r   r   r   r   r   rA   rB   ÚS_EDIT_WIDGETSrY   r   r   r   r3   r6   rG   rT   r^   rc   ri   rm   r~   r   r   r   ú<module>r�      sV  ððð ð €€€à €€€Ø Ð Ð Ð Ø €€€à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à"€Ø!Ñ €ˆØ€Ø€	ðCð Cð Cð1ð 1ð 1ð6ð 6ð 6ð
Cð Cð Cð Cð 9ð 9ð 9ð
Wð 
Wð 
Wðð ð ðAð Að Að Að)ð )ð )ð6ð 6ð 6ð 6ð%ð %ð %ðð ð ð ð r   