§
   ‘©a[ äDã                   ór   — d 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mZ ddl	m
Z
  G d„ de¦  «        Zd	d„ZdS )
u�   
DialogAIRecommendationHub.py

Fullscreen dialog s rozcestnÃ­kem AI doporuÄ�enÃ­.
NabÃ­zÃ­ karty rÅ¯znÃ½ch typÅ¯ doporuÄ�enÃ­ a textovÃ½ vstup.
é    N)ÚAIChatRecommendationDialogÚAIRecommendationPromptBuilder)Ú	user_datac                   ó6  ‡ — e Zd ZdZ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œdddddddœdddd d!d"dœd#d$d%d&d'ddœgZdd(d)d*d+d,d-d.œd
d/d0d1d2d,d3d.œd4d5d6d7d8d,d9d.œd:d;d<d=d>d?dd.œd@dAdBdCdDd?dd.œdEdFdGdHdId?dd.œdJdKd6dLdMdNd'd.œdOœZdPdQdRdSdTdUdVœZˆ fdW„ZdX„ ZdY„ Z	dZ„ Z
d[„ Zd\„ Zd~d]„Zd^„ Zd_„ Zd`„ Zda„ Zdb„ Zdc„ Zdd„ Zde„ Zˆ fdf„Zdg„ Zdh„ Zdi„ Zˆ fdj„Zˆ fdk„Zˆ fdl„Zddmdnœddodnœgd
dpdnœddqdnœgddrdnœddsdnœgdtdudnœddvdnœgdwœZdx„ Zˆ fdy„Zˆ fdz„Z d{„ Z!d|„ Z"d}„ Z#ˆ xZ$S )ÚAIRecommendationHubDialogu�   
    Fullscreen dialog s kartami moÅ¾nostÃ­ AI doporuÄ�enÃ­.
    Po vÃ½bÄ›ru karty nebo zadÃ¡nÃ­ textu spustÃ­ AI inference.
    Úmoviesõ   DoporuÄ� filmyzai_card_movies.pngu%   Nechej si doporuÄ�it zajÃ­mavÃ© filmyÚ	my_moviesÚmovie)ÚidÚlabelÚiconÚdescriptionÚcontext_typeÚ
media_typeÚseriesõ   DoporuÄ� seriÃ¡lyzai_card_series.pngu+   Nechej si doporuÄ�it seriÃ¡ly k sledovÃ¡nÃ­Ú	my_seriesÚmixõ   DoporuÄ� mixzai_card_mix.pngu*   SmÃ­Å¡enÃ¡ doporuÄ�enÃ­ filmÅ¯ i seriÃ¡lÅ¯Úmy_mixed_collectionÚactorsu   Podle hercÅ¯zai_card_actors.pngu&   DoporuÄ�enÃ­ podle oblÃ­benÃ½ch hercÅ¯Úfavorite_actorsÚ	directorsu   Podle reÅ¾isÃ©rÅ¯zai_card_directors.pngu+   DoporuÄ�enÃ­ podle oblÃ­benÃ½ch reÅ¾isÃ©rÅ¯Úfavorite_directorsÚcollectionsu   Podle sbÃ­rkyzai_card_collections.pngu'   DoporuÄ�enÃ­ filmovÃ½ch kolekcÃ­ a sÃ¡gÚmy_collectionsÚ
collectionÚhistoryzPodle historiezai_card_history.pngu*   DoporuÄ�enÃ­ podle historie pÅ™ehrÃ¡vÃ¡nÃ­Úrecently_playedu†   AI ti navrhne filmy na zÃ¡kladÄ› tvÃ½ch preferencÃ­ a aktuÃ¡lnÃ­ch trendÅ¯. MÅ¯Å¾eÅ¡ upÅ™esnit Å¾Ã¡nr, rok, zemi pÅ¯vodu nebo nÃ¡ladu.Úfilmz
MOJE FILMYu+   ZaÄ�ni sledovat a AI se nauÄ�Ã­ tvÅ¯j vkus!u
   ve sbÃ­rceÚtmdb_movies)ÚtitleÚai_infor   Úsection_titleÚ
empty_hintÚbadge_suffixÚdata_sourceu`   AI najde seriÃ¡ly odpovÃ­dajÃ­cÃ­ tvÃ©mu vkusu. Specifikuj Å¾Ã¡nr, dÃ©lku epizod nebo platformu.Úserialu   MOJE SERIÃ�LYu'   Sleduj seriÃ¡ly a AI poznÃ¡ tvÅ¯j vkus!Útmdb_seriesu   Mix filmÅ¯ a seriÃ¡lÅ¯uP   AI analyzuje filmy a seriÃ¡ly z tvÃ© sbÃ­rky a najde podobnÃ© tituly obou typÅ¯.Útitulu   Z TVÃ‰ SBÃ�RKYuF   PÅ™idej filmy a seriÃ¡ly do sbÃ­rky pro personalizovanÃ¡ doporuÄ�enÃ­.Úmixedu   Podle oblÃ­benÃ½ch hercÅ¯u†   AI dostane seznam tvÃ½ch oblÃ­benÃ½ch hercÅ¯ a jejich filmografii. Na zÃ¡kladÄ› toho najde filmy s podobnÃ½mi herci, Å¾Ã¡nry a stylem.Úherecu   TVOJI OBLÃ�BENÃ� HERCIu>   ZatÃ­m nemÃ¡Å¡ oblÃ­benÃ© herce. PÅ™idej je v Filmy â†’ Herci.Ú u   Podle oblÃ­benÃ½ch reÅ¾isÃ©rÅ¯uš   AI analyzuje styl tvÃ½ch oblÃ­benÃ½ch reÅ¾isÃ©rÅ¯ - jejich typickÃ© Å¾Ã¡nry, vizuÃ¡lnÃ­ styl a tematickÃ¡ zamÄ›Å™enÃ­. Najde filmy od podobnÃ½ch tvÅ¯rcÅ¯.Úreziseru   TVOJI OBLÃ�BENÃ� REÅ½ISÃ‰Å˜IuI   ZatÃ­m nemÃ¡Å¡ oblÃ­benÃ© reÅ¾isÃ©ry. PÅ™idej je v Filmy â†’ ReÅ¾isÃ©Å™i.u   FilmovÃ© kolekce a sÃ¡gyuw   AI navrhne filmovÃ© sÃ©rie a kolekce, kterÃ© by tÄ› mohly zajÃ­mat. NapÅ™. Marvel, DC, Nolanovy filmy, sÃ¡gy jako LOTR.Úkolekceu   TVÃ‰ SBÃ�RKYu$   PÅ™idej filmy z kolekcÃ­ do sbÃ­rky.u   Z historie pÅ™ehrÃ¡vÃ¡nÃ­u€   AI analyzuje tvÃ½ch poslednÃ­ch pÅ™ehranÃ½ch titulÅ¯ a najde podobnÃ© filmy/seriÃ¡ly na zÃ¡kladÄ› Å¾Ã¡nrÅ¯, hercÅ¯ a hodnocenÃ­.u   NAPOSLEDY PÅ˜EHRANÃ‰u'   ZatÃ­m nemÃ¡Å¡ historii pÅ™ehrÃ¡vÃ¡nÃ­.z
v historii)r   r   r   r   r   r   r   )r!   Úfilmyu   filmÅ¯)u   seriÃ¡lu   seriÃ¡lyu	   seriÃ¡lÅ¯)r+   Útitulyu   titulÅ¯)r-   Úherciu   hercÅ¯)u	   reÅ¾isÃ©ru   reÅ¾isÃ©Å™iu   reÅ¾isÃ©rÅ¯)r0   r0   u   kolekcÃ­)r!   r)   r+   r-   r/   r0   c                 ó¤   •— |                      dd ¦  «        | _         t          t          | ¦  «        j        ||g|¢R i |¤Ž d| _        d| _        d S )NÚauto_actionÚai_recommendT)ÚpopÚ_auto_actionÚsuperr   Ú__init__Ú_nav_section_idÚ_is_hub_mode)ÚselfÚxml_filenameÚ
addon_pathÚargsÚkwargsÚ	__class__s        €ún/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/ai/DialogAIRecommendationHub.pyr:   z"AIRecommendationHubDialog.__init__w   sa   ø€ à"ŸJšJ }°dÑ;Ô;ˆÔà7�Õ'¨Ñ.Ô.Ô7¸ÀjÐbÐSWÐbÐbÐbÐ[aÐbÐbÐbà-ˆÔØ ˆÔÐÐó    c                 ó  — |                       ¦   «          d| _        d| _        |                      dd¦  «         |                      dd¦  «         |                      dd¦  «         |                      d	d
¦  «         |                      ¦   «          |                      ¦   «          | j        r|                      ¦   «          dS | j	        r|  
                    d¬¦  «         dS |                      d¦  «         |                      dd¦  «         dS )zIPretizena inicializace - zobrazi karty moznosti nebo provede auto_action.r   TzWCS.AIChat.Titleu   AI DoporuÄ�enÃ­zWCS.AIChat.Statusu   Vyberte typ doporuÄ�enÃ­úWCS.AIPreview.FanartzMspecial://home/addons/plugin.video.milionar/resources/media/ai_hub_fanart.jpgÚAIu6   Vyberte typ doporuÄ�enÃ­ nebo napiÅ¡te vlastnÃ­ dotaz.NF)ÚanimateúWCS.AIChat.VisibleéÐ  g333333Ó?)Ú_reset_stater   r<   ÚsetPropertyÚappend_chat_messageÚ_setup_hub_buttonsÚ_populate_hub_cardsr8   Ú_execute_auto_actionÚ_show_nav_on_initÚ_show_nav_sidebarÚclearPropertyÚ_delayed_focus©r=   s    rC   ÚonInitz AIRecommendationHubDialog.onInit€   s?  € ð 	×ÒÑÔÐØ!ˆŒØ ˆÔð 	×ÒÐ+Ð->Ñ?Ô?Ð?Ø×ÒÐ,Ð.HÑIÔIÐIð 	×ÒÐ/ð  2Añ  	Bô  	Bð  	Bð 	× Ò  Ð'_Ñ`Ô`Ð`ð 	×ÒÑ!Ô!Ð!ð 	× Ò Ñ"Ô"Ð"ð Ôð 	Ø×%Ò%Ñ'Ô'Ð'ØˆFð Ô!ð 	+Ø×"Ò"¨5Ð"Ñ1Ô1Ð1Ð1Ð1ð ×ÒÐ3Ñ4Ô4Ð4Ø×Ò  cÑ*Ô*Ð*Ð*Ð*rD   c                 óŒ  — | j         }|sdS |                     d¦  «        rG|                     d¦  «        d         }|                      d¦  «         |                      |¦  «         dS |                     d¦  «        rG|                     d¦  «        d         }|                      d¦  «         |                      |¦  «         dS dS )zHProvede automatickou akci pri startu dialogu (z menu 'Poradit se s AI').Núhub_select:ú:é   z
