§
   #ÔÂjøÑdrã                   óH   — d Z ddlZddlZddlZddlmZ  G d„ d¦  «        ZdS )uÝ   Mixin pro hernÃ­ panel sdÃ­lenÃ½ mezi info a countdown dialogy.

Parametrizuje property prefix -- kaÅ¾dÃ½ dialog definuje vlastnÃ­ prefix
pÅ™es metodu _game_prefix(). TÃ­m se eliminuje ~180 Å™Ã¡dkÅ¯ duplikovanÃ©ho kÃ³du.
é    N)ÚGameControllerc                   óV   — e Zd ZdZd„ Zd„ Zd„ Zdd„Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ ZdS )ÚGameDialogMixinut  SdÃ­lenÃ© metody pro hernÃ­ panel v info i countdown dialozÃ­ch.

    PodtÅ™Ã­da MUSÃ� definovat:
      - _game_prefix() -> str: prefix pro window properties (napÅ™. 'WCS.Game' nebo 'WCS.Autoplay.Game')
      - _game_title_for_controller() -> str: titulek pro GameController
      - _game_plot_for_controller() -> str: plot pro GameController
      - _game_genre_for_controller() -> str: genre pro GameController
      - _game_media_type_for_controller() -> str: 'movie' nebo 'series'

    VolitelnÄ›:
      - _game_episode_title() -> str
      - _game_season_number() -> int|None
      - _game_episode_number() -> int|None
    c                 ó"   — d| _         d| _        dS )u6   Inicializuje hernÃ­ stav. Volat v __init__ podtÅ™Ã­dy.FN)Úgame_visibleÚgame_controller©Úselfs    ús/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/playback/dialogs/base_game_dialog.pyÚinit_game_statezGameDialogMixin.init_game_state    s   € à!ˆÔØ#ˆÔÐÐó    c                 ó€  — |                       ¦   «         }	 |                      ¦   «         }|                      ¦   «         |                      ¦   «         |                      ¦   «         |dœ}|dk    rE|                      ¦   «         |d<   |                      ¦   «         |d<   |                      ¦   «         |d<   t          di |¤Ž| _	        |dk    r#|  
                    |› d�d|d	         › �¦  «         n|  
                    |› d�|d	         ¦  «         | j	                             | j        | j        | j        | j        | j        | j        ¦  «         | j	                             ¦   «          dS # t&          $ rP}t)          j        d
| j        j        › d|› �t(          j        ¬¦  «         |                      d¦  «         Y d}~dS d}~ww xY w)u(   SpustÃ­ hernÃ­ panel s GameControllerem.)ÚtitleÚplotÚgenreÚ
media_typeÚseriesÚepisode_titleÚseason_numberÚepisode_numberÚmoviez.Titlezpro r   z[plugin.video.wcs] z: Error starting game: ©Úlevelu   Chyba pÅ™i spuÅ¡tÄ›nÃ­ hry.N© )Ú_game_prefixÚ_game_media_type_for_controllerÚ_game_title_for_controllerÚ_game_plot_for_controllerÚ_game_genre_for_controllerÚ_game_episode_titleÚ_game_season_numberÚ_game_episode_numberr   r   ÚsetPropertyÚset_ui_callbacksÚupdate_game_displayÚupdate_game_buttonsÚupdate_game_sidebarÚshow_game_errorÚset_game_focusÚstart_countdownÚstart_game_selectionÚ	ExceptionÚxbmcÚlogÚ	__class__Ú__name__ÚLOGERROR)r
   Úprefixr   ÚkwargsÚes        r   Ú
