§
    4»êÀ« ã                   óÜ  — d dl Z d dlZd dlZd dlmZmZmZ d dlmZm	Z	 d dl
m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 d dlZd„ Zd„ Zd	„ Zd
„ Zd/d„Zd0d„Zd1dedededede f
d„Z!d2d„Z"dddg ddddddf
d„Z#d3d„Z$d4dededefd„Z%d5dedefd„Z&d0defd„Z'd4d ed!edefd"„Z(d5d ed!efd#„Z)d0d efd$„Z*d4d%ed&edefd'„Z+d5d%ed&efd(„Z,d0d%efd)„Z-d4d*ed+edefd,„Z.d5d*ed+efd-„Z/d0d*efd.„Z0dS )6é    N)Ú	user_dataÚuiÚutils)Úsend_promptÚ!check_ai_api_key_and_handle_error)Úclean_response)Úget_tmdb_api_keyÚhandle_tmdb_api_error)Úcreate_movie_context_menuc                  óR   — t          j        ¦   «         } |                      d¦  «        S )uJ   VracÃ­ True pokud je povoleno pouÅ¾itÃ­ web search nÃ¡stroje v nastavenÃ­.Úai_use_web_search)Ú	xbmcaddonÚAddonÚgetSettingBool©Úaddons    ú^/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/ai/AIHandler.pyÚ_is_web_search_enabledr      s$   € åŒOÑÔ€EØ×ÒÐ 3Ñ4Ô4Ð4ó    c                 ó\   — 	 t          |                      d¦  «        pd¦  «        S #  Y dS xY w)u.   VracÃ­ limit poÄ�tu doporuÄ�enÃ­ z nastavenÃ­.Úai_recommendation_counté   )ÚintÚ
getSettingr   s    r   Ú_get_recomm_limitr      s9   € ðÝ�5×#Ò#Ð$=Ñ>Ô>ÐDÀ"ÑEÔEÐEøðØˆrˆrøøøs   ‚#& ¦+c                 óv   — 	 t          ¦   «          dS # t          $ r}t          || |¦  «         Y d}~dS d}~ww xY w)u’   
    Kontroluje TMDb API klÃ­Ä� a v pÅ™Ã­padÄ› chyby zobrazÃ­ dialog.
    VracÃ­ True pokud je klÃ­Ä� v poÅ™Ã¡dku, False pokud nastala chyba.
    TNF)r	   Ú
ValueErrorr
   ©r   ÚhandleÚes      r   Ú$_check_tmdb_api_key_and_handle_errorr!      sV   € ð
ÝÑÔÐØˆtøÝð ð ð Ý˜a ¨Ñ/Ô/Ð/Øˆuˆuˆuˆuˆuøøøøðøøøs   ‚ ’
8œ3³8c                 óæ   — 	 t          ¦   «         S # t          $ rV}t          j        d|› �t          j        ¬¦  «         t          j        d|                      d¦  «        ¦  «         Y d}~dS d}~ww xY w)u�   
    Kontroluje AI API klÃ­Ä� a v pÅ™Ã­padÄ› chyby zobrazÃ­ dialog.
    VracÃ­ True pokud je klÃ­Ä� v poÅ™Ã¡dku, False pokud nastala chyba.
    z3[plugin.video.milionar] Error checking AI API key: ©Úlevelu#   Chyba pÅ™i kontrole AI API klÃ­Ä�e.ÚnameNF)r   Ú	ExceptionÚxbmcÚlogÚLOGERRORr   ÚpopinfoÚgetAddonInfor   s      r   Ú"_check_ai_api_key_and_handle_errorr,   $   s‚   € ð
Ý0Ñ2Ô2Ð2øÝð ð ð ÝŒÐJÀqÐJÐJÕRVÔR_Ð`Ñ`Ô`Ð`Ý
Œ
Ð8¸%×:LÒ:LÈVÑ:TÔ:TÑUÔUÐUØˆuˆuˆuˆuˆuøøøøðøøøs   ‚ �
A0šAA+Á+A0Ú c           
      óx  — d| › d| › d|r|nd› d|r
|dd…         nd› d	�	}	 t          |d
¬¦  «        \  }}t          |t          ¦  «        r"d„ |D ¦   «         }d                     |¦  «        }nt	          |¦  «        }	 t          j        |¦  «        }|                     dd¦  «        }	|                     di ¦  «        }
|
                     dd¦  «        |
                     dd¦  «        |
                     dd¦  «        g}|	rt          |¦  «        st          d¦  «        ‚|	|dd…         |fS # t          $ r<}t          j        d|› �t          j        ¬¦  «         d| › d�}g d¢}||dfcY d}~S d}~ww xY w# t          $ r<}t          j        d|› �t          j        ¬¦  «         d| › d�}g d¢}||dfcY d}~S d}~ww xY w)u+  
    SpustÃ­ novou textovou hru na zÃ¡kladÄ› filmu.
    
    Args:
        movie_title (str): NÃ¡zev filmu
        movie_plot (str): DÄ›j filmu (volitelnÃ©)
        movie_genre (str): Å½Ã¡nr filmu (volitelnÃ©)
    
    Returns:
        tuple: (intro_text, [choice_a, choice_b, choice_c], usage)
    uE   Jsi vypravÄ›Ä� interaktivnÃ­ textovÃ© adventury inspirovanÃ© filmem 'õ   '.

KONTEXT FILMU:
NÃ¡zev: õ	   
Å½Ã¡nr: u   NeurÄ�enõ   
DÄ›j: Né,  õ#   VyuÅ¾ij svÃ© znalosti o tomto filmuuw  

INSTRUKCE:
1. VyuÅ¾ij VÅ ECHNY svÃ© znalosti o tomto filmu - postavy, dÄ›j, lokace, atmosfÃ©ru, klÃ­Ä�ovÃ© momenty
2. VytvoÅ™ ÃºvodnÃ­ situaci (2-3 vÄ›ty) zasazenou do svÄ›ta filmu
3. NabÃ­dni hrÃ¡Ä�ovi vÃ½bÄ›r ze 3 hlavnÃ­ch postav filmu jako volby a), b), c)
4. KaÅ¾dÃ¡ volba: 'HrÃ¡t jako [JmÃ©no postavy]'
5. Toto je zaÄ�Ã¡tek 5-dÃ­lnÃ© adventure, kde volba postavy ovlivnÃ­ celÃ½ pÅ™Ã­bÄ›h

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "intro": "ÃšvodnÃ­ text pÅ™Ã­bÄ›hu",
  "choices": {
    "a": "HrÃ¡t jako [HlavnÃ­ postava 1]",
    "b": "HrÃ¡t jako [HlavnÃ­ postava 2]",
    "c": "HrÃ¡t jako [HlavnÃ­ postava 3]"
  }
}Ú	text_game©Ú
usage_typec                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS ©Útext©Ú
isinstanceÚdictÚgetÚstr©Ú.0Úevts     r   ú
<listcomp>z#start_text_game.<locals>.<listcomp>Y   óH   € ÐoÐoÐoÐZ]µ*¸SÅ$Ñ2GÔ2GÐU�S—W’W˜V¥S¨¡X¤XÑ.Ô.Ð.ÍSÐQTÉXÌXÐoÐoÐor   r-   ÚintroÚchoicesÚaÚbÚcõ"   NeplatnÃ¡ struktura JSON odpovÄ›dié   zH[plugin.video.milionar] Error parsing JSON response in start_text_game: r#   u   VÃ­tej ve svÄ›tÄ› filmu u5   ! PÅ™Ã­bÄ›h zaÄ�Ã­nÃ¡...

Kterou postavu si vybereÅ¡?)u   HrÃ¡t jako hlavnÃ­ hrdinau   HrÃ¡t jako vedlejÅ¡Ã­ postavau   HrÃ¡t jako antagonistaz2[plugin.video.milionar] Error in start_text_game: )r   r;   ÚlistÚjoinr>   ÚjsonÚloadsr=   Úallr   r&   r'   r(   r)   )Úmovie_titleÚ
movie_plotÚmovie_genreÚpromptÚresponse_textÚusageÚpartsÚresponse_rawÚresponse_jsonÚ
intro_textÚchoices_dictrE   r    Úfallback_introÚfallback_choicess                  r   Ústart_text_gamer]   0   sv  € ð	ÐP[ð 	ð 	àð	ð 	ð #.Ð=�;�;°:ð	ð 	ð &0ÐZ�˜D˜S˜DÔ!Ð!Ð5Zð		ð 	ð 	ð ð.6å*¨6¸kÐJÑJÔJÑˆ�uõ �m¥TÑ*Ô*ð 	.ØoÐoÐanÐoÑoÔoˆEØŸ7š7 5™>œ>ˆLˆLå˜}Ñ-Ô-ˆLð	:Ý œJ |Ñ4Ô4ˆMØ&×*Ò*¨7°BÑ7Ô7ˆJØ(×,Ò,¨Y¸Ñ;Ô;ˆLØ#×'Ò'¨¨RÑ0Ô0°,×2BÒ2BÀ3ÈÑ2KÔ2KÈ\×M]ÒM]Ð^aÐceÑMfÔMfÐgˆGØð G¥S¨¡\¤\ð GÝ Ð!EÑFÔFÐFØ˜w r¨ rœ{¨EÐ1Ð1øÝð 	:ð 	:ð 	:ÝŒHÐcÐ`aÐcÐcÕkoÔkxÐyÑyÔyÐyà|¸Ð|Ð|Ð|ˆNØwÐwÐwÐØ!Ð#3°TÐ9Ð9Ð9Ð9Ð9Ð9Ð9øøøøð	:øøøøõ ð 6ð 6ð 6ÝŒÐIÀaÐIÐIÕQUÔQ^Ð_Ñ_Ô_Ð_àx°KÐxÐxÐxˆØsÐsÐsÐØÐ/°Ð5Ð5Ð5Ð5Ð5Ð5Ð5øøøøð6øøøsI   ¡AE3 Á<B-D* Ä*
E0Ä41E+Å%E0Å&E3 Å+E0Å0E3 Å3
F9Å=1F4Æ.F9Æ4F9é   c           	      ó>  — |rd                      |dd…         ¦  «        nd}|dk    rd}n|dk    rd|› d	�}n|d
k    rd}nd}d| › d|› d|› d|› d�	}|dk    r|dz  }n|dz  }	 t          |d¬¦  «        \  }}t          |t          ¦  «        r"d„ |D ¦   «         }	d                      |	¦  «        }
nt	          |¦  «        }
	 |
                     d¦  «        }|
                     d¦  «        }|dk    r|dk    r||k    r|