Nacitam...úhub_context:)r8   Ú
startswithÚsplitÚ_start_button_loadingÚ_handle_card_selectionÚ_handle_context_recommendation)r=   ÚactionÚcard_idr   s       rC   rP   z.AIRecommendationHubDialog._execute_auto_action¥   s×   € àÔ"ˆØð 	ØˆFð ×Ò˜]Ñ+Ô+ð 	Ø—l’l 3Ñ'Ô'¨Ô*ˆGØ×&Ò& |Ñ4Ô4Ð4Ø×'Ò'¨Ñ0Ô0Ð0ØˆFð ×Ò˜^Ñ,Ô,ð 	Ø!Ÿ<š<¨Ñ,Ô,¨QÔ/ˆLØ×&Ò& |Ñ4Ô4Ð4Ø×/Ò/°Ñ=Ô=Ð=ØˆFð		ð 	rD   c                 ód   — dddœdddœdddœdd	dœd
ddœdddœg}|                       |¦  «         dS )z#Nastavi tlacitka v AI chat sidebar.r	   úhub_context:default_movie)r   Úvaluer   úhub_context:default_seriesr   úhub_context:hub_mixu   Podle sbÃ­rky filmuúhub_context:my_moviesu   Podle sbÃ­rky serialuúhub_context:my_seriesu   Mix podle celÃ© sbÃ­rkyúhub_context:my_mixed_collectionN)Úupdate_buttons)r=   Úbuttonss     rC   rN   z,AIRecommendationHubDialog._setup_hub_buttons¹   so   € ð 'Ð1LÐMÐMØ)Ð4PÐQÐQØ$Ð/DÐEÐEØ+Ð6MÐNÐNØ-Ð8OÐPÐPØ/Ð:[Ð\Ð\ð
ˆð 	×Ò˜GÑ$Ô$Ð$Ð$Ð$rD   c                 ó†  — |                       |¦  «        }d}|dk    rd}n,|dk    rd}n#|dk    rd}n|dk    rd	}n|d
k    rd}n|dk    rd}|                      d¦  «         |                      ¦   «          d| _        |                      dd¦  «         |                      d¦  «         |                      |||d¬¦  «         dS )u€   
        Zpracuje poÅ¾adavek na spuÅ¡tÄ›nÃ­ AI s konkrÃ©tnÃ­m kontextem.
        VolÃ¡no z tlaÄ�Ã­tek 'hub_context:...'
        úDoporuc mi neco zajimaveho.Údefault_movieú&Doporuc mi zajimave filmy k sledovani.Údefault_seriesú(Doporuc mi zajimave serialy k sledovani.Úhub_mixúXChci mix filmu a serialu - pul na pul. Doporuc mi 6 skvelych filmu a 6 skvelych serialu.r
   z&Doporuc mi filmy na zaklade me sbirky.r   z(Doporuc mi serialy na zaklade me sbirky.r   z:Doporuc mi filmy a serialy na zaklade me kompletni sbirky.úWCS.AIPreview.ShowActionsFrI   ÚtrueúAnalyzuji...T©ÚdataÚ	user_textÚ
is_initialN)Ú_load_context_datarS   Ú_clear_hub_propertiesr<   rL   r^   Ústart_ai_with_context)r=   Úcontext_keyry   Úuser_msgs       rC   r`   z8AIRecommendationHubDialog._handle_context_recommendationÅ   s  € ð ×&Ò& {Ñ3Ô3ˆð 1ˆà˜/Ò)Ð)Ø?ˆHˆHØÐ,Ò,Ð,ØAˆHˆHØ˜IÒ%Ð%ØqˆHˆHØ˜KÒ'Ð'Ø?ˆHˆHØ˜KÒ'Ð'ØAˆHˆHØÐ1Ò1Ð1ØSˆHð 	×ÒÐ6Ñ7Ô7Ð7Ø×"Ò"Ñ$Ô$Ð$Ø!ˆÔð 	×ÒÐ-¨vÑ6Ô6Ð6Ø×"Ò" >Ñ2Ô2Ð2ð 	×"Ò" ;°TÀXÐZ^Ð"Ñ_Ô_Ð_Ð_Ð_rD   c                 ó¨   — | j                              |d¦  «        }|dk    r	|d         }n!d|cxk    rdk    rn n	|d         }n|d         }d|› d|› �S )uõ   
        FormÃ¡tuje text kontextu s Ä�eskou pluralizacÃ­.
        
        Pravidla:
        - 1: singular (film, seriÃ¡l, herec)
        - 2-4: plural1 (filmy, seriÃ¡ly, herci)
        - 5+: plural2/genitive (filmÅ¯, seriÃ¡lÅ¯, hercÅ¯)
        ©u   poloÅ¾kau   poloÅ¾kyu   poloÅ¾ekrZ   r   é   é   u   Kontext  â€¢  ú ©ÚCZECH_PLURALSÚget)r=   Úcountr   ÚformsÚnouns        rC   Ú_format_czech_contextz/AIRecommendationHubDialog._format_czech_contextì   st   € ð Ô"×&Ò& |Ð5YÑZÔZˆà�AŠ:ˆ:Ø˜”8ˆDˆDØ�%ˆ_ˆ_Š_ˆ_˜1Š_ˆ_ˆ_ˆ_ˆ_Ø˜”8ˆDˆDà˜”8ˆDà. Ð.Ð.¨Ð.Ð.Ð.rD   c                 ó¾   — | j                              |d¦  «        }|dk    r	|d         }n!d|cxk    rdk    rn n	|d         }n|d         }|r
|› d|› d|› �S |› d|› �S )u¶   
        FormÃ¡tuje badge text s Ä�eskou pluralizacÃ­.
        
        PÅ™Ã­klady:
        - 11 filmÅ¯ v sbÃ­rce
        - 3 seriÃ¡ly v sbÃ­rce
        - 1 titul v historii
        r‚   rZ   r   rƒ   r„   r…   r†   )r=   r‰   r   ÚsuffixrŠ   r‹   s         rC   Ú_format_czech_badgez-AIRecommendationHubDialog._format_czech_badge   s–   € ð Ô"×&Ò& |Ð5YÑZÔZˆà�AŠ:ˆ:Ø˜”8ˆDˆDØ�%ˆ_ˆ_Š_ˆ_˜1Š_ˆ_ˆ_ˆ_ˆ_Ø˜”8ˆDˆDà˜”8ˆDàð 	.ØÐ-Ð-˜dÐ-Ð- VÐ-Ð-Ð-ØÐ Ð ˜$Ð Ð Ð rD   c                 ó|  — |                       d¦  «        }|                     ¦   «          | j        D ]á}t          j        |d         ¬¦  «        }|                     d|d         › �|d         dœ¦  «         |                     d|d         ¦  «         |                     d	|d	         ¦  «         |                     d
d¦  «         |                     d|d         pd¦  «         |                     d|d         ¦  «         |                     |¦  «         Œâ|                     d¦  «         |  	                    ¦   «          dS )u4   NaplnÃ­ poster flow kartami moÅ¾nostÃ­ doporuÄ�enÃ­.rJ   r   ©r   z<special://home/addons/plugin.video.milionar/resources/media/r   )Úposterr   rb   r   r   Úis_hub_cardrv   r   r.   r   r   N)
Ú
getControlÚresetÚRECOMMENDATION_CARDSÚxbmcguiÚListItemÚsetArtrL   ÚaddItemÚ
selectItemÚ_update_hub_preview)r=   Úlist_controlÚcardÚitems       rC   rO   z-AIRecommendationHubDialog._populate_hub_cards  sT  € à—’ tÑ,Ô,ˆØ×ÒÑÔÐàÔ-ð 	'ð 	'ˆDÝÔ#¨$¨w¬-Ð8Ñ8Ô8ˆDØ�KŠKØgÐY]Ð^dÔYeÐgÐgØ˜Vœðð ñ ô ð ð ×Ò˜Y¨¨T¬
Ñ3Ô3Ð3Ø×Ò˜]¨D°Ô,?Ñ@Ô@Ð@Ø×Ò˜]¨FÑ3Ô3Ð3Ø×Ò˜^¨T°.Ô-AÐ-GÀRÑHÔHÐHØ×Ò˜\¨4°Ô+=Ñ>Ô>Ð>Ø× Ò  Ñ&Ô&Ð&Ð&ð 	×Ò Ñ"Ô"Ð"Ø× Ò Ñ"Ô"Ð"Ð"Ð"rD   c                 óx  — 	 |                       d¦  «        }|                     ¦   «         }|sdS |                     d¦  «        }|s+|                      ¦   «          |                      d¦  «         dS |                      dd¦  «         d| _        | j                             |i ¦  «        }|  	                    |¦  «        \  }}	 | j
                             d¦  «        pd}| j
                             |› d	�¦  «        pd
}|r|                     ¦   «         nd}	|r|	› d|› �n|	}
n	#  d}
Y nxY w|                     dd
¦  «        }|r|dk    r|                      ||¦  «        }n)|r%d| j                             |d¦  «        d         › �}nd
}|
rd|
› d�nd
|rd|› d�nd
d
|                     dd
¦  «        dœ}|                      d|                     dd
¦  «        ¦  «         |                      |¦  «         |                      d|                     dd
¦  «        ¦  «         |                      d|                     dd
¦  «        ¦  «         |                      d|                     dd
¦  «        ¦  «         |                      d|                     d d
¦  «        ¦  «         |                     dd
¦  «        }|                     d!d
¦  «        }|r4|dk    r.|                      |||¦  «        }|                      d"|¦  «         n|                      d"¦  «         |                      |¦  «         |r-|                      d#d¦  «         |                      d$¦  «         dS |                      d#¦  «         |                      d$d¦  «         dS # t$          $ r-}t'          j        d%|› �t&          j        ¦  «         Y d}~dS d}~ww xY w)&uP   Aktualizuje preview podle vybranÃ© karty - pouÅ¾Ã­vÃ¡ stejnou logiku jako filmy.rJ   Nrb   úWCS.Hub.IsActiverv   FÚai_providerÚmistralÚ_modelr.   rG   u     â€¢  z	AI Enginer   r   u   Kontext  â€¢  0 )r.   r.   r.   rƒ   z[I][COLOR FFB0B0B0]z[/COLOR][/I]z[COLOR grey]z[/COLOR]r$   )Úfmt_taglineÚfmt_metadataÚfmt_extendedÚplotúWCS.AIPreview.Titler#   úWCS.Hub.TitleúWCS.Hub.AIInfoúWCS.Hub.SectionTitler%   úWCS.Hub.EmptyHintr&   r'   úWCS.Hub.BadgeúWCS.Hub.HasContentúWCS.Hub.ShowEmptyz+[plugin.video.milionar] Hub preview error: )r”   ÚgetSelectedItemÚgetPropertyÚ _update_preview_for_current_itemrS   rL   Ú_showing_item_actionsÚCARD_CONTENTrˆ   Ú_load_hub_content_dataÚaddonÚ
getSettingÚ
capitalizerŒ   r‡   Ú_apply_cached_preview_datar�   Ú_populate_content_previewÚ	ExceptionÚxbmcÚlogÚLOGERROR)r=   r�   rŸ   rb   ÚcontentÚitemsr‰   Úprovider_nameÚ
model_nameÚprovider_displayÚtagline_textr   Úmetadata_textry   r'   Ú
badge_textÚes                    rC   rœ   z-AIRecommendationHubDialog._update_hub_preview,  sW  € ðW	WØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð Ø�à×&Ò& yÑ1Ô1ˆGØð à×5Ò5Ñ7Ô7Ð7à×"Ò"Ð#5Ñ6Ô6Ð6Ø�ð ×ÒÐ/°Ñ8Ô8Ð8ð */ˆDÔ&ð Ô'×+Ò+¨G°RÑ8Ô8ˆGð  ×6Ò6°wÑ?Ô?‰LˆE�5ð
+Ø $¤
× 5Ò 5°mÑ DÔ DÐ QÈ	�Ø!œZ×2Ò2°mÐ3KÐ3KÐ3KÑLÔLÐRÐPR�
ØANÐ#X =×#;Ò#;Ñ#=Ô#=Ð#=ÐTXÐ ØKUÐkÐ"2ÐGÐG¸:ÐGÐGÐGÐ[k��øð+Ø*���øøøð #Ÿ;š; ~°rÑ:Ô:ˆLØð # ¨¢	 	Ø $× :Ò :¸5À,Ñ OÔ O��Øð #Ø j°4Ô3E×3IÒ3IÈ,ÐXdÑ3eÔ3eÐfgÔ3hÐ jÐ j��à "�ð T`ÐgÐO°\ÐOÐOÐOÐOÐegØJWÐ _Ð F¨}Ð FÐ FÐ FÐ FÐ]_Ø "ØŸš I¨rÑ2Ô2ð	ð ˆDð ×ÒÐ2°G·K²KÀÈÑ4LÔ4LÑMÔMÐMð ×+Ò+¨DÑ1Ô1Ð1ð ×Ò˜_¨g¯kªk¸'À2Ñ.FÔ.FÑGÔGÐGØ×ÒÐ-¨w¯{ª{¸9ÀbÑ/IÔ/IÑJÔJÐJØ×ÒÐ3°W·[²[ÀÐRTÑ5UÔ5UÑVÔVÐVØ×ÒÐ0°'·+²+¸lÈBÑ2OÔ2OÑPÔPÐPð #Ÿ;š; ~°rÑ:Ô:ˆLØ"Ÿ;š; ~°rÑ:Ô:ˆLØð 4 ¨¢	 	Ø!×5Ò5°e¸\È<ÑXÔX�
Ø× Ò  °*Ñ=Ô=Ð=Ð=à×"Ò" ?Ñ3Ô3Ð3ð ×*Ò*¨5Ñ1Ô1Ð1ð ð >Ø× Ò Ð!5°vÑ>Ô>Ð>Ø×"Ò"Ð#6Ñ7Ô7Ð7Ð7Ð7à×"Ò"Ð#7Ñ8Ô8Ð8Ø× Ò Ð!4°fÑ=Ô=Ð=Ð=Ð=øåð 	Wð 	Wð 	WÝŒHÐFÀ1ÐFÐFÍÌÑVÔVÐVÐVÐVÐVÐVÐVÐVøøøøð	WøøøsD   ‚+N ¯A N Á1AN ÃAD! Ä N Ä!D'Ä%H.N Í+N Î
N9Î"N4Î4N9c                 ó$  — | j         r:t          | dd¦  «        s)|                      d¦  «                             ¦   «          dS | j         �r¯t          | dd¦  «        �r�	 |                      d¦  «        }|                     ¦   «         }|r|                     d¦  «        nd}d}|dk    r!|dk    r|                      |¦  «        rd}n/d	}n,|d
k    r	|dk    rd}n|dk    r|dk    rd}nd}n|dk    rd}nd}|                      |¦  «        }	|                      d¦  «        }
|
                     ¦   «          |	D ]‰}|                     dt          |¦  «        ¦  «         |                     d|¦  «         |                     dt          |¦  «        ¦  «         |                     d|¦  «         |
 
                    |¦  «         ŒŠdS # t          $ r,}t          j        d|› �t          j        ¦  «         Y d}~nd}~ww xY w	 |                      d¦  «        }|                     ¦   «          |d
