§
   ‰¨>ò.�œã                   ó–   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dlm
Z
  G d„ de j        ¦  «        Zdad„ Zd„ Zd	„ ZdS )
é    N)Ú
quote_plus)Úget_autoplay_manager)Úget_episode_info_managerc                   óx   ‡ — e Zd ZdZdZdZˆ fd„Zˆ fd„Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zˆ xZS )ÚAutoplayPlayerMonitoru‚   
    Monitor pÅ™ehrÃ¡vÃ¡nÃ­ pro autoplay funkcionalitu.
    Sleduje pÅ™ehrÃ¡vÃ¡nÃ­ epizod a zobrazuje dialogy podle potÅ™eby.
    NFc                 ól   •— | j         €&t          ¦   «                              | ¦  «        | _         | j         S )N)Ú	_instanceÚsuperÚ__new__)ÚclsÚ	__class__s    €úh/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/playback/PlayerMonitor.pyr   zAutoplayPlayerMonitor.__new__   s*   ø€ ØŒ=Ð Ý!™GœGŸOšO¨CÑ0Ô0ˆCŒMØŒ}Ðó    c                 óÒ  •— | j         rd S t          ¦   «                              ¦   «          t          j        ¦   «         | _        t          ¦   «         | _        t          ¦   «         | _	        d| _
        d| _        d| _        d| _        d| _        d | _        d| _        d| _        d| _        t'          j        ¦   «         | _        d| _         t-          j        dt,          j        ¬¦  «         d S )NFr   Tz][plugin.video.wcs] AutoplayPlayerMonitor: Initialized (singleton) - ready to monitor playback©Úlevel)Ú_initializedr
   Ú__init__Ú	xbmcaddonÚAddonÚaddonr   Úautoplay_managerr   Úepisode_info_managerÚis_playing_episodeÚautoplay_activeÚ
total_timeÚcountdown_shownÚ
info_shownÚmonitor_threadÚis_monitoringÚ_manual_activationÚ_handling_nextÚ	threadingÚLockÚ_next_episode_lockÚxbmcÚlogÚLOGINFO)Úselfr   s    €r   r   zAutoplayPlayerMonitor.__init__   sð   ø€ ØÔð 	ØˆFå‰Œ×ÒÑÔÐÝ”_Ñ&Ô&ˆŒ
Ý 4Ñ 6Ô 6ˆÔÝ$<Ñ$>Ô$>ˆÔ!ð #(ˆÔØ$ˆÔØˆŒØ$ˆÔØˆŒð #ˆÔØ"ˆÔð #(ˆÔð $ˆÔÝ"+¤.Ñ"2Ô"2ˆÔà ˆÔÝŒÐpÕx|ô  yEð  	Fñ  	Fô  	Fð  	Fð  	Fð  	Fr   c                 óš  — t          j        dt           j        ¬¦  «         t          | d¦  «        r0| j        r)t          j        dt           j        ¬¦  «         d| _        dS 	 | j                             d¦  «        }t          j        d|› d	�t           j        ¬¦  «         |d
k    rÆt          j        dt           j        ¬¦  «         t          j        | j	        d¬¦  «         
                    ¦   «          	 | j                             dd¦  «         t          j        dt           j        ¬¦  «         dS # t          $ r.}t          j        d|› �t           j        ¬¦  «         Y d}~dS d}~ww xY wt          j        d|› d�t           j        ¬¦  «         dS # t          $ r.}t          j        d|› �t           j        ¬¦  «         Y d}~dS d}~ww xY w)u$   VolÃ¡no kdyÅ¾ zaÄ�ne pÅ™ehrÃ¡vÃ¡nÃ­.z:[plugin.video.wcs] AutoplayPlayerMonitor: Playback startedr   r!   ze[plugin.video.wcs] AutoplayPlayerMonitor: Manual activation in progress, skipping callback activationFNÚtemp_autoplay_activezB[plugin.video.wcs] AutoplayPlayerMonitor: temp_autoplay_active = 'ú'Útruez@[plugin.video.wcs] AutoplayPlayerMonitor: Test playback detectedT©ÚtargetÚdaemonÚfalsezF[plugin.video.wcs] AutoplayPlayerMonitor: Cleared temp_autoplay_activezO[plugin.video.wcs] AutoplayPlayerMonitor: Error clearing temp_autoplay_active: z\[plugin.video.wcs] AutoplayPlayerMonitor: Regular playback, ignoring (temp_autoplay_active='z')zO[plugin.video.wcs] AutoplayPlayerMonitor: Error checking temp_autoplay_active: )r&   r'   r(   Úhasattrr!   r   Ú