||dz   …         }n|
}t          j        |¦  «        }| 	                    dd¦  «        }| 	                    di ¦  «        }| 	                    dd¦  «        | 	                    dd¦  «        | 	                    dd¦  «        g}|dk    p.t          |¦  «        d k    od!|d                               ¦   «         v }|rt          |¦  «        st          d"¦  «        ‚||dd…         ||fS # t          $ rs}t          j        d#|› �t          j        ¬$¦  «         t          j        d%|
› �t          j        ¬$¦  «         |dk    rd&}g d'¢}||d(dfcY d}~S d)}g d*¢}||d+dfcY d}~S d}~ww xY w# t          $ rK}t          j        d,|› �t          j        ¬$¦  «         |dk    rd&}g d'¢}||d(dfcY d}~S d)}g d*¢}Y d}~dS d}~wt          $ rP}t          j        d,|› �t          j        ¬$¦  «         |dk    rd&}g d'¢}||d(dfcY d}~S d)}g d*¢}||d+dfcY d}~S d}~ww xY w)-u{  
    PokraÄ�uje v textovÃ© hÅ™e na zÃ¡kladÄ› hrÃ¡Ä�ovy volby.
    
    Args:
        movie_title (str): NÃ¡zev filmu
        story_history (list): Historie pÅ™Ã­bÄ›hu
        choice_made (str): Volba kterou hrÃ¡Ä� udÄ›lal
        turn_number (int): ÄŒÃ­slo aktuÃ¡lnÃ­ho tahu (1-5)
    
    Returns:
        tuple: (new_text, [choice_a, choice_b, choice_c], is_ending, usage)
    ú
éüÿÿÿNr-   r^   ug   HrÃ¡Ä� si vybral postavu. NynÃ­ zaÄ�ni prvnÃ­ hernÃ­ situaci - umÃ­sti ho do klÃ­Ä�ovÃ© scÃ©ny z filmu.rJ   zToto je uC   . kolo z 5. PokraÄ�uj v napÃ­navÃ©m pÅ™Ã­bÄ›hu s akcÃ­ a dilematem.é   uL   Toto je 4. kolo z 5. BlÃ­Å¾Ã­me se ke klimaxu - vytvoÅ™ dramatickou situaci.uW   Toto je finÃ¡lnÃ­ 5. kolo. Doved pÅ™Ã­bÄ›h k logickÃ©mu konci podle hrÃ¡Ä�ovÃ½ch voleb.u0   PokraÄ�uj v textovÃ© adventuÅ™e na tÃ©ma filmu 'u    '.

KONTEXT HRÃ�ÄŒOVÃ�CH VOLEB:
u   

AKTUÃ�LNÃ� VOLBA HRÃ�ÄŒE: u   

FÃ�ZE HRY: uõ   

INSTRUKCE:
1. VyuÅ¾ij svÃ© znalosti o filmu - postavy, lokace, zÃ¡pletka, atmosfÃ©ra
2. Reaguj na hrÃ¡Ä�ovu volbu logicky v kontextu filmu
3. VytvoÅ™ pokraÄ�ovÃ¡nÃ­ pÅ™Ã­bÄ›hu (2-3 vÄ›ty)
4. NabÃ­dni 3 smysluplnÃ© volby souvisejÃ­cÃ­ s filmem
é   u“  5. DÅ®LEÅ½ITÃ‰: Toto je poslednÃ­ kolo - jako volbu c) napiÅ¡ 'KONEC PÅ˜Ã�BÄšHU'

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "story": "FinÃ¡lnÃ­ pokraÄ�ovÃ¡nÃ­ pÅ™Ã­bÄ›hu - zakonÄ�enÃ­ podle hrÃ¡Ä�ovÃ½ch voleb",
  "choices": {
    "a": "finÃ¡lnÃ­ volba A",
    "b": "finÃ¡lnÃ­ volba B",
    "c": "KONEC PÅ˜Ã�BÄšHU"
  }
}
DÅ®LEÅ½ITÃ‰: NevklÃ¡dej Å¾Ã¡dnÃ½ text pÅ™ed ani za JSON, pouze Ä�istÃ½ JSON!u.  5. KaÅ¾dÃ¡ volba max 8-10 slov

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "story": "PokraÄ�ovÃ¡nÃ­ pÅ™Ã­bÄ›hu",
  "choices": {
    "a": "akÄ�nÃ­ volba",
    "b": "diplomatickÃ¡ volba",
    "c": "kreativnÃ­ volba"
  }
}
DÅ®LEÅ½ITÃ‰: NevklÃ¡dej Å¾Ã¡dnÃ½ text pÅ™ed ani za JSON, pouze Ä�istÃ½ JSON!r4   r5   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   r?   s     r   rB   z&continue_text_game.<locals>.<listcomp>»   rC   r   Ú{Ú}éÿÿÿÿÚstoryrE   rF   rG   rH   é   ÚKONECrI   zK[plugin.video.milionar] Error parsing JSON response in continue_text_game: r#   z)[plugin.video.milionar] AI response_raw: u    PÅ™Ã­bÄ›h se chÃ½lÃ­ ke konci...)u   DokonÄ�it cestuu   UÅ¾Ã­t si okamÅ¾ikõ   KONEC PÅ˜Ã�BÄšHUTu   DobrodruÅ¾stvÃ­ pokraÄ�uje...)u
   Jdi vpÅ™edu   BuÄ� opatrnÃ½u   Zkus nÄ›co jinÃ©hoFz5[plugin.video.milionar] Error in continue_text_game: )rL   r   r;   rK   r>   ÚfindÚrfindrM   rN   r=   ÚlenÚupperrO   r   r&   r'   r(   r)   )rP   Ústory_historyÚchoice_madeÚturn_numberÚcontextÚphase_instructionrS   rT   rU   rV   rW   ÚstartÚendÚjson_strrX   Ú