k    rd}n	|dv rd}nd}|                      |¦  «        }	|	D ]‰}|                     dt          |¦  «        ¦  «         |                     d|¦  «         |                     dt          |¦  «        ¦  «         |                     d|¦  «         | 
                    |¦  «         ŒŠdS # t          $ r-}t          j        d|› �t          j        ¦  «         Y d}~dS d}~ww xY w)u,   PÅ™etÃ­Å¾eno - Smart Actions logika pro Hub.r´   FéÔ  NrJ   rb   r   Úcol_series_continueÚcol_series_startr   r   Ú	col_movier   Úhist_seriesÚ
hist_movieÚ	ai_seriesÚai_movieÚtmdb_idr#   Úyearr   z-[plugin.video.milionar] Smart Actions error: )r   ÚtvÚai_colz3[plugin.video.milionar] Hub non-hub actions error: )r<   Úgetattrr”   r•   r±   r²   Ú_is_in_historyÚbuild_action_itemsrL   Ústrrš   r¼   r½   r¾   r¿   )r=   r   rÒ   r#   rÓ   r�   rŸ   rb   r   rÁ   Úlist_actionsrÈ   Úcontexts                rC   Ú_populate_preview_actionsz3AIRecommendationHubDialog._populate_preview_actionsˆ  s±  € ð Ôð 	¥W¨TÐ3JÈEÑ%RÔ%Rð 	Ø�OŠO˜DÑ!Ô!×'Ò'Ñ)Ô)Ð)ØˆFàÔñ 4	]¥¨Ð/FÈÑ!NÔ!Nñ 4	]ð2]à#Ÿš¨tÑ4Ô4�Ø#×3Ò3Ñ5Ô5�Ø9=ÐG˜$×*Ò*¨9Ñ5Ô5Ð5À4�à"�ð  Ò)Ð)¨g¸Ò.AÐ.Aà×*Ò*¨7Ñ3Ô3ð 9Ø&;˜˜à&8˜˜à 7Ò*Ð*¨w¸(Ò/BÐ/Bà"-�K�Kà 	Ò)Ð)à" hÒ.Ð.Ø'4˜˜à'3˜˜ð " XÒ-Ð-Ø&1˜˜à&0˜ð ×/Ò/°Ñ<Ô<�ð  $Ÿš¨tÑ4Ô4�Ø×"Ò"Ñ$Ô$Ð$Ø!ð /ð /�DØ×$Ò$ Yµ°G±´Ñ=Ô=Ð=Ø×$Ò$ W¨eÑ4Ô4Ð4Ø×$Ò$ V­S°©Y¬YÑ7Ô7Ð7Ø×$Ò$ \°:Ñ>Ô>Ð>Ø ×(Ò(¨Ñ.Ô.Ð.Ð.à�øåð ]ð ]ð ]Ý”ÐLÈÐLÐLÍdÌmÑ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\øøøøð]øøøð
	`ØŸ?š?¨4Ñ0Ô0ˆLØ×ÒÑ Ô Ð ð ˜WÒ$Ð$Ø$��ØÐ/Ð/Ð/Ø%��à"�ð ×+Ò+¨GÑ4Ô4ˆEàð +ð +�Ø× Ò  ­C°©L¬LÑ9Ô9Ð9Ø× Ò  ¨%Ñ0Ô0Ð0Ø× Ò  ­¨T©¬Ñ3Ô3Ð3Ø× Ò  ¨zÑ:Ô:Ð:Ø×$Ò$ TÑ*Ô*Ð*Ð*ð+ð +øõ ð 	`ð 	`ð 	`ÝŒXÐOÈAÐOÐOÕQUÔQ^Ñ_Ô_Ð_Ð_Ð_Ð_Ð_Ð_Ð_øøøøð	`øøøs2   ÁE!G  Ç 
G6Ç
"G1Ç1G6Ç:CK Ë
LË""L
Ì
Lc                 ó�   ‡— 	 t          j        | j        ¦  «        }t          ˆfd„|D ¦   «         ¦  «        S # t          $ r Y dS w xY w)u-   ZjistÃ­, zda je titul v historii sledovÃ¡nÃ­.c              3   ó~   •K  — | ]7}t          |                     d ¦  «        ¦  «        t          ‰¦  «        k    V — Œ8dS ©rÒ   N©rÙ   rˆ   ©Ú.0ÚirÒ   s     €rC   ú	<genexpr>z;AIRecommendationHubDialog._is_in_history.<locals>.<genexpr>æ  sB   øè è € ÐNÐNÀ•s˜1Ÿ5š5 Ñ+Ô+Ñ,Ô,µ°G±´Ò<ÐNÐNÐNÐNÐNÐNrD   F)r   Úload_recently_playedr·   Úanyr¼   )r=   rÒ   r   s    ` rC   r×   z(AIRecommendationHubDialog._is_in_historyá  s_   ø€ ð	åÔ4°T´ZÑ@Ô@ˆGÝÐNÐNÐNÐNÀgÐNÑNÔNÑNÔNÐNøÝð 	ð 	ð 	Ø�5�5ð	øøøs   ƒ37 ·
AÁAc           
      óÆ  ‡— 	 |                       ¦   «          ddlm} d}d}	 t          j        | j        ¦  «        }t          ˆfd„|D ¦   «         d¦  «        }|rFt          |                     dd¦  «        ¦  «        }t          |                     dd¦  «        ¦  «        }n9# t          $ r,}t          j        d|› �t          j        ¦  «         Y d}~nd}~ww xY w‰|||dœ}	t          j        d	|› d