start_gamezGameDialogMixin.start_game%   s  € à×"Ò"Ñ$Ô$ˆð 	@Ø×=Ò=Ñ?Ô?ˆJà×8Ò8Ñ:Ô:Ø×6Ò6Ñ8Ô8Ø×8Ò8Ñ:Ô:Ø(ð	ð ˆFð ˜XÒ%Ð%Ø*.×*BÒ*BÑ*DÔ*D��Ñ'Ø*.×*BÒ*BÑ*DÔ*D��Ñ'Ø+/×+DÒ+DÑ+FÔ+F�Ð'Ñ(å#1Ð#;Ð#;°FÐ#;Ð#;ˆDÔ ð ˜WÒ$Ð$Ø× Ò  FÐ!2Ð!2Ð!2Ð4L¸6À'¼?Ð4LÐ4LÑMÔMÐMÐMà× Ò  FÐ!2Ð!2Ð!2°F¸7´OÑDÔDÐDàÔ ×1Ò1ØÔ(ØÔ(ØÔ(ØÔ$ØÔ#ØÔ$ñô ð ð Ô ×5Ò5Ñ7Ô7Ð7Ð7Ð7øÝð 	@ð 	@ð 	@ÝŒHÐ^¨4¬>Ô+BÐ^Ð^Ð[\Ð^Ð^ÕfjÔfsÐtÑtÔtÐtØ× Ò Ð!>Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?øøøøð	@øøøs   –EE# Å#
F=Å-AF8Æ8F=c                 óØ   — |                       ¦   «         }	 |                      |› d�|¦  «         dS # t          $ r.}t          j        d|› �t          j        ¬¦  «         Y d}~dS d}~ww xY w)u   Aktualizuje hernÃ­ text.ú.Textz0[plugin.video.wcs] Error updating game display: r   N©r   r#   r,   r-   r.   r1   )r
   Útextr2   r4   s       r   r%   z#GameDialogMixin.update_game_displayJ   s•   € à×"Ò"Ñ$Ô$ˆð	bØ×Ò Ð-Ð-Ð-¨tÑ4Ô4Ð4Ð4Ð4øÝð 	bð 	bð 	bÝŒHÐKÈÐKÐKÕSWÔS`ÐaÑaÔaÐaÐaÐaÐaÐaÐaÐaøøøøð	bøøøs   –1 ±
A)»#A$Á$A)Ú c                 ón  — |                       ¦   «         }	 |                      |› d�|¦  «         |                      |› d�|¦  «         |                      |› d�|¦  «         |                      |› d�|¦  «         dS # t          $ r.}t          j        d|› �t          j        ¬¦  «         Y d}~dS d}~ww xY w)u&   Aktualizuje texty hernÃ­ch tlaÄ�Ã­tek.ú.Button1ú.Button2ú.Button3ú.Button4z0[plugin.video.wcs] Error updating game buttons: r   Nr8   )r
   Útext1Útext2Útext3Útext4r2   r4   s          r   r&   z#GameDialogMixin.update_game_buttonsR   sò   € à×"Ò"Ñ$Ô$ˆð	bØ×Ò Ð0Ð0Ð0°%Ñ8Ô8Ð8Ø×Ò Ð0Ð0Ð0°%Ñ8Ô8Ð8Ø×Ò Ð0Ð0Ð0°%Ñ8Ô8Ð8Ø×Ò Ð0Ð0Ð0°%Ñ8Ô8Ð8Ð8Ð8øÝð 	bð 	bð 	bÝŒHÐKÈÐKÐKÕSWÔS`ÐaÑaÔaÐaÐaÐaÐaÐaÐaÐaøøøøð	bøøøs   –A$A< Á<
B4Â#B/Â/B4c                 ó   — dS )u/   Sidebar stub -- dialogy sidebar nepouÅ¾Ã­vajÃ­.Nr   r	   s    r   r'   z#GameDialogMixin.update_game_sidebar]   s   € àˆr   c                 ó¦  — |                       ¦   «         }	 |                      |› d�d|› �¦  «         |                      |› d�d¦  «         |                      |› d�d¦  «         |                      |› d�d¦  «         |                      |› d�d¦  «         dS # t          $ r.}t          j        d	|› �t          j        ¬
¦  «         Y d}~dS d}~ww xY w)u+   ZobrazÃ­ chybovou zprÃ¡vu v hernÃ­m panelu.r7   zChyba: r<   u   ZavÅ™Ã­tr=   r:   r>   r?   z-[plugin.video.wcs] Error showing game error: r   Nr8   )r
   Úmessager2   r4   s       r   r(   zGameDialogMixin.show_game_errora   s  € à×"Ò"Ñ$Ô$ˆð	_Ø×Ò Ð-Ð-Ð-Ð/B¸Ð/BÐ/BÑCÔCÐCØ×Ò Ð0Ð0Ð0°*Ñ=Ô=Ð=Ø×Ò Ð0Ð0Ð0°"Ñ5Ô5Ð5Ø×Ò Ð0Ð0Ð0°"Ñ5Ô5Ð5Ø×Ò Ð0Ð0Ð0°"Ñ5Ô5Ð5Ð5Ð5øÝð 	_ð 	_ð 	_ÝŒHÐHÀQÐHÐHÕPTÔP]Ð^Ñ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^Ð^øøøøð	_øøøs   –B B Â
CÂ"#CÃCc                 óÞ   — 	 d|z   }|                       |                      |¦  «        ¦  «         dS # t          $ r1}t          j        d|› d|› �t          j        ¬¦  «         Y d}~dS d}~ww xY w)u$   NastavÃ­ focus na hernÃ­ tlaÄ�Ã­tko.i-  z6[plugin.video.wcs] Error setting game focus to button z: r   N)ÚsetFocusÚ
getControlr,   r-   r.   r1   )r
   Úbutton_indexÚ