story_textrZ   rE   Ú	is_endingr    Úfallback_textr\   s                         r   Úcontinue_text_gamer{   s   sÁ  € ð 0=ÐDˆd�iŠi˜ b c cÔ*Ñ+Ô+Ð+À"€Gð �aÒÐð FÐÐØ	˜Ò	Ð	Øw {ÐwÐwÐwÐÐØ	˜Ò	Ð	ØjÐÐàuÐð	C¸;ð 	Cð 	CØ(/ð	Cð 	Cà%0ð	Cð 	Cð (ð	Cð 	Cð 	Cð ð �aÒÐØð
[ñ	
ˆˆð 	ð
[ñ	
ˆð<@å*¨6¸kÐJÑJÔJÑˆ�uå�m¥TÑ*Ô*ð 	.ØoÐoÐanÐoÑoÔoˆEØŸ7š7 5™>œ>ˆLˆLå˜}Ñ-Ô-ˆLð	Dà ×%Ò% cÑ*Ô*ˆEØ×$Ò$ SÑ)Ô)ˆCØ˜Š{ˆ{˜s bšy˜y¨S°5ª[¨[Ø'¨¨c°!©e¨Ô4��à'�õ !œJ xÑ0Ô0ˆMØ&×*Ò*¨7°BÑ7Ô7ˆJØ(×,Ò,¨Y¸Ñ;Ô;ˆLØ#×'Ò'¨¨RÑ0Ô0°,×2BÒ2BÀ3ÈÑ2KÔ2KÈ\×M]ÒM]Ð^aÐceÑMfÔMfÐgˆGØ$¨Ò)Ðb­s°7©|¬|¸aÒ/?Ð/aÀGÈwÐWXÌz×O_ÒO_ÑOaÔOaÐDaˆIØð G¥S¨¡\¤\ð GÝ Ð!EÑFÔFÐFØ˜w r¨ rœ{¨I°uÐ<Ð<øÝð 	Dð 	Dð 	DÝŒHÐfÐcdÐfÐfÕnrÔn{Ð|Ñ|Ô|Ð|ÝŒHÐOÀÐOÐOÕW[ÔWdÐeÑeÔeÐeà˜aÒÐØ B�Ø#`Ð#`Ð#`Ð Ø$Ð&6¸¸dÐBÐBÐBÐBÐBÐBÐBà ?�Ø#XÐ#XÐ#XÐ Ø$Ð&6¸¸tÐCÐCÐCÐCÐCÐCÐCøøøøð	Døøøøõ ð 	Uð 	Uð 	UÝŒÐLÈÐLÐLÕTXÔTaÐbÑbÔbÐbà˜!ÒÐØ>ˆMØ\Ð\Ð\ÐØ Ð"2°D¸$Ð>Ð>Ð>Ð>Ð>Ð>Ð>à;ˆMØTÐTÐTÐÐÐÐÐÐÐøøøøÝð 
@ð 
@ð 
@ÝŒÐLÈÐLÐLÕTXÔTaÐbÑbÔbÐbà˜!ÒÐØ>ˆMØ\Ð\Ð\ÐØ Ð"2°D¸$Ð>Ð>Ð>Ð>Ð>Ð>Ð>à;ˆMØTÐTÐTÐØ Ð"2°E¸4Ð?Ð?Ð?Ð?Ð?Ð?Ð?øøøøð
@øøøs�   Á$AI/ Â?D/G/ Ç/
I,Ç9AI'ÉI,ÉI/ ÉI'É!I,É"I/ É'I,É,I/ É/
LÉ94J?Ê-LÊ3J?Ê?LË4LÌ LÌLÌLÌLÚsystem_promptÚmessagesÚcontext_titlesÚcontext_limitÚreturnc                 ó\	  — 	 t          j        dt           j        ¦  «         t          j        dt           j        ¦  «         t          j        dt           j        ¦  «         |                      d¦  «        D ]$}t          j        d|› �t           j        ¦  «         Œ%t          j        d                     t          |¦  «        ¦  «        t           j        ¦  «         t          |¦  «        D ]ˆ\  }}|d                              ¦   «         }t          j        d|d	z   › d
|› d�t           j        ¦  «         |d                              d¦  «        D ]$}t          j        d|› �t           j        ¦  «         Œ%Œ‰t          j        dt           j        ¦  «         | |ddœ}t          j        dt           j        ¦  «         t          j        dt          j	        |d¬¦  «        › �t           j        ¦  «         t          j        dt           j        ¦  «         d}	t          |¦  «        D ]}|d         dk    r
|d         }	 nŒt          |	dt          ¦   «         | |dd||¬¦	  «	        \  }
}}}t          j        dt           j        ¦  «         |r‚|                     d|                     dd¦  «        ¦  «        }|                     d|                     dd¦  «        ¦  «        }||z   }t          j        d|› d|› d|› d �t           j        ¦  «         t          j        d!t           j        ¦  «         t          |
t          ¦  «        r"d"„ |
D ¦   «         }d                     |¦  «        }nt#          |
¦  «        }	 |                     d#¦  «        }|                     d$¦  «        }|d%k    r|d%k    r||k    r|||d	z   …         }n|}t          j        |¦  «        }d&|vrd'|d&<   d(|vrg |d(<   d)|vrg |d)<   ||||fS # t          j        $ rb}t          j        d*|› �t           j        ¬+¦  «         t          j        d,|d-d.…         › �t           j        ¬+¦  «         d/g g d0œ|||fcY d-}~S d-}~ww xY w# t0          $ rG}t          j        d1|› �t           j        ¬+¦  «         d2t#          |¦  «        › �g g d0œi d-dfcY d-}~S d-}~ww xY w)3u$  
    OdeÅ¡le chat recommendation request do LLM API s nativnÃ­m multi-turn messages.
    
    Args:
        system_prompt (str): Session-stable system prompt
        messages (list): Pole messages [{"role": "user/assistant", "content": "..."}]
        context_titles (list, optional): Seznam titulÅ¯ z Kodi knihovny pro debug
        context_limit (int, optional): Limit poÄ�tu titulÅ¯
        
    Returns:
        tuple: (response_data, usage, raw_response, latency)
        response_data je dict s klÃ­Ä�i: message, buttons, recommendations
    zP================================================================================uN   [plugin.video.milionar][AI Chat] ========== REQUEST (FORMÃ�TOVANÃ�) ==========z6[plugin.video.milionar][AI Chat] --- SYSTEM PROMPT ---r`   z![plugin.video.milionar][AI Chat] u=   [plugin.video.milionar][AI Chat] --- MESSAGES ({} zprÃ¡v) ---Úrolez"[plugin.video.milionar][AI Chat] [r^   z] ú:Úcontentz%[plugin.video.milionar][AI Chat]     T)r|   r}   Ú	json_modezI[plugin.video.milionar][AI Chat] ========== REQUEST (RAW JSON) ==========F)Úensure_asciir-   ÚuserÚrecommendation)r6   Ú	use_toolsr|   r}   r…   Úinclude_rawr~   r   z1[plugin.video.milionar][AI Chat] === RESPONSE ===Úinput_tokensÚprompt_tokensr   Úoutput_tokensÚcompletion_tokensz)[plugin.video.milionar][AI Chat] Tokens: z in / z out = z totalz<============================================================c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   r?   s     r   rB   z,send_chat_recommendation.<locals>.<listcomp>=  rC   r   re   rf   rg   Úmessageu.   OmlouvÃ¡m se, doÅ¡lo k chybÄ› ve zpracovÃ¡nÃ­.ÚbuttonsÚrecommendationsz*[plugin.video.milionar] JSON parse error: r#   z&[plugin.video.milionar] Raw response: Néô  u1   OmlouvÃ¡m se, nepodaÅ™ilo se zpracovat odpovÄ›Ä�.)r�   r‘   r’   z*[plugin.video.milionar] AI request error: zChyba komunikace s AI: )r'   r(   ÚLOGINFOÚsplitÚformatrn   Ú	enumeratero   rM   ÚdumpsÚreversedr   r   r=   r;   rK   rL   r>   rl   rm   rN   ÚJSONDecodeErrorr)   Ú
LOGWARNINGr&   )r|   r}   r~   r   ÚlineÚiÚmsgr‚   Úraw_payloadÚlast_user_msgrT   rU   Úraw_responseÚlatencyrŒ   rŽ   ÚtotalrV   rW   ru   rv   rw   Údatar    s                           r   Úsend_chat_recommendationr¥   ô   sl  € ðhåŒ��4œ<Ñ(Ô(Ð(ÝŒÐaÕcgÔcoÑpÔpÐpÝŒÐIÍ4Ì<ÑXÔXÐXà!×'Ò'¨Ñ-Ô-ð 	Oð 	OˆDÝŒHÐ?¸Ð?Ð?ÅÄÑNÔNÐNÐNÝŒÐP×WÒWÕX[Ð\dÑXeÔXeÑfÔfÕhlÔhtÑuÔuÐuÝ Ñ)Ô)ð 	Wð 	W‰FˆAˆsØ�v”;×$Ò$Ñ&Ô&ˆDÝŒHÐH¸!¸A¹#ÐHÐHÀÐHÐHÐHÍ$Ì,ÑWÔWÐWà˜Iœ×,Ò,¨TÑ2Ô2ð Wð W�Ý”ÐGÀÐGÐGÍÌÑVÔVÐVÐVðWåŒ��4œ<Ñ(Ô(Ð(ð +Ø Øð
ð 
ˆõ
 	ŒÐ\Õ^bÔ^jÑkÔkÐkÝŒÐbµT´ZÀÐZ_Ð5`Ñ5`Ô5`ÐbÐbÕdhÔdpÑqÔqÐqÝŒ��4œ<Ñ(Ô(Ð(ð
 ˆÝ˜HÑ%Ô%ð 	ð 	ˆCØ�6Œ{˜fÒ$Ð$Ø # I¤�Ø�ð %õ 7BØØ'Ý,Ñ.Ô.Ø'ØØØØ)Ø'ð
7
ñ 
7
ô 
7
Ñ3ˆ�u˜l¨Gõ 	ŒÐDÅdÄlÑSÔSÐSØð 	MØ!ŸIšI n°e·i²iÀÐQRÑ6SÔ6SÑTÔTˆMØ %§	¢	¨/¸5¿9º9ÐEXÐZ[Ñ;\Ô;\Ñ ]Ô ]ÐØ!Ð$5Ñ5ˆEÝŒHÐ}ÀÐ}Ð}ÐVgÐ}Ð}ÐpuÐ}Ð}Ð}õ  @Dô  @Lñ  Mô  Mð  MÝŒ��4œ<Ñ(Ô(Ð(õ �m¥TÑ*Ô*ð 	.ØoÐoÐanÐoÑoÔoˆEØŸ7š7 5™>œ>ˆLˆLå˜}Ñ-Ô-ˆLð	,Ø ×%Ò% cÑ*Ô*ˆEØ×$Ò$ SÑ)Ô)ˆCØ˜Š{ˆ{˜s bšy˜y¨S°5ª[¨[Ø'¨¨c°!©e¨Ô4��à'�å”:˜hÑ'Ô'ˆDð  Ð$Ð$Ø"R��Y‘Ø Ð$Ð$Ø"$��Y‘Ø ¨Ð,Ð,Ø*,�Ð&Ñ'ð ˜ ¨gÐ5Ð5øåÔ#ð 	,ð 	,ð 	,ÝŒHÐEÀ!ÐEÐEÍTÌ]Ð[Ñ[Ô[Ð[ÝŒHÐR¸lÈ4ÈCÈ4Ô>PÐRÐRÕZ^ÔZiÐjÑjÔjÐjàNØØ#%ðð ð
 �l Gð,ð ,ð ,ð ,ð ,ð ,ð ,øøøøð	,øøøøõ ð ð ð ÝŒÐA¸aÐAÐAÍÌÐWÑWÔWÐWà9µ°Q±´Ð9Ð9ØØ!ð
ð 
ð
 ˆt�Qðð 	ð 	ð 	ð 	ð 	ð 	øøøøðøøøsJ   ‚M"Q Í%B O& Ï&QÏ5AQÑQÑQ ÑQÑQ Ñ
R+Ñ$<R&Ò R+Ò&R+c           	      ó  — t          j        dt           j        ¦  «         t          j        d                     t	          |¦  «        ¦  «        t           j        ¦  «         t          |¦  «        D ]f\  }}|d                              ¦   «         }|d         dd…         }t          j        d                     |dz   ||¦  «        t           j        ¦  «         Œgd	}t          |¦  «        D ]}|d         d
k    r
|d         } nŒt          |d|d| |d¬¦  «        \  }}	t          |¦  «        }
t          j        d                     |
dd…         ¦  «        t           j        ¦  «         t          j        |
¦  «        }|	r‡|	                     d|	                     dd¦  «        ¦  «        }|	                     d|	                     dd¦  «        ¦  «        }t          j        d                     ||¦  «        t           j        ¦  «         ||	fS )a  Send a continuous chat inference for the Millionaire game.

    Uses send_prompt with multi-turn messages and JSON mode.
    Parses the JSON response and tracks usage.

    Args:
        system_prompt (str): Fixed system prompt for the entire game session.
        messages (list): Full chat history [{"role": "user/assistant", "content": "..."}].
        session_id (str): Optional game session ID for cumulative tracking.

    Returns:
        tuple: (parsed_json_dict, usage) or raises Exception on failure.
    z9[plugin.video.milionar][Millionaire Chat] --- REQUEST ---u=   [plugin.video.milionar][Millionaire Chat] Messages: {} zprÃ¡vr‚   r„   NéÈ   z5[plugin.video.milionar][Millionaire Chat] [{}] {}: {}r^   r-   r‡   Úmillionaire_chatFT)r6   Ú
session_idr‰   r|   r}   r…   zB[plugin.video.milionar][Millionaire Chat] Response (first 500): {}r“   r‹   rŒ   r   r�   rŽ   z@[plugin.video.milionar][Millionaire Chat] Tokens: {} in / {} out)r'   r(   r”   r–   rn   r—   ro   r™   r   Ú_clean_ai_responserM   rN   r=   )r|   r}   r©   r�   rž   r‚   Úcontent_previewr    rT   rU   r   r¤   rŒ   rŽ   s                 r   Úgenerate_millionaire_chatr¬   q  s  € õ 	„HÐHÍ$Ì,ÑWÔWÐWÝ„HÐL×SÒSÕTWÐX`ÑTaÔTaÑbÔbÕdhÔdpÑqÔqÐqÝ˜HÑ%Ô%ð }ð }‰ˆˆ3Ø�6Œ{× Ò Ñ"Ô"ˆØ˜iœ.¨¨#¨Ô.ˆÝŒÐH×OÒOÐPQÐTUÑPUÐW[Ð]lÑmÔmÕosÔo{Ñ|Ô|Ð|Ð|ð €MÝ˜Ñ!Ô!ð ð ˆØˆvŒ;˜&Ò Ð Ø 	œNˆMØˆEð !õ 'ØØ%ØØØ#ØØðñ ô Ñ€M�5õ (¨Ñ6Ô6€NÝ„HÐQ×XÒXÐYgÐhlÐilÐhlÔYmÑnÔnÕptÔp|Ñ}Ô}Ð}åŒ:�nÑ%Ô%€Dð ð LØŸ	š	 .°%·)²)¸OÈQÑ2OÔ2OÑPÔPˆØ!ŸIšI o°u·y²yÐATÐVWÑ7XÔ7XÑYÔYÐÝŒÐS×ZÒZÐ[hÐj{Ñ|Ô|õ  Cô  Kñ  	Lô  	Lð  	Là�ˆ;Ðr   Úmoviec
                 óB  — | dk    r*d}