‰› d|› d|› �t          j        ¬¦  «         |                     |	| j        ¦  «         dS # t          $ r-}
t          j        d|
› �t          j        ¦  «         Y d}
~
dS d}
~
ww xY w)uO   SpustÃ­ pÅ™ehrÃ¡vÃ¡nÃ­ dalÅ¡Ã­ho dÃ­lu (Next Episode) nebo zaÄ�ne od zaÄ�Ã¡tku.r   )Úutilsc              3   ó‚   •K  — | ]9}t          |                     d ¦  «        ¦  «        t          ‰¦  «        k    ¯5|V — Œ:dS rß   rà   rá   s     €rC   rä   zDAIRecommendationHubDialog._handle_continue_series.<locals>.<genexpr>û  sH   øè è € Ð[Ð[ QµS¸¿º¸yÑ9IÔ9IÑ5JÔ5JÍcÐRYÉlÌlÒ5ZÐ5Z˜qÐ5ZÐ5ZÐ5ZÐ5ZÐ[Ð[rD   NÚseasonÚepisodez1[plugin.video.milionar] Hub history check error: )rÒ   Úseries_nameÚcurrent_seasonÚcurrent_episodez-[plugin.video.milionar] Hub starting series 'z' (ID z) from SÚE)Úlevelz/[plugin.video.milionar] Continue Series error: )ÚcloseÚwcsrè   r   rå   r·   ÚnextÚintrˆ   r¼   r½   r¾   Ú
LOGWARNINGÚLOGINFOÚplay_next_episode_with_metadatar¿   )r=   r#   rÒ   rè   Úlast_seasonÚlast_episoder   ÚfoundÚh_errÚparamsrÈ   s     `        rC   Ú_handle_continue_seriesz1AIRecommendationHubDialog._handle_continue_seriesê  sþ  ø€ ð(
\à�ZŠZ‰\Œ\ˆ\à"Ð"Ð"Ð"Ð"Ð"ð ˆ[Øˆ\ðhÝ$Ô9¸$¼*ÑEÔE�õ Ð[Ð[Ð[Ð[¨'Ð[Ñ[Ô[Ð]aÑbÔb�àð Aõ $' u§y¢y°¸1Ñ'=Ô'=Ñ#>Ô#>�[Ý$'¨¯	ª	°)¸QÑ(?Ô(?Ñ$@Ô$@�\øøÝð hð hð hÝ”ÐUÈeÐUÐUÕW[ÔWfÑgÔgÐgÐgÐgÐgÐgÐgøøøøðhøøøð
 $Ø %Ø#.Ø$0ð	ð ˆVõ ŒXð  AÀeð  Að  AÐSZð  Að  AÐdoð  Að  AÐr~ð  Að  Aõ  IMô  IUð  Vñ  Vô  Vð  Và×2Ò2°6¸4¼:ÑFÔFÐFÐFÐFøÝð 
\ð 
\ð 
\ÝŒXÐKÈÐKÐKÍTÌ]Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[øøøøð
\øøøsB   ƒD) ¢A=B  ÂD) Â 
CÂ*"CÃD) ÃCÃAD) Ä)
E Ä3"EÅE c                 ó$  — t          j        ¦   «         }g }	 |dk    rvt          j        |¦  «        }|D ]N}|                     dd¦  «        }|rd|› �nd}|                     ||                     dd¦  «        ddœ¦  «         ŒO|t          |¦  «        fS |dk    rvt          j        |¦  «        }|D ]N}	|	                     dd¦  «        }|rd|› �nd}|                     ||	                     dd¦  «        ddœ¦  «         ŒO|t          |¦  «        fS |d	k    rkt          j        |¦  «        }
|
D ]C}|                     |                     d
d¦  «        |                     dd¦  «        ddœ¦  «         ŒD|t          |
¦  «        fS |dk    �rýt          j	        |¦  «        pg }t          j
        |¦  «        pg }g }t          t          |¦  «        t          |¦  «        ¦  «        }t          |¦  «        D �]s}|t          |¦  «        k     r¥||         }|                     dd¦  «        }|                     |rd|› �nd|                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        ddœ¦  «         |t          |¦  «        k     r¥||         }|                     dd¦  «        }|                     |rd|› �nd|                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        ddœ¦  «         �Œu|t          |¦  «        t          |¦  «        z   fS |dk    rËt          j	        |¦  «        pg }g }|D ]Ÿ}|                     dd¦  «        }|                     |rd|› �nd|                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        ddœ¦  «         Œ |t          |¦  «        fS |dk    rËt          j
        |¦  «        pg }g }|D ]Ÿ}|                     dd¦  «        }|                     |rd|› �nd|                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        ddœ¦  «         Œ |t          |¦  «        fS |dk    rËt          j	        |¦  «        pg }g }|D ]Ÿ}|                     dd¦  «        }|                     |rd|› �nd|                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        ddœ¦  «         Œ |t          |¦  «        fS |d	k    rÔt          j        |¦  «        }
g }|
D ]ª}|                     |                     d
d¦  «        |                     dd¦  «        d|                     dd¦  «        |                     dd¦  «        |                     d¦  «        |                     d¦  «        |                     dd¦  «        dœ¦  «         Œ«|t          |
¦  «        fS n<# t          $ r/}t          j        d|› d|› �t          j        ¦  «         Y d}~nd}~ww xY w|dfS ) u¥   
        NaÄ�te data pro danou kartu z uÅ¾ivatelskÃ½ch dat.
        
        Returns:
            tuple: (list of dicts s 'poster' a 'label' klÃ­Ä�i, count)
        r   Úprofile_pathr.   zhttps://image.tmdb.org/t/p/w342ÚnamezDefaultActor.png)r’   r   Úfallbackr   r   r’   r#   úDefaultVideo.pngr   Úposter_pathÚoverviewrÓ   r   Úvote_averager   )r’   r   r  r  rÓ   r   r  r   r   r   r   r¨   rÒ   Úratingr   z6[plugin.video.milionar] Error loading hub content for z: Nr   )Ú	xbmcaddonÚAddonr   Úload_favorite_actorsrˆ   ÚappendÚlenÚload_favorite_directorsrå   Úload_tmdb_moviesÚload_tmdb_seriesÚmaxÚranger¼   r½   r¾   r¿   )r=   rb   r·   rÁ   r   Úactorrÿ   Ú