getSettingr#   ÚThreadÚ_handle_test_playback_startÚstartÚ
setSettingÚ	ExceptionÚ
LOGWARNINGÚLOGDEBUGÚLOGERROR)r)   r+   Úes      r   ÚonPlayBackStartedz'AutoplayPlayerMonitor.onPlayBackStarted:   s�  € åŒÐMÕUYÔUaÐbÑbÔbÐbõ �4Ð-Ñ.Ô.ð 	°4Ô3Jð 	ÝŒHÐ|õ  EIô  EQð  Rñ  Rô  Rð  RØ&+ˆDÔ#ØˆFð	AØ#'¤:×#8Ò#8Ð9OÑ#PÔ#PÐ ÝŒHÐqÐZnÐqÐqÐqÕy}ô  zFð  Gñ  Gô  Gð  Gà# vÒ-Ð-å”Ð[ÕcgÔcoÐpÑpÔpÐpõ Ô ¨Ô(HÐQUÐVÑVÔV×\Ò\Ñ^Ô^Ð^ðKØ”J×)Ò)Ð*@À'ÑJÔJÐJÝ”HÐeÕmqÔmyÐzÑzÔzÐzÐzÐzøÝ ð Kð Kð KÝ”HÐrÐopÐrÐrÕz~ô  {Jð  Kñ  Kô  Kð  Kð  Kð  Kð  Kð  Kð  Kð  KøøøøðKøøøõ ”ð  Qð  yMð  Qð  Qð  Qõ  Y]ô  Yfð  gñ  gô  gð  gð  gð  gøÝð 	Að 	Að 	AÝŒHÐjÐghÐjÐjÕrvÔrð  Añ  Aô  Að  Að  Að  Að  Að  Að  Að  Aøøøøð	Aøøøs=   Á"BF Ã4;D1 Ä1
E)Ä;#E$ÅF Å$E)Å)'F Æ
G
Æ#GÇG
c                 óT  — t          j        d¦  «         |                      ¦   «         rÿ	 |                      ¦   «         | _        t          j        d| j        › �t
          j        ¬¦  «         d| _        d| _	        |  
                    ¦   «          | j        j        r$d| _        d| _        |                      ¦   «          dS t          j        dt
          j        ¬¦  «         d| _        d| _        dS # t           $ r.}t          j        d|› �t
          j        ¬¦  «         Y d}~dS d}~ww xY wdS )	uF   Zpracuje zaÄ�Ã¡tek testovacÃ­ho pÅ™ehrÃ¡vÃ¡nÃ­ v separÃ¡tnÃ­m threadu.é   z6[plugin.video.wcs] AutoplayPlayerMonitor: Total time: r   FTzV[plugin.video.wcs] AutoplayPlayerMonitor: Autoplay disabled, showing episode info onlyzP[plugin.video.wcs] AutoplayPlayerMonitor: Error in _handle_test_playback_start: N)ÚtimeÚsleepÚ	isPlayingÚgetTotalTimer   r&   r'   r(   r   r   Ú_show_episode_infor   Úautoplay_enabledr   r   Ú_start_monitoringr8   r;   )r)   r<   s     r   r5   z1AutoplayPlayerMonitor._handle_test_playback_start[   sŒ  € õ 	Œ