d|› �}|r|d|› d�z  }|r|r|d|d›d|d›d	�z  }d
}n<d}n9| dk    r
d}
d|› �}d}n)| dk    r
d}
d|› �}d}n| dk    r
d}
d|› �}d}n	d}
d|› �}d}d|› �}|r|d|dd…         › �z  }|r|d|› �z  }d }t          |¦  «        d!k    r&d"|d#         › d$|d%         › d&|d'         › d(|d)         › �}d*|
› d+|› d,|› d-|› |› d.|› d/|
› d0|
› d1�}	 t          |d2|	¬3¦  «        \  }}t          |t          ¦  «        r4d4„ |D ¦   «         }d                      |¦  «                             ¦   «         }n!t          |¦  «                             ¦   «         }|r|ndS # t          $ r.}t          j	        d5|› �t          j
        ¬6¦  «         Y d}~dS d}~ww xY w)7u±  
    Generuje osobnÃ­ radu od reÅ¾isÃ©ra/tvÅ¯rce k aktuÃ¡lnÃ­ otÃ¡zce v millionaire hÅ™e.
    
    Args:
        media_type (str): "movie" nebo "series"
        title (str): NÃ¡zev filmu/seriÃ¡lu
        question (str): Text aktuÃ¡lnÃ­ otÃ¡zky
        options (list): Seznam 4 moÅ¾nostÃ­ odpovÄ›dÃ­ [A, B, C, D]
        plot (str): DÄ›j filmu/epizody (volitelnÃ©)
        genre (str): Å½Ã¡nr (volitelnÃ©)
        episode_title (str): NÃ¡zev epizody (jen pro seriÃ¡ly)
        season_number (int): ÄŒÃ­slo sezÃ³ny (jen pro seriÃ¡ly)
        episode_number (int): ÄŒÃ­slo epizody (jen pro seriÃ¡ly)
    
    Returns:
        str: OsobnÃ­ rada od reÅ¾isÃ©ra/tvÅ¯rce nebo None pÅ™i chybÄ›
    Úseriesu   tvÅ¯rce seriÃ¡luu	   seriÃ¡lu u   , konkrÃ©tnÄ› epizody 'ú'z (SÚ02dÚEú)uQ   OdpovÄ›z jako tvÅ¯rce, kterÃ½ znÃ¡ kaÅ¾dou scÃ©nu a kaÅ¾dÃ½ detail tÃ©to epizody.uT   OdpovÄ›z jako tvÅ¯rce, kterÃ½ znÃ¡ celÃ½ seriÃ¡l, vÅ¡echny postavy a dÄ›jovÃ© linky.ÚactorÚhereczherce uQ   OdpovÄ›z jako herec, kterÃ½ znÃ¡ svÅ¯j Å¾ivotopis, kariÃ©ru a vÅ¡echny svÃ© role.Údirectoru	   reÅ¾isÃ©ru   reÅ¾isÃ©ra uV   OdpovÄ›z jako reÅ¾isÃ©r, kterÃ½ znÃ¡ svÅ¯j Å¾ivotopis, kariÃ©ru a vÅ¡echny svÃ© filmy.Úcreatoru   tvÅ¯rceu   tvÅ¯rce uW   OdpovÄ›z jako tvÅ¯rce, kterÃ½ znÃ¡ svÅ¯j Å¾ivotopis, kariÃ©ru a vÅ¡echny svÃ© seriÃ¡ly.u   reÅ¾isÃ©ra filmuzfilmu uR   OdpovÄ›z jako reÅ¾isÃ©r, kterÃ½ znÃ¡ kaÅ¾dou scÃ©nu a kaÅ¾dÃ½ detail tohoto filmu.zKontext r1   Nr2   r0   r-   rb   u   
MOÅ½NOSTI ODPOVÄšDÃ�:
A) r   z
B) r^   z
C) ri   z
D) rJ   zJsi ú u.   . HrÃ¡Ä� se tÄ› ptÃ¡ na tip k tÃ©to otÃ¡zce:

u   

OTÃ�ZKA: z

u×   

Poskytni krÃ¡tkÃ½, uÅ¾iteÄ�nÃ½ tip (maximÃ¡lnÄ› 2-3 vÄ›ty), kterÃ½:
- NeodhalÃ­ pÅ™Ã­mo sprÃ¡vnou odpovÄ›Ä�
- NasmÄ›ruje k sprÃ¡vnÃ©mu uvaÅ¾ovÃ¡nÃ­ nebo poskytne relevantnÃ­ kontext
- PouÅ¾ije tvoje znalosti jako z
- Bude v charakteru a stylu uW   
- PomÅ¯Å¾e hrÃ¡Ä�i lÃ©pe se rozhodnout

OdpovÄ›z POUZE tipem, bez Ãºvodu Ä�i zÃ¡vÄ›ru.Údirector_tip)r6   r©   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   r?   s     r   rB   z)generate_director_tip.<locals>.<listcomp>   rC   r   z7[plugin.video.milionar] Error generating director tip: r#   )rn   r   r;   rK   rL   Ústripr>   r&   r'   r(   r)   )Ú
media_typeÚtitleÚquestionÚoptionsÚplotÚgenreÚepisode_titleÚseason_numberÚepisode_numberr©   Údirector_rolers   Úcharacter_noteÚcontext_infoÚoptions_textrS   rT   rU   rV   Útip_textr    s                        r   Úgenerate_director_tiprÊ   «  s  € ð$ �XÒÐØ*ˆØ%˜eÐ%Ð%ˆØð 	tØÐA°ÐAÐAÐAÑAˆGØð K ð KØÐJ ÐJÐJÐJ°^ÐJÐJÐJÐJÑJ�ØpˆNˆNàsˆNˆNØ	�wÒ	Ð	ØˆØ"˜5Ð"Ð"ˆØlˆˆØ	�zÒ	!Ð	!Ø#ˆØ' Ð'Ð'ˆØqˆˆØ	�yÒ	 Ð	 Ø!ˆØ$˜UÐ$Ð$ˆØrˆˆà*ˆØ"˜5Ð"Ð"ˆØmˆð (˜gÐ'Ð'€LØð 0ØÐ/ 4¨¨¨¤:Ð/Ð/Ñ/ˆØð -ØÐ, UÐ,Ð,Ñ,ˆð €LÝ
ˆ7�|„|�qÒÐðàˆA„Jðð ð ˆA„Jðð ð ˆA„Jð	ð ð
 ˆA„Jðð ˆð2�mð 2ð 2 gð 2ð 2àð2ð 2ð ð	2ð !ð	2ð 2ð ð2ð 2ð !.ð2ð 2ð +ð2ð 2ð 2€Fð"å*¨6¸nÐYcÐdÑdÔdÑˆ�uõ �m¥TÑ*Ô*ð 	2ØoÐoÐanÐoÑoÔoˆEØ—w’w˜u‘~”~×+Ò+Ñ-Ô-ˆHˆHå˜=Ñ)Ô)×/Ò/Ñ1Ô1ˆHà#Ð-ˆxˆx¨Ð-øåð ð ð ÝŒÐNÈ1ÐNÐNÕVZÔVcÐdÑdÔdÐdØˆtˆtˆtˆtˆtøøøøðøøøs   Ã!BE& Å&
FÅ0#FÆFrc   c                 ó`  — g d¢}| dk    r|rDd|› d|› d|› d|› d|› d|› d	|› d
|› d|› d|r
|dd…         nd› dd                      |¦  «        › d�}	nqd|› d|› d|› d|r|nd› d|r
|dd…         nd› dd                      |¦  «        › d�}	n8d|› d|› d|› d|r|nd› d|r
|dd…         nd› dd                      |¦  «        › d�}		 t          |	d ¬!¦  «        \  }
}t          |
t          ¦  «        r"d"„ |
D ¦   «         }d#                      |¦  «        }nt	          |
¦  «        }	 |                     d$¦  «        }|                     d%¦  «        }|d&k    r|d&k    r||k    r|||d'z   …         }n|}t          j        |¦  «        }| 	                    d(g ¦  «        }t          |¦  «        |k    r"t          d)|› d*t          |¦  «        › �¦  «        ‚g }t          |¦  «        D ]ó\  }}| 	                    d+d#¦  «        }| 	                    d,i ¦  «        }| 	                    d-d.¦  «        }| 	                    d.d#¦  «        | 	                    d/d#¦  «        | 	                    d0d#¦  «        g}d1d'd2d3œ 	                    |                     ¦   «         d1¦  «        }|rt          |¦  «        st          d4|d'z   › �¦  «        ‚|                     |||d5œ¦  «         Œô||fS # t          j        $ r7}t#          j        d6|› �t"          j        ¬7¦  «         t          d8¦  «        ‚d}~ww xY w# t(          $ rˆ}t#          j        d9|› �t"          j        ¬7¦  «         g }t+          |¦  «        D ]E}| dk    rd:|d'z   › d;|› d<|› �}d=d>d?g}nd:|d'z   › d@|› �}d=d>d?g}|                     ||d1d5œ¦  «         ŒF|dfcY d}~S d}~ww xY w)Au–  
    Generuje vÅ¡ech 5 kvÃ­zovÃ½ch otÃ¡zek najednou pro prevenci opakovÃ¡nÃ­.
    
    Args:
        media_type (str): "movie" nebo "series"
        title (str): NÃ¡zev filmu/seriÃ¡lu
        plot (str): DÄ›j filmu/epizody (volitelnÃ©)
        genre (str): Å½Ã¡nr (volitelnÃ©)
        episode_title (str): NÃ¡zev epizody (jen pro seriÃ¡ly)
        season_number (int): ÄŒÃ­slo sezÃ³ny (jen pro seriÃ¡ly)
        episode_number (int): ÄŒÃ­slo epizody (jen pro seriÃ¡ly)
        total_questions (int): CelkovÃ½ poÄ�et otÃ¡zek (default 5)
    
    Returns:
        tuple: (list_of_questions, usage) kde list_of_questions obsahuje dictionary pro kaÅ¾dou otÃ¡zku
    )Útriviau   dÄ›jÚpostavyÚherciu   reÅ¾ieÚprodukcer¯   u)   Jsi tvÅ¯rce televiznÃ­ho kvÃ­zu. VytvoÅ™ u+    rÅ¯znÃ½ch kvÃ­zovÃ½ch otÃ¡zek o seriÃ¡lu 'u   ' specificky o epizodÄ› 'z' (Sr²   u   ).

KONTEXT EPIZODY:
SeriÃ¡l: z

Epizoda: u
   
SezÃ³na: z, Epizoda: u   
DÄ›j epizody: Nr§   u2   VyuÅ¾ij svÃ© znalosti o tÃ©to konkrÃ©tnÃ­ epizodÄ›uÍ   

KRITICKÃ‰ INSTRUKCE:
1. VyuÅ¾ij VÅ ECHNY svÃ© znalosti o TÃ‰TO KONKRÃ‰TNÃ� EPIZODÄš (ne celÃ©m seriÃ¡lu)
2. KaÅ¾dÃ¡ otÃ¡zka musÃ­ bÃ½t z JINÃ‰ kategorie nebo aspektu epizody
3. Pokryj rÅ¯znÃ© kategorie: ú, uê  
4. Å½Ã¡dnÃ© dvÄ› otÃ¡zky se nesmÃ­ opakovat ani podobat
5. OtÃ¡zky aÅ¥ testujÃ­ skuteÄ�nÃ© znalosti tÃ©to epizody
6. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti odpovÄ›di (A, B, C)
7. Pouze JEDNA odpovÄ›Ä� je sprÃ¡vnÃ¡ u kaÅ¾dÃ© otÃ¡zky
8. OstatnÃ­ odpovÄ›di aÅ¥ jsou vÄ›rohodnÃ© ale Å¡patnÃ©
9. StupÅˆuj obtÃ­Å¾nost: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "questions": [
    {
      "question": "Text otÃ¡zky 1",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    },
    {
      "question": "Text otÃ¡zky 2",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    }
    // ... dalÅ¡Ã­ otÃ¡zky aÅ¾ do 5
  ]
}u   '.