poster_urlr   Údirectorr   rŸ   r   r   Ú	all_itemsÚmax_lenrã   Úmr  ÚsrÈ   s                        rC   r¶   z0AIRecommendationHubDialog._load_hub_content_data  sù  € õ ”Ñ!Ô!ˆØˆðT	mØ˜(Ò"Ð"å"Ô7¸Ñ>Ô>�Ø#ð ð �EØ#(§9¢9¨^¸RÑ#@Ô#@�LØUaÐ!iÐ!QÀ<Ð!QÐ!QÐ!QÐgi�JØ—L’LØ",Ø!&§¢¨6°2Ñ!6Ô!6Ø$6ð"ð "ñ ô ð ð ð
 �c &™kœkÐ)Ð)à˜KÒ'Ð'å%Ô=¸eÑDÔD�	Ø )ð ð �HØ#+§<¢<°ÀÑ#CÔ#C�LØUaÐ!iÐ!QÀ<Ð!QÐ!QÐ!QÐgi�JØ—L’LØ",Ø!)§¢¨f°bÑ!9Ô!9Ø$6ð"ð "ñ ô ð ð ð
 �c )™nœnÐ,Ð,à˜IÒ%Ð%å#Ô8¸Ñ?Ô?�Ø#ð ð �DØ—L’LØ"&§(¢(¨8°RÑ"8Ô"8Ø!%§¢¨'°2Ñ!6Ô!6Ø$6ð"ð "ñ ô ð ð ð
 �c '™lœlÐ*Ð*à˜EÒ!Ñ!å"Ô3°EÑ:Ô:Ð@¸b�Ý"Ô3°EÑ:Ô:Ð@¸b�ð �	Ý�c &™kœk­3¨v©;¬;Ñ7Ô7�Ý˜w™œð ñ �AØ�3˜v™;œ;’�Ø" 1œI˜Ø&'§e¢e¨M¸2Ñ&>Ô&>˜Ø!×(Ò(ØYdÐ&lÐ&UÈÐ&UÐ&UÐ&UÐjlØ%&§U¢U¨7°BÑ%7Ô%7Ø(:Ø()¯ª¨j¸"Ñ(=Ô(=Ø$%§E¢E¨&°"Ñ$5Ô$5Ø"#§%¢%¨¡+¤+Ø,-¯EªE°.Ñ,AÔ,AØ*1ð	*ð 	*ñ 	ô 	ð 	ð �3˜v™;œ;’�Ø" 1œI˜Ø&'§e¢e¨M¸2Ñ&>Ô&>˜Ø!×(Ò(ØYdÐ&lÐ&UÈÐ&UÐ&UÐ&UÐjlØ%&§U¢U¨6°2Ñ%6Ô%6Ø(:Ø()¯ª¨j¸"Ñ(=Ô(=Ø$%§E¢E¨&°"Ñ$5Ô$5Ø"#§%¢%¨¡+¤+Ø,-¯EªE°.Ñ,AÔ,AØ*2ð	*ð 	*ñ 	ô 	ð 	ùð !¥# f¡+¤+µ°F±´Ñ";Ð;Ð;à˜HÒ$Ð$å"Ô3°EÑ:Ô:Ð@¸b�Ø�Øð ð �AØ"#§%¢%¨°rÑ":Ô":�KØ—L’LØU`Ð"hÐ"QÀKÐ"QÐ"QÐ"QÐfhØ!"§¢ w°Ñ!3Ô!3Ø$6Ø$%§E¢E¨*°bÑ$9Ô$9Ø !§¢ f¨bÑ 1Ô 1ØŸeše D™kœkØ()¯ª¨nÑ(=Ô(=Ø&-ð	"ð 	"ñ 	ô 	ð 	ð 	ð �c &™kœkÐ)Ð)à˜HÒ$Ð$å"Ô3°EÑ:Ô:Ð@¸b�Ø�Øð ð �AØ"#§%¢%¨°rÑ":Ô":�KØ—L’LØU`Ð"hÐ"QÀKÐ"QÐ"QÐ"QÐfhØ!"§¢ v¨rÑ!2Ô!2Ø$6Ø$%§E¢E¨*°bÑ$9Ô$9Ø !§¢ f¨bÑ 1Ô 1ØŸeše D™kœkØ()¯ª¨nÑ(=Ô(=Ø&.ð	"ð 	"ñ 	ô 	ð 	ð 	ð �c &™kœkÐ)Ð)à˜MÒ)Ð)õ #Ô3°EÑ:Ô:Ð@¸b�Ø�Øð ð �AØ"#§%¢%¨°rÑ":Ô":�KØ—L’LØU`Ð"hÐ"QÀKÐ"QÐ"QÐ"QÐfhØ!"§¢ w°Ñ!3Ô!3Ø$6Ø$%§E¢E¨*°bÑ$9Ô$9Ø !§¢ f¨bÑ 1Ô 1ØŸeše D™kœkØ()¯ª¨nÑ(=Ô(=Ø&-ð	"ð 	"ñ 	ô 	ð 	ð 	ð �c &™kœkÐ)Ð)à˜IÒ%Ð%å#Ô8¸Ñ?Ô?�Ø�Ø#ð 
ð 
�DØ—L’LØ"&§(¢(¨8°RÑ"8Ô"8Ø!%§¢¨'°2Ñ!6Ô!6Ø$6Ø$(§H¢H¨V°RÑ$8Ô$8Ø $§¢¨°Ñ 4Ô 4Ø"Ÿhšh yÑ1Ô1Ø(,¯ª°Ñ(:Ô(:Ø&*§h¢h¨|¸WÑ&EÔ&Eð	"ð 	"ñ 	ô 	ð 	ð 	ð �c '™lœlÐ*Ð*ð &øõ" ð 	mð 	mð 	mÝŒHÐ\ÈgÐ\Ð\ÐYZÐ\Ð\Õ^bÔ^kÑlÔlÐlÐlÐlÐlÐlÐløøøøð	møøøð �aˆxˆsI   —A;[ ÂA;[ ÄA0[ Æ H[ ÎC[ ÑC[ Ô&C[ ×7C[ Û
\Û%\Ü\c                 ó*  — 	 |                       d¦  «        }|                     ¦   «          |D �]ª}t          j        |                     dd¦  «        ¬¦  «        }|                     dd¦  «        }|                     dd¦  «        }|                     |r|n||r|n||dœ¦  «         |                     d	¦  «        r)|                     d
t          |d	         ¦  «        ¦  «         |                     d¦  «        r)|                     dt          |d         ¦  «        ¦  «         |                     d¦  «        r|                     d|d         ¦  «         |                     d¦  «        r|                     d|d         ¦  «         |                     d¦  «        r)|                     dt          |d         ¦  «        ¦  «         |                     |¦  «         �Œ¬dS # t          $ r-}t          j        d|› �t          j        ¦  «         Y d}~dS d}~ww xY w)u»   
        NaplnÃ­ content preview control (id 2500) postery z uÅ¾ivatelskÃ½ch dat.
        
        Args:
            items: List of dicts s 'poster', 'label' a 'fallback' klÃ­Ä�i
        éÄ	  r   r.   r‘   r’   r  r  )r’   Úthumbr   r   rÒ   rÓ   r  r   r  z?[plugin.video.milionar] Content preview control not available: N)r”   r•   r—   r˜   rˆ   r™   rL   rÙ   rš   r¼   r½   r¾   ÚLOGDEBUG)r=   rÁ   Úpreview_controlÚ	item_dataÚ	list_itemr  r  rÈ   s           rC   r»   z3AIRecommendationHubDialog._populate_content_preview¹  s5  € ð	kØ"Ÿošo¨dÑ3Ô3ˆOØ×!Ò!Ñ#Ô#Ð#à"ð 3ñ 3�	Ý#Ô,°9·=²=ÀÈ"Ñ3MÔ3MÐNÑNÔN�	Ø&Ÿ]š]¨8°RÑ8Ô8�
Ø$Ÿ=š=¨Ð5GÑHÔH�à× Ò Ø,6ÐD˜j˜j¸HØ+5ÐC˜Z˜Z¸8Ø$ð"ð "ñ ô ð ð —=’= Ñ&Ô&Ð^¨	×(=Ò(=¸iÍÈYÐW[Ì_ÑI]ÔI]Ñ(^Ô(^Ð(^Ø—=’= Ñ(Ô(Ð_¨)×*?Ò*?ÀÍÈIÐV\ÔL]ÑH^ÔH^Ñ*_Ô*_Ð*_Ø—=’= Ñ,Ô,Ðf¨i×.CÒ.CÀJÐPYÐZdÔPeÑ.fÔ.fÐ.fØ—=’= Ñ.Ô.Ðl°	×0EÒ0EÀlÐT]Ð^jÔTkÑ0lÔ0lÐ0lØ—=’= Ñ0Ô0Ðw°)×2GÒ2GÈÕX[Ð\eÐftÔ\uÑXvÔXvÑ2wÔ2wÐ2wà×'Ò'¨	Ñ2Ô2Ð2Ñ2ð%3ð 3øõ( ð 	kð 	kð 	kåŒHÐZÐWXÐZÐZÕ\`Ô\iÑjÔjÐjÐjÐjÐjÐjÐjÐjøøøøð	køøøs   ‚GG Ç
HÇ%"HÈHc                 óì  — t          j        ¦   «         }|dk    rt          j        |¦  «        S |dk    rt          j        |¦  «        S |dk    r-t          j        |¦  «        }t          j        |¦  «        }||dœS |dk    rt          j        |¦  «        S |dk    rt          j        |¦  «        S |dk    rt          j        |¦  «        S |dk    r¥t          j        |¦  «        }i }|rld	d
lm	} |D ]c}| 
                    d¦  «        }	|	rJ ||	¦  «        }
|
r=|
 
                    d¦  «        r(|
d         }| 
                    d¦  «        }|r	||vr|||<   Œdt          |                     ¦   «         ¦  «        S dS )zRNacte data pro dany context_type. Centralni metoda pro vsechny kontextove operace.r
   r   r   )r   r   r   r   r    r   r   )Úget_movie_detailed_infor   Úbelongs_to_collectionN)r  r  r   r  r  r	  r  rå   Úwcs.metadata.TMDbClientr   rˆ   ÚlistÚvalues)r=   r   r·   r   r   r"   Úcollsr   r   ÚmidÚdetailsÚc_infoÚcids                rC   r|   z,AIRecommendationHubDialog._load_context_dataÜ  s¸  € å”Ñ!Ô!ˆà˜;Ò&Ð&ÝÔ-¨eÑ4Ô4Ð4Ø˜[Ò(Ð(ÝÔ-¨eÑ4Ô4Ð4ØÐ2Ò2Ð2ÝÔ/°Ñ6Ô6ˆFÝÔ/°Ñ6Ô6ˆFØ$°Ð7Ð7Ð7ØÐ.Ò.Ð.ÝÔ1°%Ñ8Ô8Ð8ØÐ1Ò1Ð1ÝÔ4°UÑ;Ô;Ð;ØÐ.Ò.Ð.ÝÔ1°%Ñ8Ô8Ð8ØÐ-Ò-Ð-Ý#Ô4°UÑ;Ô;ˆKØˆEØð 
4ØKÐKÐKÐKÐKÐKØ(ð 4ð 4�EØŸ)š) D™/œ/�CØð 4Ø"9Ð"9¸#Ñ">Ô">˜Ø"ð 4 w§{¢{Ð3JÑ'KÔ'Kð 4Ø%,Ð-DÔ%E˜FØ"(§*¢*¨TÑ"2Ô"2˜CØ"ð 4 s°%Ð'7Ð'7Ø-3  c¡
øÝ˜Ÿš™œÑ'Ô'Ð'ØˆtrD   c                 ó¢  •— 	 |                       d¦  «        }|                     ¦   «         }|sdS |                     d¦  «        dk    r,|                     d¦  «        }|                      |¦  «         dS t	          ¦   «                              ¦   «          dS # t          $ r-}t          j        d|› �t          j	        ¦  «         Y d}~dS d}~ww xY w)u=   PÅ™etÃ­Å¾enÃ¡ metoda - zpracuje klik na kartu nebo vÃ½sledek.rJ   Nr“   rv   rb   z)[plugin.video.milionar] Hub click error: )
r”   r±   r²   r_   r9   Úhandle_recommendation_clickr¼   r½   r¾   r¿   )r=   r�   rŸ   rb   rÈ   rB   s        €rC   r+  z5AIRecommendationHubDialog.handle_recommendation_clickÿ  sð   ø€ ð	UØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð Ø�ð ×Ò Ñ.Ô.°&Ò8Ð8Ø×*Ò*¨9Ñ5Ô5�Ø×+Ò+¨GÑ4Ô4Ð4Ð4Ð4õ ‘”×3Ò3Ñ5Ô5Ð5Ð5Ð5øÝð 	Uð 	Uð 	UÝŒHÐDÀÐDÐDÅdÄmÑTÔTÐTÐTÐTÐTÐTÐTÐTøøøøð	Uøøøs#   ƒ+B °AB Á5 B Â
CÂ!"C	Ã	Cc                 óÆ  — 	 |                       d¦  «        }|                     ¦   «         }|sdS |                     d¦  «        }|                     d¦  «        pd}|                     ¦   «         }|                     d¦  «        pd}|                     d¦  «        }|                     d	¦  «        p|                     d
¦  «        pd}|                      d|¦  «         |                      d|¦  «         |r|                      |||||¦  «         dS |                      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)zZAktualizuje preview panel (pravy sloupec) podle vybraneho miniposteru (item z listu 2500).r  NrÒ   r   r   rÓ   r.   r’   r  r¨   rª   r«   r©   zWCS.AIPreview.YearzWCS.AIPreview.PosterzWCS.AIPreview.PlotzWCS.AIPreview.TaglinezWCS.AIPreview.MetadatazWCS.AIPreview.Extendedz2[plugin.video.milionar] Miniposter preview error: )r”   r±   r²   ÚgetLabelÚgetArtrL   Ú_apply_new_previewrS   r¼   r½   r¾   r¿   )
r=   r�   rŸ   rÒ   r   r#   rÓ   r’   r¨   rÈ   s
             rC   Ú_update_miniposter_previewz4AIRecommendationHubDialog._update_miniposter_preview  s  € ð#	^ØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð Ø�à×&Ò& yÑ1Ô1ˆGØ×)Ò)¨,Ñ7Ô7ÐB¸7ˆJØ—M’M‘O”OˆEØ×#Ò# FÑ+Ô+Ð1¨rˆDØ—[’[ Ñ*Ô*ˆFØ×#Ò# JÑ/Ô/ÐQ°4×3CÒ3CÀFÑ3KÔ3KÐQÈrˆDð ×Ò˜_¨eÑ4Ô4Ð4Ø×ÒÐ-¨tÑ4Ô4Ð4ð
 ð =à×'Ò'¨°¸UÀDÈ&ÑQÔQÐQÐQÐQð × Ò Ð!6¸Ñ>Ô>Ð>Ø× Ò Ð!5°tÑ<Ô<Ð<Ø× Ò Ð!7¸Ñ@Ô@Ð@Ø× Ò Ð!5°tÑ<Ô<Ð<Ø×"Ò"Ð#:Ñ;Ô;Ð;Ø×"Ò"Ð#;Ñ<Ô<Ð<Ø×"Ò"Ð#;Ñ<Ô<Ð<Ð<Ð<øåð 	^ð 	^ð 	^ÝŒHÐMÈ!ÐMÐMÍtÌ}Ñ]Ô]Ð]Ð]Ð]Ð]Ð]Ð]Ð]øøøøð	^øøøs$   ‚+F) ¯CF) ÄBF) Æ)
G Æ3"GÇG c                 óV  — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d	S )
zBVymaze vsechny Hub-specificke properties kdyz se opousti hub mode.r¡   r¯   r°   rª   r«   r¬   r­   r®   N)rS   rU   s    rC   r}   z/AIRecommendationHubDialog._clear_hub_properties9  s®   € à×ÒÐ-Ñ.Ô.Ð.Ø×ÒÐ/Ñ0Ô0Ð0Ø×ÒÐ.Ñ/Ô/Ð/Ø×Ò˜?Ñ+Ô+Ð+Ø×ÒÐ+Ñ,Ô,Ð,Ø×ÒÐ1Ñ2Ô2Ð2Ø×ÒÐ.Ñ/Ô/Ð/Ø×Ò˜?Ñ+Ô+Ð+Ð+Ð+rD   c                 óâ  — |dk    rb|                       ¦   «          d| _        d}|                      dd¦  «         |                      d¦  «         |                      dd|¬	¦  «         dS d}| j        D ]}|d
         |k    r|} nŒ|sdS |d         | _        |                       ¦   «          d| _        |d         }|r'd|i| _        |                      |¦  «        | j        d<   n|dk    r
ddi| _        nd| _        t          | j        | j        ¦  «        | _
        | j        r|                      ¦   «         nd}|r|}nA|dk    rd}n8|dk    rd}n/|dk    rd}n&|dk    rd}n|dk    rd}n|dk    rd}n|dk    rd}nd}| j                             d|d œ¦  «         |                      d!|¦  «         |                      dd¦  «         |                      d¦  «         |                      d"¬#¦  «         dS )$zOZpracuje vyber karty a spusti AI inference - nacita data stejne jako router.py.Úcollections_simpleFz9Doporuc mi zajimave filmove kolekce a sagy k prozkoumani.rI   rv   rw   Úhub_colN)ry   rz   r   r   r   Útypery   r   Ú
simple_mixr   rp   r   rr   rt   r   z-Doporuc mi filmy podle mych oblibenych hercu.r   z0Doporuc mi filmy podle mych oblibenych reziseru.r   z"Doporuc mi filmove kolekce a sagy.r   z<Doporuc mi filmy a serialy na zaklade me historie sledovani.rn   Úuser)ÚrolerÀ   ÚTyT)Úis_initial_context)r}   r<   rL   r^   r~   r–   r   rÛ   r|   r   Ú_prompt_builderÚ_get_context_instructionr   r
  rM   Ú_start_ai_conversation)r=   rb   r€   rž   Úcr   Úcontext_instructions          rC   r_   z0AIRecommendationHubDialog._handle_card_selectionD  s–  € ð
 Ð*Ò*Ð*à×&Ò&Ñ(Ô(Ð(Ø %ˆDÔàRˆHð ×ÒÐ1°6Ñ:Ô:Ð:Ø×&Ò& ~Ñ6Ô6Ð6Ø×&Ò& y°tÀxÐ&ÑPÔPÐPØˆFð ˆØÔ*ð 	ð 	ˆAØ�Œw˜'Ò!Ð!Ø�Ø�ð "ð ð 	ØˆFð ˜|Ô,ˆŒØ×"Ò"Ñ$Ô$Ð$Ø!ˆÔð ˜NÔ+ˆØð 	 Ø" LÐ1ˆDŒLØ#'×#:Ò#:¸<Ñ#HÔ#HˆDŒL˜Ñ Ð Ø˜ÒÐà" LÐ1ˆDŒLˆLàˆDŒLõ  =¸T¼_ÈdÌlÑ[Ô[ˆÔð BFÄÐW˜d×;Ò;Ñ=Ô=Ð=ÐSWÐàð 	5Ø*ˆHˆHØ˜Ò Ð Ø?ˆHˆHØ˜Ò Ð ØAˆHˆHØ˜ÒÐØqˆHˆHØ˜Ò Ð ØFˆHˆHØ˜Ò#Ð#ØIˆHˆHØ˜Ò%Ð%Ø;ˆHˆHØ˜	Ò!Ð!ØUˆHˆHà4ˆHð 	Œ×Ò V¸ÐAÐAÑBÔBÐBØ× Ò   xÑ0Ô0Ð0ð 	×ÒÐ-¨vÑ6Ô6Ð6Ø×"Ò" >Ñ2Ô2Ð2ð 	×#Ò#°tÐ#Ñ<Ô<Ð<Ð<Ð<rD   c                 ó–  •— |dk    �r|                       d¦  «        }|                     ¦   «         }|rá|                     d¦  «        }|                     ¦   «         }|                     d¦  «        rG|                     d¦  «        d         }|                      |¦  «         |                      |¦  «         dS |                     d¦  «        rG|                     d¦  «        d         }|                      |¦  «         |                      |¦  «         dS �n|dk    �r
|                       d¦  «        }|                     ¦   «         }|rßd	| _	        |                     d
¦  «        p|                     d¦  «        pd}|                     d¦  «        }	|                     ¦   «         }
|                     d¦  «        p|                     ¦   «         }|                     d¦  «        }|  
                    ||	||¦  «         |                      dd¦  «         |                      d¦  «         dS t          ¦   «                              |¦  «         dS )zXPretizena metoda - zpracuje hub_select: a hub_context: tlacitka pred delegaci na parent.é   re   rX   rY   rZ   Nr[   r  Tr   r5  r   rÒ   r#   rÓ   ru   rv   rÊ   )r”   r±   r²   r-  r\   r]   r^   r_   r`   r´   rÜ   rL   Ú
setFocusIdr9   ÚonClick)r=   Ú	controlIdr�   rŸ   Úvalr   rb   r   r   rÒ   r#   Ú	raw_titlerÓ   rB   s                €rC   rC  z!AIRecommendationHubDialog.onClick•  s2  ø€ à˜ÒÑØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð Ø×&Ò& wÑ/Ô/�ØŸš™œ�ð —>’> -Ñ0Ô0ð Ø!Ÿiši¨™nœn¨QÔ/�GØ×.Ò.¨uÑ5Ô5Ð5Ø×/Ò/°Ñ8Ô8Ð8Ø�Fð —>’> .Ñ1Ô1ð Ø#&§9¢9¨S¡>¤>°!Ô#4�LØ×.Ò.¨uÑ5Ô5Ð5Ø×7Ò7¸ÑEÔEÐEØ�Fùà˜$ÒÑàŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð à-1�Ô*ð "×-Ò-¨lÑ;Ô;Ðb¸t×?OÒ?OÐPVÑ?WÔ?WÐbÐ[b�
Ø×*Ò*¨9Ñ5Ô5�ØŸš™œ�ð !×,Ò,¨WÑ5Ô5ÐH¸¿º¹¼�	Ø×'Ò'¨Ñ/Ô/�ð ×.Ò.¨z¸7ÀIÈtÑTÔTÐTð × Ò Ð!<¸fÑEÔEÐEØ—’ Ñ%Ô%Ð%Ø�õ 	‰Œ�Š˜	Ñ"Ô"Ð"Ð"Ð"rD   c                 ó‚  •— |                      ¦   «         }| j        ri|t          j        k    rY|                      ¦   «         dk    rA|                      ¦   «          |                      dd¦  «         |                      d¦  «         dS | j        r}|t          j        k    rm|                      ¦   «         dk    rU|                      ¦   «          |                      dd¦  «         |                      d¦  «         |  	                    ¦   «          dS | j        �r|t          j
        t          j        fv rò|                      ¦   «         dk    r˜|                      d¦  «        }|                     ¦   «         }|t          j
        k    r.| j        dk    r#t          ¦   «                              |¦  «         dS || _        t#          j        d¦  «         |  	                    ¦   «          dS |                      ¦   «         dk    r*t#          j        d¦  «         |                      ¦   «          dS t          ¦   «                              |¦  «         dS )	u:  PÅ™etÃ­Å¾enÃ¡ akce pro hub mode.
        
        Hub mode mÃ¡ specifickÃ© chovÃ¡nÃ­:
        - UP na seznamu zobrazÃ­ hub-specifickÃ© akce (textovÃ½ vstup + vybranÃ¡ karta)
        - LEFT/RIGHT aktualizuje hub preview mÃ­sto standardnÃ­ho
        - VÅ¡e ostatnÃ­ (vÄ�etnÄ› nav sidebar) deleguje na parent
        rJ   ru   rv   rÊ   Nr  r   gš™™™™™©?)ÚgetIdr<   r—   ÚACTION_MOVE_UPÚ