�1‰Œˆà�>Š>ÑÔð 	FðFØ"&×"3Ò"3Ñ"5Ô"5�”Ý”ÐcÐRVÔRaÐcÐcÕkoÔkwÐxÑxÔxÐxð #(�”Ø',�Ô$ð ×'Ò'Ñ)Ô)Ð)ð Ô(Ô9ð 
4Ø+/�DÔ(Ø.2�DÔ+ð ×*Ò*Ñ,Ô,Ð,Ð,Ð,å”HÐuõ  ~Bô  ~Jð  Kñ  Kô  Kð  Kà+0�DÔ(Ø.3�DÔ+Ð+Ð+øåð Fð Fð FÝ”ÐoÐlmÐoÐoÕw{ô  xEð  Fñ  Fô  Fð  Fð  Fð  Fð  Fð  Fð  Fð  FøøøøðFøøøð3	Fð 	Fs   ªBC- Â=.C- Ã-
D%Ã7#D Ä D%c                 ón   — t          j        dt           j        ¬¦  «         |                      ¦   «          dS )u&   VolÃ¡no kdyÅ¾ skonÄ�Ã­ pÅ™ehrÃ¡vÃ¡nÃ­.z:[plugin.video.wcs] AutoplayPlayerMonitor: Playback stoppedr   N©r&   r'   r(   Ú_stop_monitoring©r)   s    r   ÚonPlayBackStoppedz'AutoplayPlayerMonitor.onPlayBackStopped|   s4   € åŒÐMÕUYÔUaÐbÑbÔbÐbØ×ÒÑÔÐÐÐr   c                 ón   — t          j        dt           j        ¬¦  «         |                      ¦   «          dS )u6   VolÃ¡no kdyÅ¾ skonÄ�Ã­ pÅ™ehrÃ¡vÃ¡nÃ­ (konec souboru).z8[plugin.video.wcs] AutoplayPlayerMonitor: Playback endedr   NrH   rJ   s    r   ÚonPlayBackEndedz%AutoplayPlayerMonitor.onPlayBackEnded�   s4   € åŒÐKÕSWÔS_Ð`Ñ`Ô`Ð`Ø×ÒÑÔÐÐÐr   c                 ó$  — | j         �r|                      ¦   «         ró	 |                      ¦   «         }| j        |z
  }| j        j        }t          j        d|› d|› �t          j        ¬¦  «         ||k    r[| j	        sVt          j        d|d›d�t          j
        ¬¦  «         t          j        | j        d¬¦  «                             ¦   «          d
S d
S d
S # t          $ r.}t          j        d	|› �t          j        ¬¦  «         Y d
}~d
S d
}~ww xY wd
S d
S )u   VolÃ¡no pÅ™i pÅ™etoÄ�enÃ­.z:[plugin.video.wcs] AutoplayPlayerMonitor: Seek - current: z, remaining: r   zT[plugin.video.wcs] AutoplayPlayerMonitor: User seeked to countdown zone (remaining: ú.1fús)Tr.   zC[plugin.video.wcs] AutoplayPlayerMonitor: Error in onPlayBackSeek: N)r   rB   ÚgetTimer   r   Úcountdown_secondsr&   r'   r:   r   r(   r#   r4   Ú_show_countdown_dialogr6   r8   r;   )r)   r@   Ú
seekOffsetÚcurrent_timeÚremaining_timerR   r<   s          r   ÚonPlayBackSeekz$AutoplayPlayerMonitor.onPlayBackSeek†   s®  € àÔñ 	y D§N¢NÑ$4Ô$4ð 	yðyØ#Ÿ|š|™~œ~�Ø!%¤°<Ñ!?�ð %)Ô$9Ô$KÐ!å”ð  BÐVbð  Bð  BÐqð  Bð  Bõ  JNô  JWð  Xñ  Xô  Xð  Xð "Ð%6Ò6Ð6¸tÔ?SÐ6Ý”Hð  Kð  uCð  Kð  Kð  Kð  Kõ  SWô  S_ð  `ñ  `ô  `ð  `åÔ$¨DÔ,GÐPTÐUÑUÔU×[Ò[Ñ]Ô]Ð]Ð]Ð]ð 7Ð6Ð6Ð6øõ
 ð yð yð yÝ”ÐbÐ_`ÐbÐbÕjnÔjwÐxÑxÔxÐxÐxÐxÐxÐxÐxÐxøøøøðyøøøð!	yð 	yð 	yð 	ys   žB/C Ã
DÃ#DÄDc                 ó®   — | j         sMd| _         t          j        | j        ¬¦  «        | _        d| j        _        | j                             ¦   «          dS dS )u   SpustÃ­ monitoring thread.T)r/   N)r    r#   r4   Ú_monitor_workerr   r0   r6   rJ   s    r   rF   z'AutoplayPlayerMonitor._start_monitoring›   s^   € àÔ!ð 	(Ø!%ˆDÔÝ"+Ô"2¸$Ô:NÐ"OÑ"OÔ"OˆDÔØ)-ˆDÔÔ&ØÔ×%Ò%Ñ'Ô'Ð'Ð'Ð'ð		(ð 	(r   c                 ó0   — d| _         d| _        d| _        dS )u   ZastavÃ­ monitoring.FN)r    r   r   rJ   s    r   rI   z&AutoplayPlayerMonitor._stop_monitoring£   s    € à"ˆÔØ$ˆÔØ"'ˆÔÐÐr   c                 ó¦  — | j         j        }| j         j        }t          j        d|› d|› d�t          j        ¬¦  «         | j        �rU	 |                      ¦   «         s"t          j        dt          j        ¬¦  «         �n| j         j        s!t          j        dt          j        ¬¦  «         nñ|  	                    ¦   «         }| j
        |z
  }t          j        d|d›d	| j
        d›d
|d›d|› d�	t          j        ¬¦  «         ||k    rA| j        s:t          j        d|d›d�t          j        ¬¦  «         |                      ¦   «          nWt          j        d¦  «         n:# t           $ r-}t          j        d|› �t          j        ¬¦  «         Y d}~nd}~ww xY w| j        �°U|                      ¦   «          t          j        dt          j        ¬¦  «         dS )u2   Worker thread pro monitoring Ä�asu pÅ™ehrÃ¡vÃ¡nÃ­.zQ[plugin.video.wcs] AutoplayPlayerMonitor: Starting monitoring (show countdown at zs before end, trigger at rP   r   zK[plugin.video.wcs] AutoplayPlayerMonitor: Player stopped, ending monitoringzN[plugin.video.wcs] AutoplayPlayerMonitor: Autoplay disabled, ending monitoringz*[plugin.video.wcs] AutoplayPlayerMonitor: rO   zs/zs (remaining: zs, countdown at: zO[plugin.video.wcs] AutoplayPlayerMonitor: Showing countdown dialog (remaining: é   zC[plugin.video.wcs] AutoplayPlayerMonitor: Error in monitor worker: Nz>[plugin.video.wcs] AutoplayPlayerMonitor: Monitor worker ended)r   rR   Útrigger_secondsr&   r'   r(   r    rB   rE   rQ   r   r:   r   rS   r@   rA   r8   r;   rI   )r)   rR   r]   rU   rV   r<   s         r   rY   z%AutoplayPlayerMonitor._monitor_worker©   s®  € ð !Ô1ÔCÐØÔ/Ô?ˆåŒð  eÐevð  eð  eð  Rað  eð  eð  eõ  mqô  myð  	zñ  	zô  	zð  	zàÔ ñ 	ðà—~’~Ñ'Ô'ð Ý”HÐjÕrvÔr~ÐÑÔÐÙð Ô,Ô=ð Ý”HÐmÕuyô  vBð  Cñ  Cô  Cð  CØà#Ÿ|š|™~œ~�Ø!%¤°<Ñ!?�å”ð  xÀlð  xð  xð  xÐZ^ÔZið  xð  xð  xð  ~Lð  xð  xð  xð  ctð  xð  xð  xõ  @Dô  @Mð  Nñ  Nô  Nð  Nð "Ð%6Ò6Ð6¸tÔ?SÐ6Ý”Hð  FÐo}ð  Fð  Fð  Fð  Fõ  NRô  NZð  [ñ  [ô  [ð  [Ø×/Ò/Ñ1Ô1Ð1Øõ ”
˜1‘”��øåð ð ð Ý”ÐbÐ_`ÐbÐbÕjnÔjwÐxÑxÔxÐxØ����øøøøðøøøð5 Ô ñ 	ð> 	×ÒÑÔÐÝŒÐQÕY]ÔYeÐfÑfÔfÐfÐfÐfs+   Á	4E Á?,E Â,BE ÅE Å
FÅ%#FÆFc                 óF  — | j         �sd| _         	 t          j        ¦   «         }|                     d¦  «        s"t	          j        dt          j        ¬¦  «         dS n:# t          $ r-}t	          j        d|› �t          j        ¬¦  «         Y d}~nd}~ww xY wt	          j        dt          j	        ¬¦  «         	 dd	l
m} | j        j        }| j        j        }|r}|r{dd
lm}  ||d         |d         |d         ¦  «        }|r|                     |¦  «        }nR |d|d         |d         d|d         d›d|d         d›�|d         |d         ¬¦  «        }n |ddddddddd¬¦	  «	        }| j                             |j        |j        |j        |j        |j        |j        |j        |j        ¦  «         t	          j        dt          j	        ¬¦  «         dS # t          $ rA}t	          j        d|› �t          j        ¬¦  «         ddl}	 |	j        ¦   «          Y d}~dS d}~ww xY wdS )uN   ZobrazÃ­ episode info dialog s reÃ¡lnÃ½mi daty nebo mock daty pro testovÃ¡nÃ­.TÚshow_episode_infozK[plugin.video.wcs] AutoplayPlayerMonitor: Episode info disabled in settingsr   NzO[plugin.video.wcs] AutoplayPlayerMonitor: Error checking episode info setting: zP[plugin.video.wcs] AutoplayPlayerMonitor: Attempting to show episode info dialogr   )ÚMediaMetadata)Ú!get_episode_metadata_from_libraryÚnameÚseasonÚepisodeÚseriesÚSÚ02dÚE)Ú
media_typeÚtitleÚseries_nameÚepisode_titleÚseason_numberÚepisode_numberu   Test SeriÃ¡lzTest Epizodar\   z8.5Ú2024u1   TestovacÃ­ popis epizody pro ukÃ¡zku funkÄ�nosti.)	ri   rj   rk   rl   rm   rn   ÚratingÚyearÚplotzP[plugin.video.wcs] AutoplayPlayerMonitor: Episode info dialog shown successfullyzF[plugin.video.wcs] AutoplayPlayerMonitor: Error showing episode info: )r   r   r   ÚgetSettingBoolr&   r'   r:   r8   r9   r(   Úwcs.playback.metadatar`   r   Úcurrent_series_infoÚcurrent_episode_infoÚwcs.library.LibraryManagerra   Úfrom_kodi_library_episoder   r_   rk   rl   rm   rn   Úthumbrp   rq   rr   r;   Ú	tracebackÚ	print_exc)
r)   r   r<   r`   Úcurrent_seriesÚcurrent_episodera   Úraw_dataÚmetadatarz   s
             r   rD   z(AutoplayPlayerMonitor._show_episode_infoÓ   s$  € àŒñ E	&Ø"ˆDŒOðGÝ!œÑ)Ô)�Ø×+Ò+Ð,?Ñ@Ô@ð Ý”HÐjÕrvÔrð  Añ  Aô  Að  AØ�Fðøõ ð Gð Gð GÝ”ÐnÐklÐnÐnÕvzô  wFð  Gñ  Gô  Gð  Gð  Gð  Gð  Gð  Gð  GøøøøðGøøøõ ŒHÐgÕosÔo{Ð|Ñ|Ô|Ð|ð7&Ø?Ð?Ð?Ð?Ð?Ð?à!%Ô!6Ô!J�Ø"&Ô"7Ô"L�à!ð   oð  à\Ð\Ð\Ð\Ð\Ð\Ø@Ð@Ø& vÔ.Ø'¨Ô1Ø'¨	Ô2ñ ô  �Hð  ð 
Ø#0×#JÒ#JÈ8Ñ#TÔ#T˜˜à#0 =Ø'/Ø"0°Ô"8Ø(6°vÔ(>Ø*n¨o¸hÔ.GÐ*nÐ*nÐ*nÈoÐ^gÔNhÐ*nÐ*nÐ*nØ*9¸(Ô*CØ+:¸9Ô+Eð$ñ $ô $˜˜ð  -˜}Ø#+Ø,Ø$2Ø&4Ø&'Ø'(Ø$Ø#ØPð
 ñ 
 ô 
 �Hð Ô)×;Ò;ØÔ(ØÔ*ØÔ*ØÔ+Ø”NØ”OØ”MØ”Mñ	ô 	ð 	õ ”ÐkÕswÔsð  Añ  Aô  Að  Að  Að  AøÝð &ð &ð &Ý”ÐeÐbcÐeÐeÕmqÔmzÐ{Ñ{Ô{Ð{Ø Ð Ð Ð Ø#�	Ô#Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%øøøøð&øøøðEE	&ð E	&s1   ‘AA Á
BÁ&#BÂBÂ7DG Ç
HÇ6HÈHc                 ó<  — | j         �sd| _         	 d}|                      ¦   «         r‹	 |                      ¦   «         }| j        |z
  }t	          j        d|d›d�t          j        ¬¦  «         nF# t          $ r9}t	          j        d|› �t          j        ¬¦  «         | j	        j
        }Y d}~nd}~ww xY w| j	                             |¦  «        }|| j	        j        k    r8t	          j        d	t          j        ¬¦  «         |                      d¬
¦  «         dS || j	        j        k    rPt	          j        dt          j        ¬¦  «         | j	                             d¦  «         |                      ¦   «          dS || j	        j        k    r8t	          j        dt          j        ¬¦  «         |                      d¬
¦  «         dS t	          j        d|› �t          j        ¬¦  «         dS # t          $ r.}t	          j        d|› �t          j        ¬¦  «         Y d}~dS d}~ww xY wdS )u   ZobrazÃ­ countdown dialog.Tr   zV[plugin.video.wcs] AutoplayPlayerMonitor: Current remaining time when showing dialog: rO   Úsr   zF[plugin.video.wcs] AutoplayPlayerMonitor: Error getting current time: Nz=[plugin.video.wcs] AutoplayPlayerMonitor: User chose play now)Ú	is_manualzA[plugin.video.wcs] AutoplayPlayerMonitor: User cancelled autoplayFzG[plugin.video.wcs] AutoplayPlayerMonitor: Countdown timeout - auto playzP[plugin.video.wcs] AutoplayPlayerMonitor: Unknown action from countdown dialog: zJ[plugin.video.wcs] AutoplayPlayerMonitor: Error showing countdown dialog: )r   rB   rQ   r   r&   r'   r(   r8   r9   r   rR   Úshow_countdown_dialogÚACTION_PLAY_NOWÚ_handle_next_episodeÚACTION_CANCEL_AUTOPLAYÚset_autoplay_enabledrI   ÚACTION_TIMEOUTr;   )r)   Úcurrent_remaining_timerU   r<   Úactions        r   rS   z,AutoplayPlayerMonitor._show_countdown_dialog  sÉ  € àÔ#ñ "	@Ø#'ˆDÔ ð@à)*Ð&Ø—>’>Ñ#Ô#ð YðYØ'+§|¢|¡~¤~˜Ø15´À<Ñ1OÐ.Ýœð  "Xð  {Qð  "Xð  "Xð  "Xð  "Xõ  `dô  `lð  mñ  mô  mð  mð  møÝ$ð Yð Yð YÝœÐ!mÐjkÐ!mÐ!mÕuyô  vEð  Fñ  Fô  Fð  FØ15Ô1FÔ1XÐ.Ð.Ð.Ð.Ð.Ð.øøøøðYøøøð Ô.×DÒDÐE[Ñ\Ô\�ð ˜TÔ2ÔBÒBÐBÝ”HÐ\ÕdhÔdpÐqÑqÔqÐqà×-Ò-¸Ð-Ñ=Ô=Ð=Ð=Ð=Ø˜tÔ4ÔKÒKÐKÝ”HÐ`ÕhlÔhtÐuÑuÔuÐuØÔ)×>Ò>¸uÑEÔEÐEØ×)Ò)Ñ+Ô+Ð+Ð+Ð+Ø˜tÔ4ÔCÒCÐCÝ”HÐfÕnrÔnzÐ{Ñ{Ô{Ð{à×-Ò-¸Ð-Ñ>Ô>Ð>Ð>Ð>å”HÐxÐpvÐxÐxõ  AEô  APð  Qñ  Qô  Qð  Qð  Qð  Qøåð @ð @ð @Ý”ÐiÐfgÐiÐiÕquÔq~ÐÑÔÐÐÐÐÐÐÐøøøøð@øøøðC"	@ð "	@sV   ‘G! ¨AA, Á+G! Á,
B/Á6/B*Â%G! Â*B/Â/A#G! ÄAG! Å4AG! Æ<#G! Ç!
HÇ+#HÈHc           	      ó  — | j         5  | j        r.t          j        dt          j        ¬¦  «         	 ddd¦  «         dS d| _        ddd¦  «         n# 1 swxY w Y   	 | j                             ¦   «         }|st          j        dt          j        ¬¦  «         |s3t          j        ¦   «          	                    ddt          j
        d¦  «         	 | j         5  d	| _        ddd¦  «         dS # 1 swxY w Y   dS | j        j        }|sJt          j        d
t          j        ¬¦  «         	 | j         5  d	| _        ddd¦  «         dS # 1 swxY w Y   dS |d         }|d         }|d         }|                     dd¦  «        }t          j        ¦   «         }d|                     d¦  «        › dt#          |¦  «        › d|› d|› d�	}	|r|	d|› �z  }	t          j        d|› d|d›d|d›�t          j        ¬¦  «         | j                             ||||¦  «         |                      ¦   «          t)          d¦  «        D ],}
|                      ¦   «         s nt-          j        d¦  «         Œ-t          j        d|	› d�¦  «         t          j        dt          j        ¬¦  «         n‚# t2          $ ru}t          j        d |› �t          j        ¬¦  «         t7          j        ¦   «          |s3t          j        ¦   «          	                    d!d"t          j        d¦  «         Y d}~nd}~ww xY w| j         5  d	| _        ddd¦  «         n# 1 swxY w Y   n+# | j         5  d	| _        ddd¦  «         w # 1 swxY w Y   w xY w|                      ¦   «          dS )#u  Zpracuje pÅ™ehrÃ¡nÃ­ dalÅ¡Ã­ epizody z Kodi knihovny.

        SpustitelnÃ© pouze jednou souÄ�asnÄ› - duplicitnÃ­ volÃ¡nÃ­ (napÅ™. z vÃ­ce
        vlÃ¡ken pÅ™i timeoutu countdownu) se ignorujÃ­. SoubÄ›h dvou stop() /
        PlayMedia() by shodil celÃ© Kodi.
        zc[plugin.video.wcs] AutoplayPlayerMonitor: Next episode already in progress, ignoring duplicate callr   NTz?[plugin.video.wcs] AutoplayPlayerMonitor: No next episode foundÚAutoplayu(   Å½Ã¡dnÃ¡ dalÅ¡Ã­ epizoda nebyla nalezenai¸  Fz@[plugin.video.wcs] AutoplayPlayerMonitor: No current series inforb   rc   rd   Útmdb_idÚ z	plugin://Úidz.?action=play_episode_from_library&series_name=z&season=z	&episode=z&autoplay_request=truez	&tmdb_id=zA[plugin.video.wcs] AutoplayPlayerMonitor: Playing next episode - z Srg   rh   é   gš™™™™™¹?z
PlayMedia(ú)zI[plugin.video.wcs] AutoplayPlayerMonitor: Next episode playback initiatedzG[plugin.video.wcs] AutoplayPlayerMonitor: Error handling next episode: zAutoplay - Chybau&   NepodaÅ™ilo se spustit dalÅ¡Ã­ epizodu)r%   r"   r&   r'   r(   r   Úget_next_episode_infoÚxbmcguiÚDialogÚnotificationÚNOTIFICATION_WARNINGru   r9   Úgetr   r   ÚgetAddonInfor   Úset_current_episodeÚstopÚrangerB   r@   rA   Úexecutebuiltinr8   r;   rz   r{   ÚNOTIFICATION_ERRORrI   )r)   r‚   Únext_episoder|   rk   Únext_seasonÚnext_episode_numr�   r   Úplay_urlÚ_r<   s               r   r…   z*AutoplayPlayerMonitor._handle_next_episodeB  sÁ  € ð Ô$ð 	'ð 	'ØÔ"ð Ý”Ð~õ  GKô  GSð  Tñ  Tô  Tð  TØð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð #'ˆDÔð		'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ðL	,àÔ0×FÒFÑHÔHˆLØð 	Ý”ÐZÕbfÔbnÐoÑoÔoÐoØ ð Ý”NÑ$Ô$×1Ò1Ø"ØBÝÔ4Øñ	ô ð ð ð~ Ô(ð ,ð ,Ø&+�Ô#ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,ðy "Ô2ÔFˆNØ!ð Ý”Ð[ÕcgÔcrÐsÑsÔsÐsØðr Ô(ð ,ð ,Ø&+�Ô#ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,ðo )¨Ô0ˆKØ& xÔ0ˆKØ+¨IÔ6ÐØ$×(Ò(¨°BÑ7Ô7ˆGõ ”OÑ%Ô%ˆEð)˜E×.Ò.¨tÑ4Ô4ð )ð )å)¨+Ñ6Ô6ð)ð )ð &ð)ð )ð ,ð	)ð )ð )ð ð ð 2ØÐ1¨Ð1Ð1Ñ1�åŒHð  QÐYdð  Qð  QÐhsð  Qð  Qð  Qð  {Kð  Qð  Qð  Qõ  Y]ô  Yeð  fñ  fô  fð  fð Ô!×5Ò5°kÀ;ÐP`ÐbiÑjÔjÐjð �IŠI‰KŒKˆKõ
 ˜2‘Y”Yð  ð  �Ø—~’~Ñ'Ô'ð Ø�EÝ”
˜3‘”��õ ÔÐ 8¨XÐ 8Ð 8Ð 8Ñ9Ô9Ð9åŒHÐ`ÕhlÔhtÐuÑuÔuÐuÐuøåð 	ð 	ð 	ÝŒHÐbÐ_`ÐbÐbÕjnÔjwÐxÑxÔxÐxÝÔÑ!Ô!Ð!ð ð Ý”Ñ Ô ×-Ò-Ø&Ø<ÝÔ.Øñ	ô ð øøøøøøøøøð	øøøð Ô(ð ,ð ,Ø&+�Ô#ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,øø�Ô(ð ,ð ,Ø&+�Ô#ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,øøøð 	×ÒÑÔÐÐÐs¯   ˆ)A¾AÁAÁAÁA0J ÃC*Ã*C.Ã1C.Ã7.J Ä-EÅEÅ	EÅE
J ÊM Ê
LÊ$A+LÌM ÌLÌM Ì#L7Ì7L;Ì>L;ÍM+ÍMÍM+ÍM#Í#M+Í&M#Í'M+)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r=   r5   rK   rM   rW   rF   rI   rY   rD   rS   r…   Ú__classcell__)r   s   @r   r   r      s5  ø€ € € € € ðð ð
 €IØ€Lðð ð ð ð ð
Fð Fð Fð Fð Fð<Að Að AðBFð Fð FðB ð  ð  ð
 ð  ð  ð
yð yð yð*(ð (ð (ð(ð (ð (ð(gð (gð (gðTG&ð G&ð G&ðR$@ð $@ð $@ðL\ ð \ ð \ ð \ ð \ ð \ ð \ ð \ r   r   c                  óz   — t           €.t          ¦   «         a t          j        dt          j        ¬¦  «         t           S )u,   VrÃ¡tÃ­ globÃ¡lnÃ­ instanci player monitoru.NzD[plugin.video.wcs] AutoplayPlayerMonitor: Created singleton instancer   )Ú_player_monitorr   r&   r'   r(   © r   r   Úget_player_monitorr«   £  s5   € õ ÐÝ/Ñ1Ô1ˆÝŒÐWÕ_cÔ_kÐlÑlÔlÐlÝÐr   c                  ó"   — t          ¦   «         } | S )u   SpustÃ­ autoplay monitoring.)r«   )Úmonitors    r   Ústart_autoplay_monitoringr®   «  s   € å Ñ"Ô"€GØ€Nr   c                  óJ   — t           rt                                ¦   «          dS dS )u   ZastavÃ­ autoplay monitoring.N)r©   rI   rª   r   r   Ústop_autoplay_monitoringr°   °  s.   € õ ð +Ý×(Ò(Ñ*Ô*Ð*Ð*Ð*ð+ð +r   )r&   r“   r   r#   r@   rz   Úurllib.parser   Ú$wcs.playback.DialogMediaInfoWithGamer   r   ÚPlayerr   r©   r«   r®   r°   rª   r   r   ú<module>r´      sï   ðð €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à EÐ EÐ EÐ EÐ EÐ EØ IÐ IÐ IÐ IÐ IÐ IðP ð P ð P ð P ð P ˜DœKñ P ô P ð P ðf €ðð ð ðð ð ð
+ð +ð +ð +ð +r   