KONTEXT SERIÃ�LU:
SeriÃ¡l: r0   u   VyuÅ¾ij svÃ© znalostir1   u&   VyuÅ¾ij svÃ© znalosti o tomto seriÃ¡luu­   

KRITICKÃ‰ INSTRUKCE:
1. VyuÅ¾ij VÅ ECHNY svÃ© znalosti o tomto seriÃ¡lu
2. KaÅ¾dÃ¡ otÃ¡zka musÃ­ bÃ½t z JINÃ‰ kategorie nebo aspektu seriÃ¡lu
3. Pokryj rÅ¯znÃ© kategorie: uç  
4. Å½Ã¡dnÃ© dvÄ› otÃ¡zky se nesmÃ­ opakovat ani podobat
5. OtÃ¡zky aÅ¥ testujÃ­ skuteÄ�nÃ© znalosti o seriÃ¡lu
6. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti odpovÄ›di (A, B, C)
7. Pouze JEDNA odpovÄ›Ä� je sprÃ¡vnÃ¡ u kaÅ¾dÃ© otÃ¡zky
8. OstatnÃ­ odpovÄ›di aÅ¥ jsou vÄ›rohodnÃ© ale Å¡patnÃ©
9. StupÅˆuj obtÃ­Å¾nost: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "questions": [
    {
      "question": "Text otÃ¡zky 1",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    },
    {
      "question": "Text otÃ¡zky 2",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    }
    // ... dalÅ¡Ã­ otÃ¡zky aÅ¾ do 5
  ]
}u'   Jsi tvÅ¯rce filmovÃ©ho kvÃ­zu. VytvoÅ™ u(    rÅ¯znÃ½ch kvÃ­zovÃ½ch otÃ¡zek o filmu 'r/   r3   u§   

KRITICKÃ‰ INSTRUKCE:
1. VyuÅ¾ij VÅ ECHNY svÃ© znalosti o tomto filmu
2. KaÅ¾dÃ¡ otÃ¡zka musÃ­ bÃ½t z JINÃ‰ kategorie nebo aspektu filmu
3. Pokryj rÅ¯znÃ© kategorie: uä  
4. Å½Ã¡dnÃ© dvÄ› otÃ¡zky se nesmÃ­ opakovat ani podobat
5. OtÃ¡zky aÅ¥ testujÃ­ skuteÄ�nÃ© znalosti o filmu
6. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti odpovÄ›di (A, B, C)
7. Pouze JEDNA odpovÄ›Ä� je sprÃ¡vnÃ¡ u kaÅ¾dÃ© otÃ¡zky
8. OstatnÃ­ odpovÄ›di aÅ¥ jsou vÄ›rohodnÃ© ale Å¡patnÃ©
9. StupÅˆuj obtÃ­Å¾nost: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡

FORMÃ�T ODPOVÄšDI MUSÃ� BÃ�T PÅ˜ESNÄš TAKTO:
{
  "questions": [
    {
      "question": "Text otÃ¡zky 1",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    },
    {
      "question": "Text otÃ¡zky 2",
      "options": {"A": "MoÅ¾nost A", "B": "MoÅ¾nost B", "C": "MoÅ¾nost C"},
      "correct": "A|B|C"
    }
    // ... dalÅ¡Ã­ otÃ¡zky aÅ¾ do 5
  ]
}Úquizr5   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   r?   s     r   rB   z'generate_quiz_batch.<locals>.<listcomp>–  rC   r   r-   re   rf   rg   r^   Ú	questionsu   OÄ�ekÃ¡vÃ¡no u    otÃ¡zek, zÃ­skÃ¡no r¾   r¿   ÚcorrectÚAÚBÚCr   ri   ©rÕ   rÖ   r×   u   NeplatnÃ¡ struktura otÃ¡zky ©r¾   r¿   Úcorrect_indexzL[plugin.video.milionar] Error parsing JSON response in generate_quiz_batch: r#   u    NeplatnÃ½ JSON formÃ¡t odpovÄ›diz6[plugin.video.milionar] Error in generate_quiz_batch: õ   ObecnÃ¡ otÃ¡zka u    o epizodÄ› 'u   ' ze seriÃ¡lu u
   MoÅ¾nost Au
   MoÅ¾nost Bu
   MoÅ¾nost Cz	 o filmu )rL   r   r;   rK   r>   rl   rm   rM   rN   r=   rn   r   r—   ro   rO   Úappendrš   r'   r(   r)   r&   Úrange)r¼   r½   rÀ   rÁ   rÂ   rÃ   rÄ   Útotal_questionsÚ
categoriesrS   rT   rU   rV   rW   ru   rv   rw   rX   Úquestions_datarÓ   r�   Úq_dataÚquestion_textÚoptions_dictÚcorrect_answerr¿   rÚ   r    Úfallback_questionÚfallback_optionss                                 r   Úgenerate_quiz_batchrç     s×  € ð" NÐMÐM€Jà�XÒÐØð J	ð!¸Oð !ð !Ðx}ð !ð !ð  Yfð !ð !ð  lyð !ð !ð  |Jð !ð !à!ð!ð !ð *ð!ð !ð *ð	!ð !ð 7Eð	!ð !ð
 04Ð!m  d s d¤ Ð9mð!ð !ð 15·	²	¸*Ñ0EÔ0Eð!ð !ð !ð ˆFðN ¸Oð  ð  Ðx}ð  ð  à!ð ð  ð %*ÐF˜5˜5Ð/Fð ð  ð (,ÐY˜˜d˜s˜dœ˜Ð1Yð	 ð  ð 15·	²	¸*Ñ0EÔ0Eð ð  ð  ð ˆFðL °oð  ð  Ðotð  ð  àð ð  ð !&ÐB�u�uÐ+Bð ð  ð $(ÐR�T˜$˜3˜$”Z�ZÐ-Rð	 ð  ð -1¯IªI°jÑ,AÔ,Að ð  ð  ð 	ðHMå*¨6¸fÐEÑEÔEÑˆ�uõ �m¥TÑ*Ô*ð 	.ØoÐoÐanÐoÑoÔoˆEØŸ7š7 5™>œ>ˆLˆLå˜}Ñ-Ô-ˆLð/	Aà ×%Ò% cÑ*Ô*ˆEØ×$Ò$ SÑ)Ô)ˆCØ˜Š{ˆ{˜s bšy˜y¨S°5ª[¨[Ø'¨¨c°!©e¨Ô4��à'�õ !œJ xÑ0Ô0ˆMØ*×.Ò.¨{¸BÑ?Ô?ˆNå�>Ñ"Ô" oÒ5Ð5Ý Ð!k°Ð!kÐ!kÕVYÐZhÑViÔViÐ!kÐ!kÑlÔlÐlð ˆIÝ& ~Ñ6Ô6ð ð ‘	��6Ø &§
¢
¨:°rÑ :Ô :�Ø%Ÿzšz¨)°RÑ8Ô8�Ø!'§¢¨I°sÑ!;Ô!;�ð !×$Ò$ S¨"Ñ-Ô-Ø ×$Ò$ S¨"Ñ-Ô-Ø ×$Ò$ S¨"Ñ-Ô-ð�ð '(¨a°aÐ 8Ð 8× <Ò <¸^×=QÒ=QÑ=SÔ=SÐUVÑ WÔ W�ð %ð K­C°©L¬Lð KÝ$Ð%IÀAÀaÁCÐ%IÐ%IÑJÔJÐJà× Ò Ø -Ø&Ø%2ð"ð "ñ ô ð ð ð ˜eÐ#Ð#øåÔ#ð 	Að 	Að 	AÝŒHÐgÐdeÐgÐgÕosÔo|Ð}Ñ}Ô}Ð}ÝÐ?Ñ@Ô@Ð@øøøøð	Aøøøøõ ð ð ð ÝŒÐMÈ!ÐMÐMÕUYÔUbÐcÑcÔcÐcàˆ	Ý�Ñ'Ô'ð 	ð 	ˆAØ˜XÒ%Ð%Ø$m°q¸±sÐ$mÐ$mÈÐ$mÐ$mÐfkÐ$mÐ$mÐ!Ø$1°=À-Ð#PÐ Ð à$L°q¸±sÐ$LÐ$LÀUÐ$LÐ$LÐ!Ø$1°=À-Ð#PÐ à×ÒØ-Ø+Ø!"ðð ñ ô ð ð ð
 ˜$ˆÐÐÐÐÐÐøøøøð#øøøs?   ÃAL ÄF3K ËLË!2LÌLÌL Ì
N-Ì%A=N(Î"N-Î(N-Ú
actor_nameÚ	actor_biorÞ   c           
      ó€  — |pg }|r dd                      |dd…         ¦  «        z   nd}|rd|dd…         › �nd}d|› d	| › d
|› |› d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }|                     d¦  «        }	|                     d¦  «        }
|	dk    r|
dk    r||	|
dz   …         n|}t          j        |¦  «        }g }|                     dg ¦  «        D ]Ä}|                     di ¦  «        }|                     dd¦  «         	                    ¦   «         }| 
                    |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        gddddœ                     |d¦  «        dœ¦  «         ŒÅ||fS # t          $ rh}t          j        d|› �t          j        ¦  «         g }t          |¦  «        D ]&}| 
                    d|dz   › d | › �g d¢ddœ¦  «         Œ'|dfcY d}~S d}~ww xY w)!u,   Generuje dÃ¡vku kvÃ­zovÃ½ch otÃ¡zek o herci.u   
ZnÃ¡mÃ© role: rÐ   Né
   r-   õ   

Å½ivotopis: é�  õ(   Jsi tvÅ¯rce filmovÃ½ch kvÃ­zÅ¯. VytvoÅ™ u    otÃ¡zek (A, B, C) o herci ú.õ_  

KRITÃ‰RIA:
1. Pokryj rÅ¯znÃ© oblasti: Å¾ivotopis, filmy, ocenÄ›nÃ­, zajÃ­mavosti, spoluprÃ¡ce.
2. ObtÃ­Å¾nost stupÅˆuj: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡.
3. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti (A, B, C) a jedna sprÃ¡vnÃ¡.
4. Å½Ã¡dnÃ© opakovÃ¡nÃ­ tÃ©mat.

FORMÃ�T:
{
  "questions": [{"question": "", "options": {"A":"","B":"","C":""}, "correct":"A"}]
}
rÑ   r5   c                 óœ   — g | ]I}t          |t          ¦  «        r#t          |                     d |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   ©r;   r<   r>   r=   ©r@   Úrs     r   rB   z-generate_actor_quiz_batch.<locals>.<listcomp>ù  óJ   € ÐcÐcÐcÐYZµZÀÅ4Ñ5HÔ5HÐT�C §¢ f¨aÑ 0Ô 0Ñ1Ô1Ð1ÍcÐRSÉfÌfÐcÐcÐcr   re   rf   rg   r^   rÓ   r¿   rÔ   rÕ   r¾   rÖ   r×   r   ri   rØ   rÙ   z*[plugin.video.milionar] actor quiz error: rÛ   z	 o herci ©rL   r   r;   rK   rl   rm   rM   rN   r=   ro   rÜ   r&   r'   r(   r)   rÝ   )rè   ré   Ú	known_forrÞ   Ú
roles_infoÚbio_inforS   ÚresprU   ru   rv   rw   r¤   rÓ   ÚqÚoptsÚcorrect_letterr    r�   s                      r   Úgenerate_actor_quiz_batchrþ   ã  sÈ  € à�˜R€IØCLÐTÐ# d§i¢i°	¸#¸2¸#´Ñ&?Ô&?Ñ?Ð?ÐRT€JØ7@ÐHÐ3 )¨D¨S¨D¤/Ð3Ð3Ð3Àb€Hð¸/ð ð Ðfpð ð Ðs{ð ð  ~Hð ð ð €FðÝ! &°VÐ<Ñ<Ô<‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDØ—	’	˜#‘”ˆ d§j¢j°¡o¤o Ø(-¨rª	¨	°c¸2²g°g�4˜˜c !™e˜Ô$Ð$À4ˆÝŒz˜(Ñ#Ô#ˆØˆ	Ø—’˜+ rÑ*Ô*ð 	ð 	ˆAØ—5’5˜ BÑ'Ô'ˆDØŸUšU 9¨cÑ2Ô2×8Ò8Ñ:Ô:ˆNØ×ÒØŸEšE *¨RÑ0Ô0Ø ŸHšH S¨Ñ,Ô,¨d¯hªh°s¸2Ñ.>Ô.>ÀÇÂÈÈRÑ@PÔ@PÐQØ&'¨A°!Ð!4Ð!4×!8Ò!8¸ÈÑ!JÔ!Jðð ñ ô ð ð ð
 ˜%ÐÐøÝð ð ð ÝŒÐA¸aÐAÐAÅ4Ä=ÑQÔQÐQà