getFocusIdÚ_setup_hub_actionsrL   rB  ÚACTION_MOVE_DOWNrœ   ÚACTION_MOVE_LEFTÚACTION_MOVE_RIGHTr”   ÚgetSelectedPositionÚ_last_list_positionr9   ÚonActionÚtimeÚsleepr0  )r=   ra   Ú	action_idr�   Úcurrent_posrB   s        €rC   rQ  z"AIRecommendationHubDialog.onActionË  s'  ø€ ð —L’L‘N”Nˆ	ð Ôð 	 ­gÔ.DÒ!DÐ!DØ�ŠÑ Ô  DÒ(Ð(à×'Ò'Ñ)Ô)Ð)Ø× Ò Ð!<¸fÑEÔEÐEØ—’ Ñ%Ô%Ð%Ø�ð Ôð 
	 ­gÔ.FÒ!FÐ!FØ�ŠÑ Ô  DÒ(Ð(ð ×'Ò'Ñ)Ô)Ð)à× Ò Ð!<¸fÑEÔEÐEØ—’ Ñ%Ô%Ð%à×(Ò(Ñ*Ô*Ð*Ø�ð Ôñ 	 ­wÔ/GÍÔIbÐ.cÐ!cÐ!cØ�ŠÑ Ô  DÒ(Ð(à#Ÿš¨tÑ4Ô4�Ø*×>Ò>Ñ@Ô@�ð ¥Ô 8Ò8Ð8¸TÔ=UÐYZÒ=ZÐ=ZÝ‘G”G×$Ò$ VÑ,Ô,Ð,Ø�Fð ,7�Ô(õ ”
˜4Ñ Ô Ð Ø×(Ò(Ñ*Ô*Ð*Ø�à�ŠÑ Ô  DÒ(Ð(å”
˜4Ñ Ô Ð Ø×/Ò/Ñ1Ô1Ð1à�õ 	‰Œ×Ò˜Ñ Ô Ð Ð Ð rD   c                 óÐ  •— |dk    r•| j         dv rd| _        |                      d¦  «         |                      d¦  «         |                      d¦  «         | j        r*|                      d¦  «         |                      ¦   «          n×|                      ¦   «          nÂ|dk    r|                      dd	¦  «         n¥|d
k    r1|                      d¦  «         | j        r|                      ¦   «          nn|dk    r+|                      d¦  «         |                      d¦  «         n=|dv r|                      d¦  «         n#t          ¦   «          	                    |¦  «         dS || _         dS )zïPretizena metoda onFocus pro Hub mode.
        
        V hub mode pouziva _update_hub_preview() misto parent _update_preview_for_current_item(),
        protoze hub karty nemaji tmdb_id a parent by vymazal vsechny Hub properties.
        rJ   )rA  i¸  i¹  ié  iê  Tru   rI   zWCS.NavSidebar.VisiblerF   rÊ   rv   r  i¼  N)
Ú_last_focus_idÚ_returning_from_chatrS   r<   rœ   r³   rL   r0  r9   ÚonFocus)r=   rD  rB   s     €rC   rY  z!AIRecommendationHubDialog.onFocus  sž  ø€ ð ˜ÒÐàÔ"Ð&DÐDÐDØ,0�Ô)à×ÒÐ:Ñ;Ô;Ð;Ø×ÒÐ3Ñ4Ô4Ð4Ø×ÒÐ7Ñ8Ô8Ð8ð Ô ð 8Ø×"Ò"Ð#9Ñ:Ô:Ð:Ø×(Ò(Ñ*Ô*Ð*Ð*à×5Ò5Ñ7Ô7Ð7Ð7à˜$ÒÐà×ÒÐ8¸&ÑAÔAÐAÐAà˜$ÒÐà×ÒÐ:Ñ;Ô;Ð;àÔ ð 2Ø×/Ò/Ñ1Ô1Ð1øà˜$ÒÐà×ÒÐ:Ñ;Ô;Ð;Ø×ÒÐ3Ñ4Ô4Ð4Ð4àÐ8Ð8Ð8à×ÒÐ:Ñ;Ô;Ð;Ð;õ ‰GŒG�OŠO˜IÑ&Ô&Ð&ØˆFð (ˆÔÐÐrD   rd   ©r   ra   rh   rf   ri   rg   rj   u   FilmovÃ© kolekcezhub_select:collections_simplezhub_select:collections)r   r   r   r   c                 óü  — 	 |                       d¦  «        }|                     ¦   «         }|r|                     d¦  «        nd}|r|                     ¦   «         nd}n#  d}d}Y nxY w| j                             |dddœg¦  «        }g }|D ]^}|                     d¦  «        dk    r|                     ||d	         d
œ¦  «         Œ:|                     |d         |d	         d
œ¦  «         Œ_|                     ddd
œ¦  «         |                       d¦  «        }|                     ¦   «          |D ]N}	t          j	        |	d         ¬¦  «        }| 
                    d	|	d	         ¦  «         |                     |¦  «         ŒOdS )z9Nastavi akcni tlacitka pro Hub (Data-Driven Refactoring).rJ   rb   NÚDotazÚ	recommendÚhub_select_current)r5  ra   r5  ra   rZ  r   u   VlastnÃ­ dotazÚhub_text_inputrÊ   r‘   )r”   r±   r²   r-  ÚHUB_CARD_ACTIONSrˆ   r
  r•   r—   r˜   rL   rš   )
r=   r�   rŸ   rb   Ú
card_labelÚcard_configÚactionsÚconfÚaction_listÚacts
             rC   rK  z,AIRecommendationHubDialog._setup_hub_actionsR  s¶  € ð	!ØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØ59ÐC�d×&Ò& yÑ1Ô1Ð1¸tˆGØ,0Ð=˜Ÿš™œ˜°gˆJˆJøð	!ØˆGØ ˆJˆJˆJøøøð Ô+×/Ò/°À;ÐZnÐ:oÐ:oÐ9pÑqÔqˆàˆð  ð 	Sð 	SˆDØ�xŠx˜ÑÔ ;Ò.Ð.à—’¨¸tÀH¼~ÐNÐNÑOÔOÐOÐOð —’¨¨g¬À$ÀxÄ.ÐQÐQÑRÔRÐRÐRð 	�ŠÐ!1Ð=MÐNÐNÑOÔOÐOð —o’o dÑ+Ô+ˆØ×ÒÑÔÐØð 	&ð 	&ˆCÝÔ#¨#¨g¬,Ð7Ñ7Ô7ˆDØ×Ò˜X s¨8¤}Ñ5Ô5Ð5Ø×Ò Ñ%Ô%Ð%Ð%ð	&ð 	&s   ‚AA ÁA%c                 ó  •— | j         s"t          ¦   «                              ¦   «          dS 	 |                      d¦  «        }|                     ¦   «         }|sdS |                     d¦  «        }|                     ¦   «         }|dk    r|                      ¦   «          dS |dk    r+|                      d¦  «         |  	                    ¦   «          dS | 
                    d¦  «        r\|                     d¦  «        d	         }|                      d
¦  «         |                      |¦  «         |                      |¦  «         dS | 
                    d¦  «        r\|                     d¦  «        d	         }|                      d