control_idr4   s       r   r)   zGameDialogMixin.set_game_focusm   s¤   € ð	Ø˜|Ñ+ˆJØ�MŠM˜$Ÿ/š/¨*Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6øÝð 	ð 	ð 	ÝŒHØ\ÈÐ\Ð\ÐYZÐ\Ð\Ý”mðñ ô ð ð ð ð ð ð ð øøøøð	øøøs   ‚-1 ±
A,»&A'Á'A,c                 ó¦   ‡ ‡‡‡— ‰                       ¦   «         Šˆˆˆˆ fd„}t          j        |¬¦  «        }d|_        |                     ¦   «          dS )u9   SpustÃ­ odpoÄ�et vyhodnocenÃ­ odpovÄ›di v hernÃ­m panelu.c                  óØ  •— 	 d} 	 ‰                      ‰› d�¦  «        } n# t          $ r Y nw xY wd| v r|                      d¦  «        d         }n| }t          ‰dd¦  «        D ]8}|d|› d�z   }‰                     ‰› d�|¦  «         t          j        d¦  «         Œ9 ‰¦   «          d S # t          $ r8}t          j        d	|› �t          j	        ¬
¦  «          ‰¦   «          Y d }~d S d }~ww xY w)Nr:   r7   u   VyhodnocenÃ­ odpovÄ›di...r   éÿÿÿÿu   VyhodnocenÃ­ za z
 sekund...é   z'[plugin.video.wcs] Error in countdown: r   )
ÚgetPropertyr,   ÚsplitÚranger#   ÚtimeÚsleepr-   r.   r1   )	Úoriginal_textÚ	base_textÚiÚcountdown_textr4   Úfinish_callbackr2   Úsecondsr
   s	        €€€€r   Úcountdown_workerz9GameDialogMixin.start_countdown.<locals>.countdown_worker|   sP  ø€ ð"Ø "�ðØ$(×$4Ò$4¸Ð5EÐ5EÐ5EÑ$FÔ$F�M�MøÝ ð ð ð Ø�Dðøøøð /°-Ð?Ð?Ø -× 3Ò 3Ð4OÑ PÔ PÐQRÔ S�I�Ià -�Iå˜w¨¨2Ñ.Ô.ð "ð "�AØ%.Ð1QÀAÐ1QÐ1QÐ1QÑ%Q�NØ×$Ò$¨Ð%5Ð%5Ð%5°~ÑFÔFÐFÝ”J˜q‘M”M�M�Mà�Ñ!Ô!Ð!Ð!Ð!øÝð "ð "ð "Ý”ÐFÀ1ÐFÐFÍdÌmÐ\Ñ\Ô\Ð\Ø�Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!øøøøð"øøøs3   ƒB' † žB' Ÿ
,©B' «,¬A9B' Â'
C)Â1-C$Ã$C))ÚtargetTN)r   Ú	threadingÚThreadÚdaemonÚstart)r
   rZ   rY   r[   Úcountdown_threadr2   s   ```  @r   r*   zGameDialogMixin.start_countdownx   sw   øøøø€ à×"Ò"Ñ$Ô$ˆð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"õ. %Ô+Ð3CÐDÑDÔDÐØ"&ÐÔØ×ÒÑ Ô Ð Ð Ð r   c                 ó   — dS )Nr:   r   r	   s    r   r    z#GameDialogMixin._game_episode_title›   s   € Øˆrr   c                 ó   — d S ©Nr   r	   s    r   r!   z#GameDialogMixin._game_season_numberž   ó   € Øˆtr   c                 ó   — d S rd   r   r	   s    r   r"   z$GameDialogMixin._game_episode_number¡   re   r   N)r:   )r0   Ú
__module__Ú__qualname__Ú__doc__r   r5   r%   r&   r'   r(   r)   r*   r    r!   r"   r   r   r   r   r      s×   € € € € € ðð ð$ð $ð $ð
#@ð #@ð #@ðJbð bð bð	bð 	bð 	bð 	bðð ð ð
_ð 
_ð 
_ð	ð 	ð 	ð!ð !ð !ðFð ð ðð ð ðð ð ð ð r   r   )ri   r-   r]   rS   Úwcs.games.GameManagerr   r   r   r   r   ú<module>rk      s}   ððð ð €€€Ø Ð Ð Ð Ø €€€à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðRð Rð Rð Rð Rñ Rô Rð Rð Rð Rr   