ˆÝ�Ñ'Ô'ð 	{ð 	{ˆAØ�HŠHÐ!N°A°a±CÐ!NÐ!NÀ*Ð!NÐ!NÐYfÐYfÐYfÐwxÐyÐyÑzÔzÐzÐzØ�$ˆwˆˆˆˆˆˆøøøøðøøøó    Á	FG Ç
H=ÇAH8È2H=È8H=c                 óà  — |pg }|rd                      |d d…         ¦  «        nd}d| › d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d	„ |D ¦   «         ¦  «        }t	          j        ||                     d
¦  «        |                     d¦  «        dz   …         ¦  «        }|                     dd¦  «        }|                     di ¦  «        }	|	                     dd¦  «        |	                     dd¦  «        |	                     dd¦  «        g}
||
|fS # t          $ r7}t          j        d|› �t          j        ¦  «         d| › d�g d¢d fcY d }~S d }~ww xY w)NrÐ   rc   õ   jeho kariÃ©ryuJ   Jsi vypravÄ›Ä�. VytvoÅ™ Ãºvod interaktivnÃ­ho pÅ™Ã­bÄ›hu ze Å¾ivota herce õÚ   . HrÃ¡Ä� si vybere, zda chce hrÃ¡t obdobÃ­ A) zaÄ�Ã¡tky kariÃ©ry, B) vrchol kariÃ©ry, C) osobnÃ­ Å¾ivot. FORMÃ�T: {
  "intro": "text",
  "choices":{"a":"ZaÄ�Ã¡tky kariÃ©ry","b":"Vrchol kariÃ©ry","c":"OsobnÃ­ Å¾ivot"}
}r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z)start_actor_text_game.<locals>.<listcomp>  óH   € ÐcÐcÐcÐYZµZÀÅ4Ñ5HÔ5HÐT˜AŸEšE &­#¨a©&¬&Ñ1Ô1Ð1ÍcÐRSÉfÌfÐcÐcÐcr   re   rf   r^   rD   rE   rF   rG   rH   z5[plugin.video.milionar] start_actor_text_game error: u   PÅ™Ã­bÄ›h herce õ    zaÄ�Ã­nÃ¡...©u   ZaÄ�Ã¡tky kariÃ©ryu   Vrchol kariÃ©ryu   OsobnÃ­ Å¾ivot©rL   r   r;   rK   rM   rN   rl   rm   r=   r&   r'   r(   r)   )rè   ré   r÷   ÚrolesrS   rú   rU   r¤   rD   ÚchrE   r    s               r   Ústart_actor_text_gamer
    sŸ  € Ø�˜R€IØ(1ÐFˆD�IŠI�i   ”mÑ$Ô$Ð$°€Eð ^Ð\fð  ^ð  ^ð  ^€Fð}Ý! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ—’˜ Ñ$Ô$ˆØ�XŠX�i Ñ#Ô#ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ�g˜uÐ$Ð$øÝð }ð }ð }ÝŒÐLÈÐLÐLÍdÌmÑ\Ô\Ð\Ø; *Ð;Ð;Ð;Ð=vÐ=vÐ=vÐx|Ð|Ð|Ð|Ð|Ð|Ð|Ð|øøøøð}øøøó   ­C>D, Ä,
E-Ä6,E(Å"E-Å(E-c           	      ó>  — d                      |dd …         ¦  «        }|dk     rdnd}d| › d|› d|› d	|› d
�	}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }t	          j        ||                     d¦  «        |                     d¦  «        dz   …         ¦  «        }	|	                     dd¦  «        }
|	                     di ¦  «        }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}|dk    pd|d          	                    ¦   «         v }|
|||fS # t          $ r8}t          j        d|› �t          j        ¦  «         dg d¢|dk    d fcY d }~S d }~ww xY w)Nr`   ra   rc   õ	   pokraÄ�ujõ   dokonÄ�i pÅ™Ã­bÄ›hu   PokraÄ�uj v pÅ™Ã­bÄ›hu herce ú. Kontekst:
õ   
Volba hrÃ¡Ä�e: ú
Instrukce: õc   . Dej 3 moÅ¾nosti a),b),c). Pokud konec, volba c) = KONEC PÅ˜Ã�BÄšHU. FORMÃ�T stejnÃ½ jako dÅ™Ã­ve.r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z,continue_actor_text_game.<locals>.<listcomp>)  r  r   re   rf   r^   rh   rE   rF   rG   rH   rj   ri   z8[plugin.video.milionar] continue_actor_text_game error: õ   PÅ™Ã­bÄ›h pokraÄ�uje...©zVolba AzVolba Brk   ©rL   r   r;   rK   rM   rN   rl   rm   r=   ro   r&   r'   r(   r)   )rè   rp   rq   rr   rs   ÚphaserS   rú   rU   r¤   rh   r	  rE   Úis_endr    s                  r   Úcontinue_actor_text_gamer  "  só  € Ø�iŠi˜ b c cÔ*Ñ+Ô+€GØ& qš=˜=ˆKˆKÐ.B€Eð i¨zð  ið  iÈð  ið  iÐbmð  ið  ið  }Bð  ið  ið  i€FðiÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ�hŠh�w˜rÑ"Ô"ˆØ�8Š8�I˜bÑ!Ô!ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ˜q’.ÐD g°¸´×1AÒ1AÑ1CÔ1CÐ&CˆØ�g˜v uÐ,Ð,øÝð ið ið iÝŒÐOÈAÐOÐOÕQUÔQ^Ñ_Ô_Ð_Ø(Ð*RÐ*RÐ*RÐT_ÐabÒTbÐdhÐhÐhÐhÐhÐhÐhÐhøøøøðiøøøó   ¸D!E Å
FÅ$-FÆFÆFÚdirector_nameÚdirector_bioc           
      ó€  — |pg }|r dd                      |dd…         ¦  «        z   nd}|rd|dd…         › �nd}d|› d	| › d
|› |› d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }|                     d¦  «        }	|                     d¦  «        }
|	dk    r|
dk    r||	|
dz   …         n|}t          j        |¦  «        }g }|                     dg ¦  «        D ]Ä}|                     di ¦  «        }|                     dd¦  «         	                    ¦   «         }| 
                    |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        gddddœ                     |d¦  «        dœ¦  «         ŒÅ||fS # t          $ rh}t          j        d|› �t          j        ¦  «         g }t          |¦  «        D ]&}| 
                    d|dz   › d | › �g d¢ddœ¦  «         Œ'|dfcY d}~S d}~ww xY w)!u3   Generuje dÃ¡vku kvÃ­zovÃ½ch otÃ¡zek o reÅ¾isÃ©rovi.õ   
ZnÃ¡mÃ© filmy: rÐ   Nrë   r-   rì   rí   rî   u"    otÃ¡zek (A, B, C) o reÅ¾isÃ©rovi rï   rð   rÑ   r5   c                 óœ   — g | ]I}t          |t          ¦  «        r#t          |                     d |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   rò   ró   s     r   rB   z0generate_director_quiz_batch.<locals>.<listcomp>L  rõ   r   re   rf   rg   r^   rÓ   r¿   rÔ   rÕ   r¾   rÖ   r×   r   ri   rØ   rÙ   z-[plugin.video.milionar] director quiz error: rÛ   u    o reÅ¾isÃ©rovi rö   )r  r  r÷   rÞ   Ú
films_inforù   rS   rú   rU   ru   rv   rw   r¤   rÓ   rû   rü   rý   r    r�   s                      r   Úgenerate_director_quiz_batchr!  6  sã  € à�˜R€IØDMÐUÐ$ t§y¢y°¸3¸B¸3´Ñ'@Ô'@Ñ@Ð@ÐSU€JØ:FÐNÐ6 ,¨t°¨tÔ"4Ð6Ð6Ð6ÈB€Hð¸/ð ð Ðmzð ð ð  ~Fð ð  HRð ð ð €FðÝ! &°VÐ<Ñ<Ô<‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDØ—	’	˜#‘”ˆ d§j¢j°¡o¤o Ø(-¨rª	¨	°c¸2²g°g�4˜˜c !™e˜Ô$Ð$À4ˆÝŒz˜(Ñ#Ô#ˆØˆ	Ø—’˜+ rÑ*Ô*ð 	ð 	ˆAØ—5’5˜ BÑ'Ô'ˆDØŸUšU 9¨cÑ2Ô2×8Ò8Ñ:Ô:ˆNØ×ÒØŸEšE *¨RÑ0Ô0Ø ŸHšH S¨Ñ,Ô,¨d¯hªh°s¸2Ñ.>Ô.>ÀÇÂÈÈRÑ@PÔ@PÐQØ&'¨A°!Ð!4Ð!4×!8Ò!8¸ÈÑ!JÔ!Jðð ñ ô ð ð ð
 ˜%ÐÐøÝð ð ð ÝŒÐDÀÐDÐDÅdÄmÑTÔTÐTà