¦  «         |                      |¦  «         |                      |¦  «         dS |dv rB|                     d¦  «        }|                     d¦  «        }|                      ||¦  «         dS |dk    rn|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }	|                     d¦  «        }
|                      ||
||	¦  «         dS |dk    rB|                     d¦  «        }|                     d¦  «        }|                      ||¦  «         dS t          ¦   «                              ¦   «          dS # t&          $ r-}t)          j        d|› �t(          j        ¦  «         Y d}~dS d}~ww xY w)u;   PÅ™etÃ­Å¾enÃ¡ metoda pro zpracovÃ¡nÃ­ akÄ�nÃ­ch tlaÄ�Ã­tek.NrÊ   ra   r_  r^  rJ   rX   rY   rZ   ru   r[   )ÚcontinueÚnext_episoderÒ   r#   Úremove_from_listrÓ   r   Úremove_from_historyz*[plugin.video.milionar] Hub action error: )r<   r9   Ú_handle_preview_action_clickr”   r±   r²   r-  Ú_handle_hub_text_inputrB  r+  r\   r]   rS   r^   r_   r`   rý   Ú_handle_remove_from_listÚ_handle_remove_from_historyr¼   r½   r¾   r¿   )r=   re  rŸ   ra   r   rb   r   rÒ   r#   rÓ   r   rÈ   rB   s               €rC   rl  z6AIRecommendationHubDialog._handle_preview_action_clickx  s<  ø€ àÔ ð 	õ ‰GŒG×0Ò0Ñ2Ô2Ð2ØˆFð0	VØŸ/š/¨$Ñ/Ô/ˆKØ×.Ò.Ñ0Ô0ˆDØð Ø�à×%Ò% hÑ/Ô/ˆFØ—M’M‘O”OˆEàÐ)Ò)Ð)à×+Ò+Ñ-Ô-Ð-Ð-Ð-ØÐ/Ò/Ð/à—’ Ñ%Ô%Ð%Ø×0Ò0Ñ2Ô2Ð2Ð2Ð2Ø×"Ò" =Ñ1Ô1ð 7à Ÿ,š, sÑ+Ô+¨AÔ.�Ø×"Ò"Ð#>Ñ?Ô?Ð?Ø×*Ò*¨5Ñ1Ô1Ð1Ø×+Ò+¨GÑ4Ô4Ð4Ð4Ð4Ø×"Ò" >Ñ2Ô2ð 7à%Ÿ|š|¨CÑ0Ô0°Ô3�Ø×"Ò"Ð#>Ñ?Ô?Ð?Ø×*Ò*¨5Ñ1Ô1Ð1Ø×3Ò3°LÑAÔAÐAÐAÐAØÐ7Ð7Ð7à×*Ò*¨9Ñ5Ô5�Ø×(Ò(¨Ñ1Ô1�Ø×,Ò,¨U°GÑ<Ô<Ð<Ð<Ð<ØÐ-Ò-Ð-Ø×*Ò*¨9Ñ5Ô5�Ø×(Ò(¨Ñ1Ô1�Ø×'Ò'¨Ñ/Ô/�Ø!×-Ò-¨lÑ;Ô;�
Ø×-Ò-¨g°zÀ5È$ÑOÔOÐOÐOÐOØÐ0Ò0Ð0Ø×*Ò*¨9Ñ5Ô5�Ø×(Ò(¨Ñ1Ô1�Ø×0Ò0°¸%Ñ@Ô@Ð@Ð@Ð@õ ‘”×4Ò4Ñ6Ô6Ð6Ð6Ð6øåð 	Vð 	Vð 	VÝŒHÐEÀ!ÐEÐEÅtÄ}ÑUÔUÐUÐUÐUÐUÐUÐUÐUøøøøð	VøøøsM   ¬+K ÁAK Â/K ÃA/K Å A/K Æ1AK Ç7A2K É+AK Ê3 K Ë
LË"LÌLc                 ó6  •— | j         ro|                      d¦  «         |                      ¦   «          d| _         d}t          j        d|› �t          j        ¦  «         |                      |d|d¬¦  «         dS t          ¦   «                              |¦  «         dS )uO   PÅ™etÃ­Å¾enÃ¡ metoda pro zpracovÃ¡nÃ­ vstupu z sidebar chatu (nebo odkudkoliv).ru   Frs   zH[plugin.video.milionar] Starting sidebar query (Hub Mode) with context: Nrx   )	r<   rS   r}   r½   r¾   rö   r~   r9   Úhandle_user_input)r=   rz   r   rB   s      €rC   rq  z+AIRecommendationHubDialog.handle_user_input·  sª   ø€ ð
 Ôð 	1à×ÒÐ:Ñ;Ô;Ð;Ø×&Ò&Ñ(Ô(Ð(Ø %ˆDÔð $ˆKåŒHÐmÐ`kÐmÐmÕosÔo{Ñ|Ô|Ð|Ø×&Ò& {¸ÈÐ_dÐ&ÑeÔeÐeÐeÐeõ ‰GŒG×%Ò% iÑ0Ô0Ð0Ð0Ð0rD   c                 ó  — t          j        dd¦  «        }|                     ¦   «          |                     ¦   «         r?|                     ¦   «                              ¦   «         }|r|                      |¦  «         dS dS dS )u?   Zpracuje textovÃ½ vstup od uÅ¾ivatele (z akÄ�nÃ­ho tlaÄ�Ã­tka).r.   u   NapiÅ¡te svÅ¯j dotaz pro AIN)r½   ÚKeyboardÚdoModalÚisConfirmedÚgetTextÚstripÚ_handle_hub_text_input_logic)r=   Úkeyboardrz   s      rC   rm  z0AIRecommendationHubDialog._handle_hub_text_inputÍ  s�   € õ ”= Ð%BÑCÔCˆØ×ÒÑÔÐà×ÒÑ!Ô!ð 	=Ø ×(Ò(Ñ*Ô*×0Ò0Ñ2Ô2ˆIØð =Ø×1Ò1°)Ñ<Ô<Ð<Ð<Ð<ð	=ð 	=ð=ð =rD   c                 óò  — d}	 |                       d¦  «        }|                     ¦   «         }|r?|                     d¦  «        }|dk    rd}n!|dk    rd}n|dk    rd}n|d	k    rd
}n|dv rd}n#  Y nxY w|                      d¦  «         |                      ¦   «          d| _        |                      dd¦  «         t          j        d|› �t          j	        ¦  «         |  
                    |d|d¬¦  «         dS )u5   SpoleÄ�nÃ¡ logika pro zpracovÃ¡nÃ­ textu v Hub mÃ³du.ro   rJ   rb   r   r   rq   r   rs   r   r4  )r   r   r   ru   FrI   rv   z<[plugin.video.milionar] Starting custom query with context: Nrx   )r”   r±   r²   rS   r}   r<   rL   r½   r¾   rö   r~   )r=   rz   r   r�   rŸ   rb   s         rC   rx  z6AIRecommendationHubDialog._handle_hub_text_input_logicØ  sE  € ð &ˆð	ØŸ?š?¨4Ñ0Ô0ˆLØ×/Ò/Ñ1Ô1ˆDØð ,Ø×*Ò*¨9Ñ5Ô5�Ø˜hÒ&Ð&Ø"1�K�KØ Ò(Ð(Ø"2�K�KØ Ò%Ð%Ø"+�K�KØ Ò-Ð-Ø"+�K�KØÐ BÐBÐBØ"+�Køøð	ØˆDøøøð 	×ÒÐ6Ñ7Ô7Ð7ð 	×"Ò"Ñ$Ô$Ð$Ø!ˆÔð 	×ÒÐ-¨vÑ6Ô6Ð6õ 	ŒÐ]ÐP[Ð]Ð]Õ_cÔ_kÑlÔlÐlØ×"Ò" ;°TÀYÐ[`Ð"ÑaÔaÐaÐaÐas   „A*A/ Á/A3c                 óŽ   — |                       d¦  «         d| _        |                      ¦   «          |                      ¦   «          dS )u4   PÅ™etÃ­Å¾enÃ¡ metoda - vrÃ¡tit se zpÄ›t do hub mode.u#   Model nedoporuÄ�il Å¾Ã¡dnÃ© tituly.TN)Úappend_system_messager<   rO   rN   rU   s    rC   Ú_handle_no_recommendationsz4AIRecommendationHubDialog._handle_no_recommendations  sI   € à×"Ò"Ð#HÑIÔIÐIØ ˆÔØ× Ò Ñ"Ô"Ð"Ø×ÒÑ!Ô!Ð!Ð!Ð!rD   )r.   )%Ú__name__Ú
__module__Ú__qualname__Ú__doc__r–   rµ   r‡   r:   rV   rP   rN   r`   rŒ   r�   rO   rœ   rÜ   r×   rý   r¶   r»   r|   r+  r0  r}   r_   rC  rQ  rY  r`  rK  rl  rq  rm  rx  r}  Ú__classcell__)rB   s   @rC   r   r      sã  ø€ € € € € ðð ð Ð"2Ð<PØ?ÐQ\Ðlsð	uð 	uàÐ"5Ð?SØEÐWbÐrzð	|ð 	|à˜~Ð7HØDÐVkð  |Cð	Dð 	Dà .Ð:NØ@ÐRcÐszð	|ð 	|àÐ%8ÐBYØEÐWkð  |Cð	Dð 	Dà Ð@YØAÐScÐsð	Að 	AàÐ#3Ð=RØDÐVgÐw~ð	@ð 	@ðÐð( &ð `Ø"Ø)ØGØ(Ø(ð
ð 
ð )ØyØ$Ø,ØCØ(Ø(ð
ð 
ð .ØiØ#Ø-ØbØ(Ø"ð
ð 
ð 1ð `Ø#Ø5ØZØØ,ð
ð 
ð 6ð tØ%Ø;ØeØØ/ð
ð 
ð 0ð QØ%Ø+Ø@ØØ(ð
ð 
ð 1ð ZØ#Ø3ØCØ(Ø,ð
ð 
ðo@ð @€LðH ,Ø6Ø/Ø-Ø>Ø5ðð €Mð!ð !ð !ð !ð !ð#+ð #+ð #+ðJð ð ð(
%ð 
%ð 
%ð%`ð %`ð %`ðN/ð /ð /ð(!ð !ð !ð !ð,#ð #ð #ð,YWð YWð YWðxV`ð V`ð V`ðrð ð ð*\ð *\ð *\ðZ`ð `ð `ðD!kð !kð !kðF!ð !ð !ðFUð Uð Uð Uð Uð&%^ð %^ð %^ðN	,ð 	,ð 	,ðN=ð N=ð N=ðb4#ð 4#ð 4#ð 4#ð 4#ðl>!ð >!ð >!ð >!ð >!ð@0(ð 0(ð 0(ð 0(ð 0(ðj 'Ð2MÐNÐNØ%Ð1HÐIÐIð
ð
 *Ð5QÐRÐRØ%Ð1HÐIÐIð
ð
 %Ð0EÐFÐFØ%Ð1RÐSÐSð
ð
 )Ð4SÐTÐTØ%Ð1IÐJÐJð
ðð Ðð(#&ð #&ð #&ðL<Vð <Vð <Vð <Vð <Vð~1ð 1ð 1ð 1ð 1ð,	=ð 	=ð 	=ð$bð $bð $bðR"ð "ð "ð "ð "ð "ð "rD   r   Fc           	      ó†   — |                       d¦  «        }t          d|dd|||¬¦  «        }|                     ¦   «          ~dS )a  Zobrazi dialog AI Doporuceni Hub.
    
    Args:
        addon: Kodi addon instance
        show_nav_sidebar: Zobrazit navigacni sidebar
        nav_position: Pozice v navigaci
        auto_action: Automaticka akce pri startu (napr. 'hub_select:movies', 'hub_context:my_movies')
    Úpathz!ai/DialogAIChatRecommendation.xmlÚDefaultÚ1080i)Úshow_nav_sidebarÚnav_positionr5   N)ÚgetAddonInfor   rt  )r·   r‡  rˆ  r5   r?   Údialogs         rC   Ú!show_ai_recommendation_hub_dialogr‹  	  sY   € ð ×#Ò# FÑ+Ô+€Jå&Ø+ØØØØ)Ø!Øðñ ô €Fð ‡N‚NÑÔÐØˆˆrD   )Fr   N)r�  r½   r—   r  Ú	threadingrR  Ú!wcs.ai.DialogAIChatRecommendationr   r   rò   r   r   r‹  © rD   rC   ú<module>r�     sÀ   ððð ð €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø gÐ gÐ gÐ gÐ gÐ gÐ gÐ gØ Ð Ð Ð Ð Ð ðu"ð u"ð u"ð u"ð u"Ð :ñ u"ô u"ð u"ðp'ð ð ð ð ð rD   