ˆÝ�Ñ'Ô'ð 	Eð 	EˆAØ�HŠHÐ!X°A°a±CÐ!XÐ!XÈÐ!XÐ!XÐcpÐcpÐcpð  BCð  Dð  Dñ  Eô  Eð  Eð  EØ�$ˆwˆˆˆˆˆˆøøøøðøøørÿ   c                 óà  — |pg }|rd                      |d d…         ¦  «        nd}d| › d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d	„ |D ¦   «         ¦  «        }t	          j        ||                     d
¦  «        |                     d¦  «        dz   …         ¦  «        }|                     dd¦  «        }|                     di ¦  «        }	|	                     dd¦  «        |	                     dd¦  «        |	                     dd¦  «        g}
||
|fS # t          $ r7}t          j        d|› �t          j        ¦  «         d| › d�g d¢d fcY d }~S d }~ww xY w)NrÐ   rc   r  uO   Jsi vypravÄ›Ä�. VytvoÅ™ Ãºvod interaktivnÃ­ho pÅ™Ã­bÄ›hu ze Å¾ivota reÅ¾isÃ©ra r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z,start_director_text_game.<locals>.<listcomp>k  r  r   re   rf   r^   rD   rE   rF   rG   rH   z8[plugin.video.milionar] start_director_text_game error: u   PÅ™Ã­bÄ›h reÅ¾isÃ©ra r  r  r  )r  r  r÷   ÚfilmsrS   rú   rU   r¤   rD   r	  rE   r    s               r   Ústart_director_text_gamer%  d  sº  € Ø�˜R€IØ(1ÐFˆD�IŠI�i   ”mÑ$Ô$Ð$°€Eð fÐanð  fð  fð  f€FðEÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ—’˜ Ñ$Ô$ˆØ�XŠX�i Ñ#Ô#ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ�g˜uÐ$Ð$øÝð Eð Eð EÝŒÐOÈAÐOÐOÕQUÔQ^Ñ_Ô_Ð_ØC }ÐCÐCÐCÐE~ÐE~ÐE~ð  AEð  Eð  	Eð  	Eð  	Eð  	Eð  	Eð  	EøøøøðEøøør  c           	      ó>  — d                      |dd …         ¦  «        }|dk     rdnd}d| › d|› d|› d	|› d
�	}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }t	          j        ||                     d¦  «        |                     d¦  «        dz   …         ¦  «        }	|	                     dd¦  «        }
|	                     di ¦  «        }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}|dk    pd|d          	                    ¦   «         v }|
|||fS # t          $ r8}t          j        d|› �t          j        ¦  «         dg d¢|dk    d fcY d }~S d }~ww xY w)Nr`   ra   rc   r  r  u"   PokraÄ�uj v pÅ™Ã­bÄ›hu reÅ¾isÃ©ra r  r  r  r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z/continue_director_text_game.<locals>.<listcomp>|  r  r   re   rf   r^   rh   rE   rF   rG   rH   rj   ri   z;[plugin.video.milionar] continue_director_text_game error: r  r  r  )r  rp   rq   rr   rs   r  rS   rú   rU   r¤   rh   r	  rE   r  r    s                  r   Úcontinue_director_text_gamer(  u  sô  € Ø�iŠi˜ b c cÔ*Ñ+Ô+€GØ& qš=˜=ˆKˆKÐ.B€Eð q°Mð  qð  qÐPWð  qð  qÐjuð  qð  qð  EJð  qð  qð  q€FðiÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ�hŠh�w˜rÑ"Ô"ˆØ�8Š8�I˜bÑ!Ô!ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ˜q’.ÐD g°¸´×1AÒ1AÑ1CÔ1CÐ&CˆØ�g˜v uÐ,Ð,øÝð ið ið iÝŒÐRÈqÐRÐRÕTXÔTaÑbÔbÐbØ(Ð*RÐ*RÐ*RÐT_ÐabÒTbÐdhÐhÐhÐhÐhÐhÐhÐhøøøøðiøøør  Úcreator_nameÚcreator_bioc           
      ó€  — |pg }|r dd                      |dd…         ¦  «        z   nd}|rd|dd…         › �nd}d|› d	| › d
|› |› d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }|                     d¦  «        }	|                     d¦  «        }
|	dk    r|
dk    r||	|
dz   …         n|}t          j        |¦  «        }g }|                     dg ¦  «        D ]Ä}|                     di ¦  «        }|                     dd¦  «         	                    ¦   «         }| 
                    |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        gddddœ                     |d¦  «        dœ¦  «         ŒÅ||fS # t          $ rh}t          j        d|› �t          j        ¦  «         g }t          |¦  «        D ]&}| 
                    d|dz   › d | › �g d¢ddœ¦  «         Œ'|dfcY d}~S d}~ww xY w)!u.   Generuje dÃ¡vku kvÃ­zovÃ½ch otÃ¡zek o tvÅ¯rci.u   
ZnÃ¡mÃ© seriÃ¡ly: rÐ   Nrë   r-   rì   rí   u*   Jsi tvÅ¯rce televiznÃ­ch kvÃ­zÅ¯. VytvoÅ™ u'    otÃ¡zek (A, B, C) o tvÅ¯rci seriÃ¡lÅ¯ rï   uw  

KRITÃ‰RIA:
1. Pokryj rÅ¯znÃ© oblasti: Å¾ivotopis, seriÃ¡ly, ocenÄ›nÃ­, zajÃ­mavosti, spoluprÃ¡ce s herci a reÅ¾isÃ©ry.
2. ObtÃ­Å¾nost stupÅˆuj: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡.
3. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti (A, B, C) a jedna sprÃ¡vnÃ¡.
4. Å½Ã¡dnÃ© opakovÃ¡nÃ­ tÃ©mat.

FORMÃ�T:
{
  "questions": [{"question": "", "options": {"A":"","B":"","C":""}, "correct":"A"}]
}
rÑ   r5   c                 óœ   — g | ]I}t          |t          ¦  «        r#t          |                     d |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   rò   ró   s     r   rB   z/generate_creator_quiz_batch.<locals>.<listcomp>Ÿ  rõ   r   re   rf   rg   r^   rÓ   r¿   rÔ   rÕ   r¾   rÖ   r×   r   ri   rØ   rÙ   z,[plugin.video.milionar] creator quiz error: rÛ   u    o tvÅ¯rci rö   )r)  r*  r÷   rÞ   Ú
shows_inforù   rS   rú   rU   ru   rv   rw   r¤   rÓ   rû   rü   rý   r    r�   s                      r   Úgenerate_creator_quiz_batchr.  ‰  sÑ  € à�˜R€IØGPÐXÐ'¨$¯)ª)°I¸c¸r¸c´NÑ*CÔ*CÑCÐCÐVX€JØ9DÐLÐ5 +¨d¨s¨dÔ"3Ð5Ð5Ð5È"€Hð¸Oð ð ð  uAð ð ð  DLð ð  NXð ð ð €FðÝ! &°VÐ<Ñ<Ô<‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDØ—	’	˜#‘”ˆ d§j¢j°¡o¤o Ø(-¨rª	¨	°c¸2²g°g�4˜˜c !™e˜Ô$Ð$À4ˆÝŒz˜(Ñ#Ô#ˆØˆ	Ø—’˜+ rÑ*Ô*ð 	ð 	ˆAØ—5’5˜ BÑ'Ô'ˆDØŸUšU 9¨cÑ2Ô2×8Ò8Ñ:Ô:ˆNØ×ÒØŸEšE *¨RÑ0Ô0Ø ŸHšH S¨Ñ,Ô,¨d¯hªh°s¸2Ñ.>Ô.>ÀÇÂÈÈRÑ@PÔ@PÐQØ&'¨A°!Ð!4Ð!4×!8Ò!8¸ÈÑ!JÔ!Jðð ñ ô ð ð ð
 ˜%ÐÐøÝð ð ð ÝŒÐCÀÐCÐCÅTÄ]ÑSÔSÐSà
ˆÝ�Ñ'Ô'ð 	ð 	ˆAØ�HŠHÐ!R°A°a±CÐ!RÐ!RÀLÐ!RÐ!RÐ]jÐ]jÐ]jÐ{|Ð}Ð}Ñ~Ô~Ð~Ð~Ø�$ˆwˆˆˆˆˆˆøøøøðøøørÿ   c                 óà  — |pg }|rd                      |d d…         ¦  «        nd}d| › d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d	„ |D ¦   «         ¦  «        }t	          j        ||                     d
¦  «        |                     d¦  «        dz   …         ¦  «        }|                     dd¦  «        }|                     di ¦  «        }	|	                     dd¦  «        |	                     dd¦  «        |	                     dd¦  «        g}
||
|fS # t          $ r7}t          j        d|› �t          j        ¦  «         d| › d�g d¢d fcY d }~S d }~ww xY w)NrÐ   rc   r  uV   Jsi vypravÄ›Ä�. VytvoÅ™ Ãºvod interaktivnÃ­ho pÅ™Ã­bÄ›hu ze Å¾ivota tvÅ¯rce seriÃ¡lÅ¯ r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z+start_creator_text_game.<locals>.<listcomp>¾  r  r   re   rf   r^   rD   rE   rF   rG   rH   z7[plugin.video.milionar] start_creator_text_game error: u   PÅ™Ã­bÄ›h tvÅ¯rce r  r  r  )r)  r*  r÷   ÚshowsrS   rú   rU   r¤   rD   r	  rE   r    s               r   Ústart_creator_text_gamer2  ·  sº  € Ø�˜R€IØ(1ÐFˆD�IŠI�i   ”mÑ$Ô$Ð$°€Eð lÐhtð  lð  lð  l€FðAÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ—’˜ Ñ$Ô$ˆØ�XŠX�i Ñ#Ô#ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ�g˜uÐ$Ð$øÝð Að Að AÝŒÐNÈ1ÐNÐNÕPTÔP]Ñ^Ô^Ð^Ø? LÐ?Ð?Ð?ÐAzÐAzÐAzð  }Að  Að  	Að  	Að  	Að  	Að  	Að  	AøøøøðAøøør  c           	      ó>  — d                      |dd …         ¦  «        }|dk     rdnd}d| › d|› d|› d	|› d
�	}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }t	          j        ||                     d¦  «        |                     d¦  «        dz   …         ¦  «        }	|	                     dd¦  «        }
|	                     di ¦  «        }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}|dk    pd|d          	                    ¦   «         v }|
|||fS # t          $ r8}t          j        d|› �t          j        ¦  «         dg d¢|dk    d fcY d }~S d }~ww xY w)Nr`   ra   rc   r  r  u)   PokraÄ�uj v pÅ™Ã­bÄ›hu tvÅ¯rce seriÃ¡lÅ¯ r  r  r  r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z.continue_creator_text_game.<locals>.<listcomp>Ï  r  r   re   rf   r^   rh   rE   rF   rG   rH   rj   ri   z:[plugin.video.milionar] continue_creator_text_game error: r  r  r  )r)  rp   rq   rr   rs   r  rS   rú   rU   r¤   rh   r	  rE   r  r    s                  r   Úcontinue_creator_text_gamer5  È  sô  € Ø�iŠi˜ b c cÔ*Ñ+Ô+€GØ& qš=˜=ˆKˆKÐ.B€Eð w¸<ð  wð  wÐV]ð  wð  wÐp{ð  wð  wð  KPð  wð  wð  w€FðiÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ�hŠh�w˜rÑ"Ô"ˆØ�8Š8�I˜bÑ!Ô!ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ˜q’.ÐD g°¸´×1AÒ1AÑ1CÔ1CÐ&CˆØ�g˜v uÐ,Ð,øÝð ið ið iÝŒÐQÈaÐQÐQÕSWÔS`ÑaÔaÐaØ(Ð*RÐ*RÐ*RÐT_ÐabÒTbÐdhÐhÐhÐhÐhÐhÐhÐhøøøøðiøøør  Úwriter_nameÚ
writer_bioc           
      ó€  — |pg }|r dd                      |dd…         ¦  «        z   nd}|rd|dd…         › �nd}d|› d	| › d
|› |› d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }|                     d¦  «        }	|                     d¦  «        }
|	dk    r|
dk    r||	|
dz   …         n|}t          j        |¦  «        }g }|                     dg ¦  «        D ]Ä}|                     di ¦  «        }|                     dd¦  «         	                    ¦   «         }| 
                    |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        |                     dd¦  «        gddddœ                     |d¦  «        dœ¦  «         ŒÅ||fS # t          $ rh}t          j        d|› �t          j        ¦  «         g }t          |¦  «        D ]&}| 
                    d|dz   › d | › �g d¢ddœ¦  «         Œ'|dfcY d}~S d}~ww xY w)!u5   Generuje dÃ¡vku kvÃ­zovÃ½ch otÃ¡zek o scÃ©nÃ¡ristovi.r  rÐ   Nrë   r-   rì   rí   rî   u$    otÃ¡zek (A, B, C) o scÃ©nÃ¡ristovi rï   ut  

KRITÃ‰RIA:
1. Pokryj rÅ¯znÃ© oblasti: Å¾ivotopis, filmy, ocenÄ›nÃ­, zajÃ­mavosti, spoluprÃ¡ce s reÅ¾isÃ©ry a herci.
2. ObtÃ­Å¾nost stupÅˆuj: 1-2 lehkÃ©, 3-4 stÅ™ednÃ­, 5 tÄ›Å¾kÃ¡.
3. KaÅ¾dÃ¡ otÃ¡zka 3 moÅ¾nosti (A, B, C) a jedna sprÃ¡vnÃ¡.
4. Å½Ã¡dnÃ© opakovÃ¡nÃ­ tÃ©mat.

FORMÃ�T:
{
  "questions": [{"question": "", "options": {"A":"","B":"","C":""}, "correct":"A"}]
}
rÑ   r5   c                 óœ   — g | ]I}t          |t          ¦  «        r#t          |                     d |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   rò   ró   s     r   rB   z.generate_writer_quiz_batch.<locals>.<listcomp>ò  rõ   r   re   rf   rg   r^   rÓ   r¿   rÔ   rÕ   r¾   rÖ   r×   r   ri   rØ   rÙ   z+[plugin.video.milionar] writer quiz error: rÛ   u    o scÃ©nÃ¡ristovi rö   )r6  r7  r÷   rÞ   Úmovies_inforù   rS   rú   rU   ru   rv   rw   r¤   rÓ   rû   rü   rý   r    r�   s                      r   Úgenerate_writer_quiz_batchr;  Ü  sã  € à�˜R€IØENÐVÐ%¨¯	ª	°)¸C¸R¸C´.Ñ(AÔ(AÑAÐAÐTV€KØ8BÐJÐ4 *¨T¨c¨TÔ"2Ð4Ð4Ð4È€Hð¸/ð ð Ðozð ð ð  ~Fð ð  HSð ð ð €FðÝ! &°VÐ<Ñ<Ô<‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDØ—	’	˜#‘”ˆ d§j¢j°¡o¤o Ø(-¨rª	¨	°c¸2²g°g�4˜˜c !™e˜Ô$Ð$À4ˆÝŒz˜(Ñ#Ô#ˆØˆ	Ø—’˜+ rÑ*Ô*ð 	ð 	ˆAØ—5’5˜ BÑ'Ô'ˆDØŸUšU 9¨cÑ2Ô2×8Ò8Ñ:Ô:ˆNØ×ÒØŸEšE *¨RÑ0Ô0Ø ŸHšH S¨Ñ,Ô,¨d¯hªh°s¸2Ñ.>Ô.>ÀÇÂÈÈRÑ@PÔ@PÐQØ&'¨A°!Ð!4Ð!4×!8Ò!8¸ÈÑ!JÔ!Jðð ñ ô ð ð ð
 ˜%ÐÐøÝð ð ð ÝŒÐB¸qÐBÐBÅDÄMÑRÔRÐRà
ˆÝ�Ñ'Ô'ð 	Eð 	EˆAØ�HŠHÐ!X°A°a±CÐ!XÐ!XÈ;Ð!XÐ!XÐcpÐcpÐcpð  BCð  Dð  Dñ  Eô  Eð  Eð  EØ�$ˆwˆˆˆˆˆˆøøøøðøøørÿ   c                 óà  — |pg }|rd                      |d d…         ¦  «        nd}d| › d�}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d	„ |D ¦   «         ¦  «        }t	          j        ||                     d
¦  «        |                     d¦  «        dz   …         ¦  «        }|                     dd¦  «        }|                     di ¦  «        }	|	                     dd¦  «        |	                     dd¦  «        |	                     dd¦  «        g}
||
|fS # t          $ r7}t          j        d|› �t          j        ¦  «         d| › d�g d¢d fcY d }~S d }~ww xY w)NrÐ   rc   r  uQ   Jsi vypravÄ›Ä�. VytvoÅ™ Ãºvod interaktivnÃ­ho pÅ™Ã­bÄ›hu ze Å¾ivota scÃ©nÃ¡risty r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z*start_writer_text_game.<locals>.<listcomp>  r  r   re   rf   r^   rD   rE   rF   rG   rH   z6[plugin.video.milionar] start_writer_text_game error: u   PÅ™Ã­bÄ›h scÃ©nÃ¡risty r  r  r  )r6  r7  r÷   ÚmoviesrS   rú   rU   r¤   rD   r	  rE   r    s               r   Ústart_writer_text_gamer?  
  s¸  € Ø�˜R€IØ)2ÐGˆT�YŠY�y  ! ”}Ñ%Ô%Ð%¸€Fð fÐcnð  fð  fð  f€FðEÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ—’˜ Ñ$Ô$ˆØ�XŠX�i Ñ#Ô#ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ�g˜uÐ$Ð$øÝð Eð Eð EÝŒÐMÈ!ÐMÐMÍtÌ}Ñ]Ô]Ð]ØC¨ÐCÐCÐCÐE~ÐE~ÐE~ð  AEð  Eð  	Eð  	Eð  	Eð  	Eð  	Eð  	EøøøøðEøøør  c           	      ó>  — d                      |dd …         ¦  «        }|dk     rdnd}d| › d|› d|› d	|› d
�	}	 t          |d¬¦  «        \  }}t          |t          ¦  «        rd                      d„ |D ¦   «         ¦  «        }t	          j        ||                     d¦  «        |                     d¦  «        dz   …         ¦  «        }	|	                     dd¦  «        }
|	                     di ¦  «        }|                     dd¦  «        |                     dd¦  «        |                     dd¦  «        g}|dk    pd|d          	                    ¦   «         v }|
|||fS # t          $ r8}t          j        d|› �t          j        ¦  «         dg d¢|dk    d fcY d }~S d }~ww xY w)Nr`   ra   rc   r  r  u$   PokraÄ�uj v pÅ™Ã­bÄ›hu scÃ©nÃ¡risty r  r  r  r  r4   r5   r-   c                 óœ   — g | ]I}t          |t          ¦  «        r#|                     d t          |¦  «        ¦  «        nt          |¦  «        ‘ŒJS r8   r:   ró   s     r   rB   z-continue_writer_text_game.<locals>.<listcomp>"  r  r   re   rf   r^   rh   rE   rF   rG   rH   rj   ri   z9[plugin.video.milionar] continue_writer_text_game error: r  r  r  )r6  rp   rq   rr   rs   r  rS   rú   rU   r¤   rh   r	  rE   r  r    s                  r   Úcontinue_writer_text_gamerB    sô  € Ø�iŠi˜ b c cÔ*Ñ+Ô+€GØ& qš=˜=ˆKˆKÐ.B€Eð q°kð  qð  qÐPWð  qð  qÐjuð  qð  qð  EJð  qð  qð  q€FðiÝ! &°[ÐAÑAÔA‰ˆˆeÝ�d�DÑ!Ô!ð 	eØ—7’7ÐcÐcÐ^bÐcÑcÔcÑdÔdˆDÝŒz˜$˜tŸyšy¨™~œ~¨d¯jªj¸©o¬o¸aÑ.?Ð?Ô@ÑAÔAˆØ�hŠh�w˜rÑ"Ô"ˆØ�8Š8�I˜bÑ!Ô!ˆØ—’˜˜B‘” §¢¨¨B¡¤°·²¸¸B±´Ð@ˆØ˜q’.ÐD g°¸´×1AÒ1AÑ1CÔ1CÐ&CˆØ�g˜v uÐ,Ð,øÝð ið ið iÝŒÐPÈQÐPÐPÕRVÔR_Ñ`Ô`Ð`Ø(Ð*RÐ*RÐ*RÐT_ÐabÒTbÐdhÐhÐhÐhÐhÐhÐhÐhøøøøðiøøør  )r-   r-   )r^   )NN)N)r­   r-   r-   r-   r-   NNrc   )r-   Nrc   )r-   N)1rM   ÚxbmcguiÚ
xbmcpluginÚwcsr   r   r   Úwcs.ai.AIProviderr   r   Úwcs.ai.response_jsonr   rª   r'   ÚreÚrequestsÚdatetimeÚwcs.metadata.TMDbClientr	   r
   Úwcs.ui.ContextMenur   r   r   r   r!   r,   r]   r{   r>   rK   r   Útupler¥   r¬   rÊ   rç   rþ   r
  r  r!  r%  r(  r.  r2  r5  r;  r?  rB  © r   r   ú<module>rO     s  ðØ €€€Ø €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ EÐ EÐ EÐ EÐ EÐ EØ #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð ð5ð 5ð 5ð
ð ð ð
ð 
ð 
ð
ð 
ð 
ðA6ð A6ð A6ð A6ðF@ð @ð @ð @ðBvð v¨Cð v¸4ð vÐQUð vÐmpð vð  }Bð vð vð vð vðz3ð 3ð 3ð 3ðt &-°BÀÈRÐVXÐ`bÐrtð  EIð  Z^ð  koð ^ð ^ð ^ð ^ð@Rð Rð Rð Rðp*ð *¨#ð *¸#ð *Ðehð *ð *ð *ð *ð\}ð } cð }°cð }ð }ð }ð }ð"ið i¨ð ið ið ið ið(*ð *°ð *À3ð *Ðnqð *ð *ð *ð *ð\Eð E¨Cð E¸sð Eð Eð Eð Eð"ið i¨sð ið ið ið ið(*ð *¨cð *Àð *Ðknð *ð *ð *ð *ð\Að A¨#ð A¸Cð Að Að Að Að"ið i¨Sð ið ið ið ið(*ð *¨Cð *¸Sð *Ðhkð *ð *ð *ð *ð\Eð E¨ð E¸ð Eð Eð Eð Eð"ið i¨3ð ið ið ið ið ið ir   