§
   DÊçµôLƒã                   ó(  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z
 d dlmZmZ d dlmZ d dlZd dlmc mZ d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d d	l m!Z! d
„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/dS )é    N)Ú
quote_plus©ÚUI)Ú	user_dataÚutils)ÚWebshareClient©Úshow_search_dialog)Úsort_files_by_priority)Úcalculate_advanced_score)Úget_tmdb_api_keyc                 óð  ‡— |                      d¦  «        Š‰rt          j                             ‰¦  «        sX‰r,t	          j        d‰› �|                     d¦  «        ¦  «         n(t	          j        d|                     d¦  «        ¦  «         dS 	 | d         }|                      d¦  «        p|                      dd	¦  «        d
d…         }|s.t	          j        d|› d�|                     d¦  «        ¦  «         dS t          j	        |› d|› d�¦  «        }t          j         
                    ‰|¦  «        }d|                     d¦  «        › dt          |¦  «        › d|› �}t          j        t          j                             |¦  «        d¬¦  «         t          |dd¬¦  «        5 }|                     |¦  «         d
d
d
¦  «         n# 1 swxY w Y   |                     d¦  «                             dt%          |¦  «        ¦  «        }t	          j        ||                     d¦  «        ¦  «         |                     d¦  «        r.ˆfd„}	t)          j        |	¬¦  «                             ¦   «          d
S d
S # t.          $ r7}
t	          j        d|
› d�|                     d¦  «        ¦  «         Y d
}
~
dS d
}
~
wt0          $ r6}
t	          j        d |
› �|                     d¦  «        ¦  «         Y d
}
~
dS d
}
~
ww xY w)!uE   VytvoÅ™Ã­ .strm soubor pro film, pokud je nastavena sloÅ¾ka knihovny.Úlibrary_movies_folderu)   NastavenÃ¡ sloÅ¾ka pro filmy neexistuje: Únameu7   SloÅ¾ka pro filmy nenÃ­ nastavena v integraci knihovny.FÚtitleÚyearÚrelease_dateÚ Né   u   Nelze vytvoÅ™it .strm pro 'u   ', chybÃ­ rok vydÃ¡nÃ­.ú (z).strmú	plugin://Úidz&?action=play_movie_from_library&title=z&year=T©Úexist_okÚwúutf-8©Úencodingi³u  ú%sÚlibrary_auto_updatec                  óŒ   •— t          j        d¦  «         t          j        d¦  «        st          j        d‰ › d�¦  «         d S d S ©Niô  zLibrary.IsScanningVideozUpdateLibrary(video, "z")©ÚxbmcÚsleepÚgetCondVisibilityÚexecutebuiltin)Úmovies_folders   €úh/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/library/LibraryManager.pyÚdelayed_refreshz+_create_movie_strm.<locals>.delayed_refresh=   óT   ø€ Ý”
˜3‘”�ÝÔ-Ð.GÑHÔHð TÝÔ'Ð(RÀÐ(RÐ(RÐ(RÑSÔSÐSÐSÐSðTð Tó    ©Útargetu8   Chyba pÅ™i vytvÃ¡Å™enÃ­ .strm: ChybÄ›jÃ­cÃ­ data filmu (ú)u'   Chyba pÅ™i vytvÃ¡Å™enÃ­ .strm souboru: )Ú
getSettingÚosÚpathÚisdirÚuiÚpopinfoÚgetAddonInfoÚgetr   Úsanitize_filenameÚjoinr   ÚmakedirsÚdirnameÚopenÚwriteÚgetLocalizedStringÚreplaceÚstrÚgetSettingBoolÚ	threadingÚThreadÚstartÚKeyErrorÚ	Exception)Ú
movie_dataÚaddonÚmovie_titleÚ
movie_yearÚstrm_filenameÚstrm_filepathÚstrm_contentÚfÚpopup_messager*   Úer(   s              @r)   Ú_create_movie_strmrQ      s�  ø€ à×$Ò$Ð%<Ñ=Ô=€MØð ¥¤§¢¨mÑ <Ô <ð Øð 	oÝŒZÐSÀMÐSÐSÐUZ×UgÒUgÐhnÑUoÔUoÑpÔpÐpÐpåŒZÐQÐSX×SeÒSeÐflÑSmÔSmÑnÔnÐnØˆuð$Ø  Ô)ˆà—^’^ FÑ+Ô+ÐU¨z¯~ª~¸nÈbÑ/QÔ/QÐRTÐSTÐRTÔ/Uˆ
Øð 	ÝŒZÐZ°kÐZÐZÐZÐ\a×\nÒ\nÐouÑ\vÔ\vÑwÔwÐwØ�Eõ Ô/°;Ð0TÐ0TÀ*Ð0TÐ0TÐ0TÑUÔUˆÝœŸš ]°MÑBÔBˆð O 5×#5Ò#5°dÑ#;Ô#;ð  Oð  OÕcmÐnyÑczÔczð  Oð  Oð  CMð  Oð  Oˆõ 	Œ•B”G—O’O MÑ2Ô2¸TÐBÑBÔBÐBÝ�- ¨wÐ7Ñ7Ô7ð 	"¸1Ø�GŠG�LÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð ×0Ò0°Ñ7Ô7×?Ò?ÀÅcÈ+ÑFVÔFVÑWÔWˆÝ
Œ
�= %×"4Ò"4°VÑ"<Ô"<Ñ=Ô=Ð=à×ÒÐ 5Ñ6Ô6ð 	=ðTð Tð Tð Tð Tõ Ô OÐ4Ñ4Ô4×:Ò:Ñ<Ô<Ð<Ð<Ð<ð	=ð 	=øõ ð ð ð Ý
Œ
ÐRÈaÐRÐRÐRÐTY×TfÒTfÐgmÑTnÔTnÑoÔoÐoØˆuˆuˆuˆuˆuøøøøÝð ð ð Ý
Œ
Ð@¸QÐ@Ð@À%×BTÒBTÐU[ÑB\ÔB\Ñ]Ô]Ð]ØˆuˆuˆuˆuˆuøøøøðøøøsQ   ÂA)I6 Ã<B*I6 Æ&GÆ<I6 ÇGÇI6 ÇGÇB"I6 É6
K5Ê ,J2Ê2K5Ê?+K0Ë0K5c                 ó:  ‡— |                      d¦  «        Š‰rt          j                             ‰¦  «        sX‰r,t	          j        d‰› �|                     d¦  «        ¦  «         n(t	          j        d|                     d¦  «        ¦  «         dS 	 | d         }| d         }t          j        |¦  «        }t          j         	                    ‰|¦  «        }d|› dt          |¦  «        › d	�}t          j        |¦  «        }|                     ¦   «         }|                     d
g ¦  «        }	t          j        |d¬¦  «         d}
|	D �]³}|                     d¦  «        }|�|dk    rŒ!t          j         	                    |d|d›�¦  «        }t          j        |d¬¦  «         d|› d|› dt          |¦  «        › d	�}t          j        |¦  «        }|                     ¦   «         }|                     dg ¦  «        }|D ]þ}|                     d¦  «        }|                     dd|› �¦  «        }|€Œ3t          j        |¦  «        }t          j        |› d|d›d|d›d|› d�¦  «        }t          j         	                    ||¦  «        }d|                     d¦  «        › dt          |¦  «        › d|› d|› d|› �
}t!          |dd ¬!¦  «        5 }|                     |¦  «         ddd¦  «         n# 1 swxY w Y   |
d"z  }
Œÿ�Œµ|                     d#¦  «                             d$t)          |¦  «        ¦  «        }t	          j        ||                     d¦  «        ¦  «         |                     d%¦  «        r.ˆfd&„}t-          j        |¬'¦  «                             ¦   «          dS dS # t2          $ r7}t	          j        d(|› d)�|                     d¦  «        ¦  «         Y d}~dS d}~wt4          $ r6}t	          j        d*|› �|                     d¦  «        ¦  «         Y d}~dS d}~ww xY w)+u^   VytvoÅ™Ã­ strukturu sloÅ¾ek a .strm souborÅ¯ pro seriÃ¡l, pokud je nastavena sloÅ¾ka knihovny.Úlibrary_series_folderu,   NastavenÃ¡ sloÅ¾ka pro seriÃ¡ly neexistuje: r   u:   SloÅ¾ka pro seriÃ¡ly nenÃ­ nastavena v integraci knihovny.Fr   ú https://api.themoviedb.org/3/tv/ú	?api_key=ú&language=cs-CZÚseasonsTr   r   Úseason_numberNzSeason Ú02dz/season/ÚepisodesÚepisode_numberúEpizoda ú SÚEú z.strmr   z.?action=play_episode_from_library&series_name=z&season=z	&episode=z	&tmdb_id=r   r   r   é   i´u  r   r    c                  óŒ   •— t          j        d¦  «         t          j        d¦  «        st          j        d‰ › d�¦  «         d S d S r"   r#   )Úseries_folders   €r)   r*   z-_create_series_strms.<locals>.delayed_refresh‰   r+   r,   r-   u>   Chyba pÅ™i vytvÃ¡Å™enÃ­ .strm pro seriÃ¡l: ChybÄ›jÃ­cÃ­ data (r/   u+   Chyba pÅ™i vytvÃ¡Å™enÃ­ .strm pro seriÃ¡l: )r0   r1   r2   r3   r4   r5   r6   r   r8   r9   r   Úrequestsr7   Újsonr:   r   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   )Úseries_datarH   Ú	series_idÚseries_nameÚsanitized_series_nameÚseries_pathÚseries_details_urlÚseries_responseÚseries_data_fullrW   Úepisode_countÚseasonrX   Úseason_pathÚseason_details_urlÚseason_responseÚseason_datarZ   ÚepÚep_numÚep_nameÚsanitized_ep_namerK   rL   rM   rN   rO   r*   rP   rb   s                                @r)   Ú_create_series_strmsrw   J   sv  ø€ à×$Ò$Ð%<Ñ=Ô=€MØð ¥¤§¢¨mÑ <Ô <ð Øð 	qÝŒJÐUÀmÐUÐUÐW\×WiÒWiÐjpÑWqÔWqÑrÔrÐrÐråŒJÐSÐUZ×UgÒUgÐhnÑUoÔUoÑpÔpÐpØˆuðAð   Ô%ˆ	Ø! &Ô)ˆå %Ô 7¸Ñ DÔ DÐÝ”g—l’l =Ð2GÑHÔHˆð }À	Ð|Ð|ÕTdÐejÑTkÔTkÐ|Ð|Ð|ÐÝ"œ,Ð'9Ñ:Ô:ˆØ*×/Ò/Ñ1Ô1ÐØ"×&Ò& y°"Ñ5Ô5ˆå
Œ�K¨$Ð/Ñ/Ô/Ð/ð ˆØð 	#ñ 	#ˆFØ"ŸJšJ Ñ7Ô7ˆMØÐ$¨¸Ò(:Ð(:¸Håœ'Ÿ,š, {Ð4Q¸mÐ4QÐ4QÐ4QÑRÔRˆKÝŒK˜¨dÐ3Ñ3Ô3Ð3ð "XÀIð  "Xð  "XÐWdð  "Xð  "XÕoð  AFñ  pGô  pGð  "Xð  "Xð  "XÐÝ&œlÐ+=Ñ>Ô>ˆOØ)×.Ò.Ñ0Ô0ˆKØ"—’ z°2Ñ6Ô6ˆHàð #ð #�ØŸšÐ 0Ñ1Ô1�ØŸ&š& Ð)<°FÐ)<Ð)<Ñ=Ô=�Ø�> 8õ %*Ô$;¸GÑ$DÔ$DÐ!Ý %Ô 7Ð;Pð  9Nð  9NÐTað  9Nð  9Nð  9NÐhnð  9Nð  9Nð  9Nð  vGð  9Nð  9Nð  9Nñ  !Oô  !O�Ý "¤§¢¨[¸-Ñ HÔ H�ð  I¨5×+=Ò+=¸dÑ+CÔ+Cð   Ið   IÕs}ð  Jñ  tKô  tKð   Ið   Ið  Ubð   Ið   Ið  msð   Ið   Ið  ~Gð   Ið   I�å˜-¨°wÐ?Ñ?Ô?ð *À1Ø—G’G˜LÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *à Ñ"��ñ#ð$ ×0Ò0°Ñ7Ô7×?Ò?ÀÅcÈ+ÑFVÔFVÑWÔWˆÝ
Œ
�= %×"4Ò"4°VÑ"<Ô"<Ñ=Ô=Ð=à×ÒÐ 5Ñ6Ô6ð 	=ðTð Tð Tð Tð Tõ Ô OÐ4Ñ4Ô4×:Ò:Ñ<Ô<Ð<Ð<Ð<ð	=ð 	=øõ ð ð ð Ý
Œ
ÐXÐTUÐXÐXÐXÐZ_×ZlÒZlÐmsÑZtÔZtÑuÔuÐuØˆuˆuˆuˆuˆuøøøøÝð ð ð Ý
Œ
ÐDÀÐDÐDÀe×FXÒFXÐY_ÑF`ÔF`ÑaÔaÐaØˆuˆuˆuˆuˆuøøøøðøøøsJ   ÂH2N ËK%ËN Ë%K)Ë)N Ë,K)Ë-B*N Î
PÎ%,OÏPÏ$+PÐPc                 ó$  — ddl }|                      d¦  «        }|s*t          j        d|                     d¦  «        ¦  «         dS d}d}d}d}d}|dk    r1d}d	}|                     |¦  «        }|                      |¦  «        }d
}nd|dk    r1d}d}|                     |¦  «        }|                      |¦  «        }d}n-t          j        d|› �|                     d¦  «        ¦  «         dS |s.t          j        d|› d�|                     d¦  «        ¦  «         dS |rt          j                             |¦  «        s$ddl	m
}	  |	||¦  «        rt          | |¦  «         dS |dk    rt          | |¦  «         dS |dk    rt          | |¦  «         dS dS )uœ   
    Zkontroluje nastavenÃ­ knihovny a pokud je v poÅ™Ã¡dku,
    zavolÃ¡ akci pro pÅ™idÃ¡nÃ­ filmu/seriÃ¡lu. Jinak zobrazÃ­ dialog pro vÃ½bÄ›r sloÅ¾ky.
    r   NÚ
media_typeu4   Chyba: ChybÃ­ typ mÃ©dia pro pÅ™idÃ¡nÃ­ do knihovny.r   r   Úmovier   Úmovie_idu   filmÅ¯ÚseriesrS   rf   u	   seriÃ¡lÅ¯u   NeznÃ¡mÃ½ typ mÃ©dia: u-   Chyba: ChybÃ­ ID pro pÅ™idÃ¡nÃ­ do knihovny (z).)Úshow_library_folder_dialog)Úxbmcguir7   r4   r5   r6   r0   r1   r2   r3   Úwcs.login.DialogLibraryFolderr}   Úcheck_settings_and_add_itemÚadd_movie_to_libraryÚadd_series_to_library)
ÚparamsrH   r~   ry   ÚfolderÚfolder_setting_nameÚitem_idÚid_param_nameÚfolder_labelr}   s
             r)   r€   r€   ™   s÷  € ð
 €N€N€NØ—’˜LÑ)Ô)€JØð Ý
Œ
ÐIÈ5×K]ÒK]Ð^dÑKeÔKeÑfÔfÐfØˆØ€FØÐØ€GØ€MØ€LØ�WÒÐØ5ÐØ"ˆØ×!Ò!Ð"5Ñ6Ô6ˆØ—*’*˜]Ñ+Ô+ˆØˆˆØ	�xÒ	Ð	Ø5ÐØ#ˆØ×!Ò!Ð"5Ñ6Ô6ˆØ—*’*˜]Ñ+Ô+ˆØ"ˆˆå
Œ
Ð8¨JÐ8Ð8¸%×:LÒ:LÈVÑ:TÔ:TÑUÔUÐUØˆØð Ý
Œ
ÐTÀ=ÐTÐTÐTÐV[×VhÒVhÐioÑVpÔVpÑqÔqÐqØˆàð �œŸš vÑ.Ô.ð ØLÐLÐLÐLÐLÐLà%Ð% e¨ZÑ8Ô8ð 	7å'¨°Ñ6Ô6Ð6Øˆà�WÒÐÝ˜V UÑ+Ô+Ð+Ð+Ð+Ø	�xÒ	Ð	Ý˜f eÑ,Ô,Ð,Ð,Ð,ð 
 Ð	r,   c                 ó¼  — |                       d¦  «        }|s*t          j        d|                     d¦  «        ¦  «         dS 	 d|› dt	          |¦  «        › d�}t          j         |¦  «        }|                     ¦   «         }|                      dd	¦  «        dd
…         |d<   t          ||¦  «         dS # t          $ r}ddl	m
}  |||¦  «         Y d}~dS d}~ww xY w)uI   Zpracuje akci 'library_add_movie'. ZÃ­skÃ¡ data z TMDb a vytvoÅ™Ã­ .strm.r{   u+   ChybÃ­ ID filmu pro pÅ™idÃ¡nÃ­ do knihovny.r   Nz#https://api.themoviedb.org/3/movie/rU   rV   r   r   r   r   r   ©Úhandle_tmdb_api_error)r7   r4   r5   r6   r   rc   rd   rQ   rF   Úwcs.metadata.TMDbClientr‹   )rƒ   rH   r{   Úmovie_details_urlÚresponserG   rP   r‹   s           r)   r�   r�   È   s  € à�zŠz˜*Ñ%Ô%€HØð Ý
Œ
Ð@À%×BTÒBTÐU[ÑB\ÔB\Ñ]Ô]Ð]Øˆð(ð ~À(Ð}Ð}ÕUeÐfkÑUlÔUlÐ}Ð}Ð}ÐÝ”<Ð 1Ñ2Ô2ˆØ—]’]‘_”_ˆ
ð (Ÿ^š^¨N¸BÑ?Ô?ÀÀÀÔCˆ
�6Ñõ 	˜: uÑ-Ô-Ð-Ð-Ð-øåð (ð (ð (ØAÐAÐAÐAÐAÐAØÐ˜a Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'øøøøð(øøøs   ÁA/B4 Â4
CÂ>CÃCc                 óä  — |                       d¦  «        }|s*t          j        d|                     d¦  «        ¦  «         dS 	 d|› dt	          |¦  «        › d�}t          j         |¦  «        }|                     ¦   «         }d|v rd|v rt          ||¦  «         dS t          j        d	|› �|                     d¦  «        ¦  «         dS # t          $ r}d
dl	m
}  |||¦  «         Y d}~dS d}~ww xY w)uR   Zpracuje akci 'library_add_series'. ZÃ­skÃ¡ data z TMDb a vytvoÅ™Ã­ .strm soubory.rf   u.   ChybÃ­ ID seriÃ¡lu pro pÅ™idÃ¡nÃ­ do knihovny.r   NrT   rU   rV   r   u7   NepodaÅ™ilo se zÃ­skat potÅ™ebnÃ¡ data pro seriÃ¡l ID: r   rŠ   )r7   r4   r5   r6   r   rc   rd   rw   rF   rŒ   r‹   )rƒ   rH   rf   rj   rŽ   re   rP   r‹   s           r)   r‚   r‚   â   s<  € à—
’
˜;Ñ'Ô'€IØð Ý
Œ
ÐCÀU×EWÒEWÐX^ÑE_ÔE_Ñ`Ô`Ð`Øˆð(à|À	Ð|Ð|ÕTdÐejÑTkÔTkÐ|Ð|Ð|ÐÝ”<Ð 2Ñ3Ô3ˆØ—m’m‘o”oˆð �;ÐÐ 6¨[Ð#8Ð#8Ý! +¨uÑ5Ô5Ð5Ð5Ð5åŒZÐ]ÐR[Ð]Ð]Ð_d×_qÒ_qÐrxÑ_yÔ_yÑzÔzÐzÐzÐzøåð (ð (ð (ØAÐAÐAÐAÐAÐAØÐ˜a Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'øøøøð(øøøs   ÁAC Â+C Ã
C/ÃC*Ã*C/c                 ó(   — t          | ||¦  «         dS )zTZpracuje akci 'play_episode_from_library'. Deleguje na resolve_episode_from_library.N)Úresolve_episode_from_library)rƒ   rH   Úhandles      r)   Úplay_episode_from_libraryr“   ú   s   € õ ! ¨°Ñ7Ô7Ð7Ð7Ð7r,   c                 óÌ  — d„ }t          j        ||¬¦  «        s)t          j        |dt	          j        ¦   «         ¦  «         dS |                      d¦  «        }|                      d¦  «        }|sQt          j        d| 	                    d¦  «        ¦  «         t          j        |dt	          j        ¦   «         ¦  «         dS t          ||¦  «         d	d
lm}  |||||¦  «         dS )u™   
    Zpracuje pÅ™ehrÃ¡nÃ­ filmu z knihovny.
    Pokud uÅ¾ivatel nenÃ­ pÅ™ihlÃ¡Å¡en, zobrazÃ­ dialog a skonÄ�Ã­.
    Jinak se pokusÃ­ film pÅ™ehrÃ¡t.
    c                  ó   — ddl m}  d S ©Nr   r   ©Úwcs.uir   ©r4   s    r)   Úlogin_success_callbackz7play_movie_from_library.<locals>.login_success_callback  ó   € ð 	$Ð#Ð#Ð#Ð#Ð#Ð#Ð#r,   ©Úon_success_callbackFNr   r   u/   ChybÃ­ nÃ¡zev filmu pro pÅ™ehrÃ¡nÃ­ z knihovny.r   r   )Úresolve_movie_for_library)r   Úcheck_providers_and_promptÚ
xbmcpluginÚsetResolvedUrlr~   ÚListItemr7   r4   r5   r6   Ú_activate_movie_info_onlyÚ	wcs.utilsrž   )rƒ   rH   r’   rš   r   r   rž   s          r)   Úplay_movie_from_libraryr¥     sÿ   € ð$ð $ð $õ
 Ô/°ÐKaÐbÑbÔbð åÔ! &¨%µÔ1AÑ1CÔ1CÑDÔDÐDØˆð �JŠJ�wÑÔ€EØ�:Š:�fÑÔ€Dàð Ý
Œ
ÐDÀe×FXÒFXÐY_ÑF`ÔF`ÑaÔaÐaÝÔ! &¨%µÔ1AÑ1CÔ1CÑDÔDÐDØˆå˜e TÑ*Ô*Ð*à3Ð3Ð3Ð3Ð3Ð3ØÐ˜e T¨5°&Ñ9Ô9Ð9Ð9Ð9r,   c           
      óŠ  — d„ }t          j        ||¬¦  «        s)t          j        |dt	          j        ¦   «         ¦  «         dS |                      d¦  «        }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        d	k    }t          |||g¦  «        sQt          j	        d
| 
                    d¦  «        ¦  «         t          j        |dt	          j        ¦   «         ¦  «         dS 	 t          |¦  «        }t          |¦  «        }	n`# t          $ rS t          j	        d| 
                    d¦  «        ¦  «         t          j        |dt	          j        ¦   «         ¦  «         Y dS w xY wddlm}
  |
|||	¦  «        pi }|                     d|¦  «        }|› d|d›d|	d›�}|r t          j        dt          j        ¬¦  «         ddlm}  |dAi d|“d|“d|                     dd¦  «        “d|                     dd¦  «        “d|                     dd¦  «        “d|                     d d¦  «        “d!|                     d"d¦  «        “d#|                     d$d¦  «        “d%|                     d&d¦  «        p|                     d'd¦  «        “d(g “d)d*“d|“d+|“d,|	“d-|                     d-d¦  «        “d.|                      d.¦  «        “d|“d/d*“Ž}|�r·|                     d0¦  «        �r¡|d0         }|rÀdd1lm}  |¦   «         }|                     d*¦  «         dd2lm}  ||                     dd¦  «        ¦  «        }|                     |||	|                      d.¦  «        |¦  «         t5          d3¦  «         |                     dd¦  «        }t          j        d4|› �t          j        ¬¦  «         �n.dd1lm}  |¦   «         }|                     d5¦  «        }|rö|                     d*¦  «         dd2lm}  ||                     dd¦  «        ¦  «        }|                     |||	|                      d.¦  «        |¦  «         	 |                     d6d	¦  «         t          j        d7|› d|d›d|	d›d8|› �t          j        ¬¦  «         n:# t:          $ r-}t          j        d9|› �t          j        ¬¦  «         Y d}~nd}~ww xY wt5          d:¦  «         nt?          |||	¦  «         tA          j!        |t          j	        ¦  «        }|rˆ	 tA          j"        ||dd;d*¬<¦  «         n# t:          $ r Y nw xY wtA          j#        ||d=|¬>¦  «        }|rCt	          j        |¬?¦  «        }| $                    d@d	¦  «         t          j        |d*|¦  «         dS t          j        |dt	          j        ¦   «         ¦  «         dS )Buž   
    Zpracuje pÅ™ehrÃ¡nÃ­ epizody z knihovny.
    Pokud uÅ¾ivatel nenÃ­ pÅ™ihlÃ¡Å¡en, zobrazÃ­ dialog a skonÄ�Ã­.
    Jinak se pokusÃ­ epizodu pÅ™ehrÃ¡t.
    c                  ó   — ddl m}  d S r–   r—   r™   s    r)   rš   z<resolve_episode_from_library.<locals>.login_success_callback&  r›   r,   rœ   FNrg   rn   ÚepisodeÚautoplay_requestÚtrueu=   ChybÃ­ Ãºdaje o seriÃ¡lu/epizodÄ› pro pÅ™ehrÃ¡nÃ­ z knihovny.r   u'   NeplatnÃ© Ä�Ã­slo sezÃ³ny nebo epizody.r   ©Ú!get_episode_metadata_from_libraryÚseries_titler]   rY   r^   zC[plugin.video.milionar] Library Autoplay: AUTOPLAY REQUEST DETECTED©Úlevelr	   Úsearch_queryrI   rJ   Úepisode_yearr   Ú
poster_urlÚseries_posterÚ
fanart_urlÚseries_fanartÚgenreÚseries_genreÚratingÚepisode_ratingÚruntimeÚepisode_runtimeÚplotÚepisode_plotÚseries_plotÚsearch_resultsÚ
is_episodeTrX   r[   Úepisode_titleÚtmdb_idÚfrom_libraryÚident)Úget_autoplay_manager)Úextract_qualityzLibrary Autoplayz9[plugin.video.milionar] Library Autoplay: Selected file: Úautoplay_enabled_globalÚtemp_autoplay_activez8[plugin.video.milionar] Library: Activated autoplay for z, quality: zE[plugin.video.milionar] Library: Error setting temp_autoplay_active: zLibrary ManualÚlibrary_episode)Útoken_overrideÚshow_notificationÚlog_contextÚshow_warningÚvideo_stream)ÚdtyperH   )r2   Ú
IsPlayable© )%r   rŸ   r    r¡   r~   r¢   r7   Úallr4   r5   r6   ÚintÚ
ValueErrorÚwcs.library.LibraryManagerr¬   r$   ÚlogÚLOGINFOÚwcs.ui.dialogs.DialogWcsSearchr
   Ú$wcs.playback.DialogMediaInfoWithGamerÅ   Úset_autoplay_enabledr¤   rÆ   Úset_current_episodeÚ_activate_singleton_monitoringrA   Ú
setSettingrF   Ú
LOGWARNINGÚ_activate_episode_info_onlyÚwebshare_apiÚ
revalidateÚrefresh_vip_infoÚgetlinkÚsetProperty)rƒ   rH   r’   rš   rg   Úseason_num_strÚepisode_num_strr©   rn   r¨   r¬   Úepisode_metadatarI   Ú
search_strr
   Úselected_filerÄ   rÅ   Úautoplay_managerrÆ   Úselected_qualityÚselected_filenameÚglobal_autoplay_enabledrP   ÚtokenÚlinkÚlistitems                              r)   r‘   r‘      sµ  € ð$ð $ð $õ
 Ô/°ÐKaÐbÑbÔbð åÔ! &¨%µÔ1AÑ1CÔ1CÑDÔDÐDØˆð —*’*˜]Ñ+Ô+€KØ—Z’Z Ñ)Ô)€NØ—j’j Ñ+Ô+€OØ—z’zÐ"4Ñ5Ô5¸Ò?Ðå�˜^¨_Ð=Ñ>Ô>ð Ý
Œ
ÐRÐTY×TfÒTfÐgmÑTnÔTnÑoÔoÐoÝÔ! &¨%µÔ1AÑ1CÔ1CÑDÔDÐDØˆðÝ�^Ñ$Ô$ˆÝ�oÑ&Ô&ˆˆøÝð ð ð Ý
Œ
Ð<¸e×>PÒ>PÐQWÑ>XÔ>XÑYÔYÐYÝÔ! &¨%µÔ1AÑ1CÔ1CÑDÔDÐDØˆˆðøøøð MÐLÐLÐLÐLÐLØ8Ð8¸ÀfÈgÑVÔVÐ\ÐZ\Ðà"×&Ò& ~°{ÑCÔC€KàÐ=Ð= 6Ð=Ð=Ð=°Ð=Ð=Ð=€Jàð mÝŒÐWÕ_cÔ_kÐlÑlÔlÐlàAÐAÐAÐAÐAÐAà&Ð&ð ð ð Ø�Zðà�Kðð $×'Ò'¨¸Ñ;Ô;Ð;ðð $×'Ò'¨¸Ñ<Ô<Ð<ð	ð
 $×'Ò'¨¸Ñ<Ô<Ð<ðð ×"Ò" >°2Ñ6Ô6Ð6ðð  ×#Ò#Ð$4°bÑ9Ô9Ð9ðð !×$Ò$Ð%6¸Ñ;Ô;Ð;ðð ×!Ò! .°"Ñ5Ô5Ð`Ð9I×9MÒ9MÈmÐ]_Ñ9`Ô9`øðð �rðð �4ðð  �Kðð �fðð �wðð '×*Ò*¨?¸BÑ?Ô?Ð?ðð  —
’
˜9Ñ%Ô%Ð%ð!ð" *Ð)ð#ð$ �Tð%€Mð* ñ =˜×*Ò*¨7Ñ3Ô3ñ =Ø˜gÔ&ˆàð '	JàQÐQÐQÐQÐQÐQØ3Ð3Ñ5Ô5ÐØ×1Ò1°$Ñ7Ô7Ð7à1Ð1Ð1Ð1Ð1Ð1Ø.˜¨}×/@Ò/@ÀÈÑ/LÔ/LÑMÔMÐà×0Ò0Ø˜V W¨f¯jªj¸Ñ.CÔ.CÐEUñô ð õ +Ð+=Ñ>Ô>Ð>Ø -× 1Ò 1°&¸"Ñ =Ô =ÐÝŒHÐdÐQbÐdÐdÕlpÔlxÐyÑyÔyÐyÑyàQÐQÐQÐQÐQÐQØ3Ð3Ñ5Ô5Ðà&+×&:Ò&:Ð;TÑ&UÔ&UÐ#à&ð JØ ×5Ò5°dÑ;Ô;Ð;à5Ð5Ð5Ð5Ð5Ð5Ø#2 ?°=×3DÒ3DÀVÈRÑ3PÔ3PÑ#QÔ#QÐ à ×4Ò4Ø ¨°&·*²*¸YÑ2GÔ2GÐIYñô ð ðAØ×$Ò$Ð%;¸VÑDÔDÐDÝ”Hð  _ÐXcð  _ð  _Ðgmð  _ð  _ð  _Ðt{ð  _ð  _ð  _ð  M]ð  _ð  _õ  gkô  gsð  tñ  tô  tð  tð  tøÝ ð Að Að AÝ”HÐhÐefÐhÐhÕptÔpð  Añ  Aô  Að  Að  Að  Að  Að  Að  AøøøøðAøøøõ /Ð/?Ñ@Ô@Ð@Ð@å+¨K¸ÀÑIÔIÐIåÔ'¨­r¬zÑ:Ô:ˆØð 	ðÝÔ-¨eÀEÐ]bð  qBð  QUð  Vñ  Vô  Vð  Vð  VøÝð ð ð Ø�ðøøøåÔ'¨¨u¸NÐRWÐXÑXÔXˆDØð 	õ #Ô+°Ð6Ñ6Ô6�Ø×$Ò$ \°6Ñ:Ô:Ð:ÝÔ)¨&°$¸ÑAÔAÐAØ�åÔ˜f e­WÔ-=Ñ-?Ô-?Ñ@Ô@Ð@Ð@Ð@s>   Ã?D ÄAE;Å:E;ÑAR Ò
SÒ"#S
Ó
SÔT/ Ô/
T<Ô;T<c                 ó
  — ddl } |j        d| › d|› d|› �|j        ¬¦  «         	 ddg d	¢d
d| dœdœddœ} |j        t	          j        |¦  «        ¦  «        }t	          j        |¦  «        }d|vs
d|d         vr |j        d| › d�|j        ¬¦  «         dS |d         d         } |j        dt          |¦  «        › d| › d�|j        ¬¦  «         d}d}	|D ]›}
|
                     d
d¦  «         	                    ¦   «         }|  	                    ¦   «         } |j        d|› d|› d�|j
        ¬¦  «         ||v s||v r7||v rt          |¦  «        nt          |¦  «        }||k    r|dz  }||	k    r|}	|
}Œœ|s) |j        d| › dd„ |D ¦   «         › �|j        ¬¦  «         dS |d         } |j        dt	          j        |¦  «        › �|j        ¬¦  «         dd ||g d!¢d"œd#dœ} |j        t	          j        |¦  «        ¦  «        }t	          j        |¦  «        }d|vs
d$|d         vr |j        d%| › d&|› �|j        ¬¦  «         dS |d         d$         D �]Q}|                     d'¦  «        |k    �r4|                     d(i ¦  «                             d)i g¦  «        d                              d*d¦  «        }|rt          |¦  «        d+z  nd,}|› d-�}|                     d.i ¦  «        }|                     d/d¦  «        p+|                     d0d¦  «        p|                     d1d¦  «        }|                     d2d¦  «        p|                     d3d¦  «        }|                     d1d¦  «        p+|                     d0d¦  «        p|                     d/d¦  «        }|                     d
| ¦  «        |||                     d4¦  «        r)d5                     |                     d4g ¦  «        ¦  «        nd|                     d6d¦  «        |                     d
d7|› �¦  «        |                     d6d¦  «        |                     d8¦  «        r|                     d8d¦  «        dd9…         nd||                     d:d¦  «        |||d;œ} |j        d<| › d=|d>›d?|d>›�|j        ¬¦  «         |c S �ŒS |j        d@|› dA|› dB| › �|j        ¬¦  «         dS # t          $ r=} |j        dC|› �|j        ¬¦  «         ddl}|                     ¦   «          Y d}~dS d}~ww xY w)Du:  
    ZÃ­skÃ¡ metadata epizody z Kodi knihovny pomocÃ­ JSON-RPC API.
    
    Args:
        series_name (str): NÃ¡zev seriÃ¡lu
        season_number (int): ÄŒÃ­slo sezÃ³ny
        episode_number (int): ÄŒÃ­slo epizody
        
    Returns:
        dict: Metadata epizody nebo None pokud epizoda nebyla nalezena
    r   Nz2[plugin.video.milionar] Library metadata: series='z
', season=z
, episode=r®   ú2.0zVideoLibrary.GetTVShows)r   r   r¸   r¶   r¼   r   Úcontains©ÚfieldÚoperatorÚvalue©Ú
propertiesÚfilterr`   ©ÚjsonrpcÚmethodrƒ   r   ÚresultÚtvshowsz*[plugin.video.milionar] Library: TV show 'z#' not found in library (no results)z'[plugin.video.milionar] Library: Found z potential candidates for 'ú'r   z5[plugin.video.milionar] Library: Checking candidate 'z' against 'éd   z@[plugin.video.milionar] Library: No matching TV show found for 'z'. Candidates were: c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )r   )r7   )Ú.0Úss     r)   ú
<listcomp>z5get_episode_metadata_from_library.<locals>.<listcomp>ä  sQ   € ð  z^ð  z^ð  z^ð  NOÐz{×zÒzð  AHñ  {Iô  {Ið  z^ð  z^ð  z^r,   Útvshowidz6[plugin.video.milionar] Library: best_match for show: zVideoLibrary.GetEpisodes)	r   rn   r¨   r¸   Ú
firstairedr¼   ÚartÚ	playcountÚstreamdetails)r  rn   rù   é   rZ   z5[plugin.video.milionar] DEBUG: No episodes found for z season r¨   r
  ÚvideoÚdurationé<   éB   ú minr  Úposterztvshow.posterÚthumbÚfanartztvshow.fanartr¶   ú, r¼   r\   r  r   r¸   )r­   r³   rµ   r·   r¾   rÁ   r½   r±   r»   r¹   Úepisode_thumbrX   r[   z<[plugin.video.milionar] Library: Found episode metadata for r]   rY   r^   z)[plugin.video.milionar] Library: Episode z not found in season z of zA[plugin.video.milionar] Library: Error getting episode metadata: )r$   rÖ   r×   ÚexecuteJSONRPCrd   ÚdumpsÚloadsÚlenr7   ÚlowerÚLOGDEBUGrÓ   r9   rF   ÚLOGERRORÚ	tracebackÚ	print_exc)rg   rX   r[   r$   Úshows_queryÚshows_responseÚ
shows_dataÚ
shows_listÚ
best_matchÚ
best_scoreÚshowr   Úsearch_nameÚscoreÚ
tv_show_idÚepisodes_queryÚepisodes_responseÚepisodes_datar¨   Úduration_secÚruntime_minutesr»   r  r³   rµ   r  ÚmetadatarP   r  s                                r)   r¬   r¬   ¦  sŽ  € ð €K€K€KØ€D„Hð  CÀ+ð  Cð  CÐYfð  Cð  Cð  sAð  Cð  Cð  KOô  KWð  Xñ  Xô  Xð  Xðlð Ø/àJÐJÐJà$Ø *Ø(ðð ðð ð ð
ð 
ˆð -˜Ô,­T¬Z¸Ñ-DÔ-DÑEÔEˆÝ”Z Ñ/Ô/ˆ
à˜:Ð%Ð%¨¸*ÀXÔ:NÐ)NÐ)NØˆDŒHÐrÀ+ÐrÐrÐrÐz~ô  {Gð  Hñ  Hô  Hð  HØ�4à Ô)¨)Ô4ˆ
ØˆŒÐu½3¸z¹?¼?ÐuÐuÐgrÐuÐuÐuð  ~Bô  ~Jð  	Kñ  	Kô  	Kð  	Kð ˆ
Øˆ
àð 	&ð 	&ˆDà—H’H˜W bÑ)Ô)×/Ò/Ñ1Ô1ˆEØ%×+Ò+Ñ-Ô-ˆKàˆDŒHÐmÈUÐmÐmÐ_jÐmÐmÐmÐuyô  vCð  Dñ  Dô  Dð  Dà˜eÐ#Ð# u°Ð';Ð';Ø,7¸5Ð,@Ð,@�˜KÑ(Ô(Ð(ÅcÈ%ÁjÄj�à˜KÒ'Ð'Ø˜S‘L�Eà˜:Ò%Ð%Ø!&�JØ!%�Jøàð 	ØˆDŒHð  `ÐXcð  `ð  `ð  z^ð  z^ð  S]ð  z^ñ  z^ô  z^ð  `ð  `ð  hlô  htð  uñ  uô  uð  uØ�4Ø 
Ô+ˆ
ØˆŒÐbÍ$Ì*ÐU_ÑJ`ÔJ`ÐbÐbÐjnÔjvÐwÑwÔwÐwð Ø0à&Ø'ð Bð  Bð  Bðð ð
 ð	
ð 	
ˆð 0˜DÔ/µ´
¸>Ñ0JÔ0JÑKÔKÐÝœ
Ð#4Ñ5Ô5ˆà˜=Ð(Ð(¨J¸mÈHÔ>UÐ,UÐ,UØˆDŒHÐqÈ[ÐqÐqÐboÐqÐqÐy}ô  zFð  Gñ  Gô  Gð  GØ�4ð % XÔ.¨zÔ:ð 	 ñ 	 ˆGØ�{Š{˜9Ñ%Ô%¨Ò7Ñ7à&Ÿ{š{¨?¸BÑ?Ô?×CÒCÀGÈbÈTÑRÔRÐSTÔU×YÒYÐZdÐfgÑhÔh�Ø=IÐ"Q¥# lÑ"3Ô"3°rÑ"9Ð"9Èr�Ø%4Ð":Ð":Ð":�Ø—k’k %¨Ñ,Ô,�Ø #§¢¨°"Ñ 5Ô 5Ð m¸¿ºÀÐRTÑ9UÔ9UÐ mÐY\×Y`ÒY`ÐahÐjlÑYmÔYm�Ø #§¢¨°"Ñ 5Ô 5Ð U¸¿ºÀÐRTÑ9UÔ9U�Ø #§¢¨°Ñ 4Ô 4Ð m¸¿ºÀÐQSÑ8TÔ8TÐ mÐX[×X_ÒX_Ð`hÐjlÑXmÔXm�à$.§N¢N°7¸KÑ$HÔ$HØ%2Ø%2ØNXÏnÊnÐ]dÑNeÔNeÐ$m D§I¢I¨j¯nªn¸WÀbÑ.IÔ.IÑ$JÔ$JÐ$JÐkmØ#-§>¢>°&¸"Ñ#=Ô#=Ø%,§[¢[°Ð:UÀ^Ð:UÐ:UÑ%VÔ%VØ$+§K¢K°¸Ñ$;Ô$;ØIPÏÊÐUaÑIbÔIbÐ$j G§K¢K°¸bÑ$AÔ$AÀ"À1À"Ô$EÐ$EÐhjØ'6Ø&-§k¢k°(¸AÑ&>Ô&>Ø%2Ø%2Ø&4ðð �ð �”ð  PÐXcð  Pð  PÐgtð  Pð  Pð  Pð  |Jð  Pð  Pð  Pð  X\ô  Xdð  eñ  eô  eð  eØ���ñ3 8ð6 	ˆŒð  C¸^ð  Cð  CÐboð  Cð  Cð  vAð  Cð  Cð  KOô  KWð  	Xñ  	Xô  	Xð  	XØˆtøåð ð ð ØˆŒÐXÐUVÐXÐXÐ`dÔ`mÐnÑnÔnÐnØÐÐÐØ×ÒÑÔÐØˆtˆtˆtˆtˆtøøøøð	øøøs3   ¦A/S ÂDS ÆB"S ÉIS Ò "S Ó
TÓ2TÔTc                 ó^   — t          | ||dz   ¦  «        }|r|S t          | |dz   d¦  «        }|S )u>  
    ZÃ­skÃ¡ metadata nÃ¡sledujÃ­cÃ­ epizody z Kodi knihovny.
    
    Args:
        series_name (str): NÃ¡zev seriÃ¡lu
        current_season (int): AktuÃ¡lnÃ­ sezÃ³na
        current_episode (int): AktuÃ¡lnÃ­ epizoda
        
    Returns:
        dict: Metadata nÃ¡sledujÃ­cÃ­ epizody nebo None pokud neexistuje
    r`   r«   )rg   Úcurrent_seasonÚcurrent_episodeÚnext_episode_metadataÚnext_season_metadatas        r)   Ú&get_next_episode_metadata_from_libraryr4  "  sL   € õ >¸kÈ>Ð[jÐmnÑ[nÑoÔoÐàð %Ø$Ð$õ =¸[È.Ð[\ÑJ\Ð^_Ñ`Ô`ÐàÐr,   c                 ó®   ‡ — ˆ fd„}ddl } |j        |d¬¦  «        }|                     ¦   «          t          j        d‰ › d�t          j        ¬¦  «         dS )	uš   
    Aktivuje singleton monitoring pro danÃ½ zdroj.
    
    Args:
        source (str): Zdroj aktivace (napÅ™. "Library Auto" nebo "Library Manual")
    c                  ó  •— dd l } ddlm} t          d¦  «        D ]b}t	          j        ¦   «                              ¦   «         r&t	          j        d‰› d�t          j        ¬¦  «          n<|  	                    d¦  «         Œct	          j        d‰› d�t          j
        ¬¦  «         d S  |¦   «         }d	|_        |  	                    d
¦  «         t	          j        ¦   «                              ¦   «         r|                     ¦   «          d S d S )Nr   )Úget_player_monitorr  ú[plugin.video.milionar] z4: Playback detected, activating singleton monitoringr®   gš™™™™™¹?z: Timeout waiting for playbookTr`   )ÚtimeÚwcs.playback.PlayerMonitorr7  Úranger$   ÚPlayerÚ	isPlayingrÖ   r×   r%   rÞ   Ú_manual_activationÚ_handle_test_playback_start)r9  r7  ÚiÚmonitorÚsources       €r)   Úactivate_monitoringz;_activate_singleton_monitoring.<locals>.activate_monitoring@  s+  ø€ ØˆˆˆØAÐAÐAÐAÐAÐAõ �s‘”ð 	ð 	ˆAÝŒ{‰}Œ}×&Ò&Ñ(Ô(ð Ý”Ðp°FÐpÐpÐpÕx|ô  yEð  Fñ  Fô  Fð  FØ�Ø�JŠJ�s‰OŒOˆOˆOåŒHÐV°ÐVÐVÐVÕ^bÔ^mÐnÑnÔnÐnØˆFð %Ð$Ñ&Ô&ˆð &*ˆÔ"ð 	�
Š
�1‰ŒˆåŒ;‰=Œ=×"Ò"Ñ$Ô$ð 	2à×/Ò/Ñ1Ô1Ð1Ð1Ð1ð	2ð 	2r,   r   NT)r.   Údaemonr8  z&: Started monitoring activation threadr®   )rB   rC   rD   r$   rÖ   r×   )rB  rC  rB   Úmonitoring_threads   `   r)   rÜ   rÜ   9  s€   ø€ ð2ð 2ð 2ð 2ð 2ð: ÐÐÐØ(˜	Ô(Ð0CÈDÐQÑQÔQÐØ×ÒÑÔÐÝ„HÐV¨ÐVÐVÐVÕ^bÔ^jÐkÑkÔkÐkÐkÐkr,   c                 ór   ‡ ‡‡— ddl m} ddlm}  |d‰ ‰ d‰› �‰‰¬¦  «        } |ˆˆˆ fd„|d¬	¦  «         d
S )u@   Aktivuje zobrazenÃ­ informacÃ­ o epizodÄ› bez aktivace autoplay.r   ©ÚMediaMetadata©Úschedule_library_info_dialogr|   r\   )ry   r   rg   rÁ   rX   r[   c                  ó&   •— t          ‰‰‰ ¦  «        S ©Nr«   )r¨   rn   rg   s   €€€r)   ú<lambda>z-_activate_episode_info_only.<locals>.<lambda>p  s   ø€ Õ!BÀ;ÐPVÐX_Ñ!`Ô!`€ r,   rÉ   ©Úmetadata_fetcherÚfallback_metadatarB  N©Úwcs.playback.metadatarH  Úwcs.playback.dialog_schedulerrJ  )rg   rn   r¨   rH  rJ  Úfallbacks   ```   r)   rß   rß   b  s—   øøø€ à3Ð3Ð3Ð3Ð3Ð3ØJÐJÐJÐJÐJÐJàˆ}ØØØØ* Ð*Ð*ØØðñ ô €Hð !Ð Ø`Ð`Ð`Ð`Ð`Ð`Ø"Ø ðñ ô ð ð ð r,   c                 ób   ‡ ‡— ddl m} ddlm}  |d‰ ‰¬¦  «        } |ˆ ˆfd„|d¬¦  «         d	S )
u=   Aktivuje zobrazenÃ­ informacÃ­ o filmu bez dalÅ¡Ã­ch funkcÃ­.r   rG  rI  rz   )ry   r   r   c                  ó$   •— t          ‰ ‰¦  «        S rL  )Úget_movie_metadata_from_library)rI   rJ   s   €€r)   rM  z+_activate_movie_info_only.<locals>.<lambda>€  s   ø€ Õ!@ÀÈjÑ!YÔ!Y€ r,   Úlibrary_movierN  NrQ  )rI   rJ   rH  rJ  rT  s   ``   r)   r£   r£   u  s‚   øø€ à3Ð3Ð3Ð3Ð3Ð3ØJÐJÐJÐJÐJÐJàˆ}ØØØðñ ô €Hð
 !Ð ØYÐYÐYÐYÐYØ"Øðñ ô ð ð ð r,   c                 óî  — 	 ddg d¢dd| dœdœdd	œ}t          j        t          j        |¦  «        ¦  «        }t          j        |¦  «        }d
|vs
d|d
         vr&t          j        d| › d�t           j        ¬¦  «         dS d}d}|d
         d         D ]¦}|                     dd¦  «                             ¦   «         }|                      ¦   «         }	|	|v p||	v }
|r't          |                     dd¦  «        ¦  «        |k    nd}|
r3|	|v rt          |	¦  «        nt          |¦  «        }|r|dz  }||k    r|}|}Œ§|s)t          j        d| › d|› d�t           j        ¬¦  «         dS |                     dd¦  «        }|dk    rt          |dz  ¦  «        nd}|                     d| ¦  «        t          |                     d|¦  «        ¦  «        |                     dd¦  «        |                     dd¦  «        |                     di ¦  «                             dd¦  «        p)|                     di ¦  «                             dd¦  «        |                     di ¦  «                             dd¦  «        |                     di ¦  «                             dd¦  «        |                     d ¦  «        r)d!                     |                     d g ¦  «        ¦  «        nd|                     d"¦  «        r)d!                     |                     d"g ¦  «        ¦  «        nd|dk    r|› d#�nd|                     d$d¦  «                             d%¦  «        r*|                     d$d¦  «                             d%d¦  «        ndd&œ}t          j        d'| › d(|› d�t           j        ¬¦  «         |S # t          $ rF}t          j        d)|› �t           j        ¬¦  «         ddl}|                     ¦   «          Y d}~dS d}~ww xY w)*u÷   
    ZÃ­skÃ¡ metadata filmu z Kodi knihovny pomocÃ­ JSON-RPC API.
    
    Args:
        movie_title (str): NÃ¡zev filmu
        movie_year (str): Rok filmu
        
    Returns:
        dict: Metadata filmu nebo None pokud film nebyl nalezen
    rò   zVideoLibrary.GetMovies)	r   r   r¸   r¶   r¼   Údirectorrº   r  r	  r   ró   rô   rø   r`   rû   rþ   Úmoviesz([plugin.video.milionar] Library: Movie 'z' not found in libraryr®   Nr   r   r   Tiè  z>[plugin.video.milionar] Library: No matching movie found for 'z' (r/   rº   r  r¸   r¼   r  r  r  r  r¶   r  rZ  r  Ú
imdbnumberztmdb/)r   r   r¸   r¼   r  r  r  r¶   rZ  rº   rÂ   z:[plugin.video.milionar] Library: Found movie metadata for r   z?[plugin.video.milionar] Library: Error getting movie metadata: )r$   r  rd   r  r  rÖ   r×   r7   r  r@   r  rÓ   r9   Ú
startswithr?   rF   r  r  r  )rI   rJ   Úmovies_queryÚmovies_responseÚmovies_datar#  r$  rz   r   Úsearch_titleÚtitle_matchÚ
year_matchr'  Úruntime_secondsr-  r.  rP   r  s                     r)   rW  rW  …  sŒ  € ðLð Ø.àuÐuÐuà$Ø *Ø(ðð ðð ð ð
ð 
ˆõ Ô-­d¬j¸Ñ.FÔ.FÑGÔGˆÝ”j Ñ1Ô1ˆà˜;Ð&Ð&¨(¸+ÀhÔ:OÐ*OÐ*OÝŒHÐcÀÐcÐcÐcÕkoÔkwÐxÑxÔxÐxØ�4ð ˆ
Øˆ
à  Ô*¨8Ô4ð 	'ð 	'ˆEà—I’I˜g rÑ*Ô*×0Ò0Ñ2Ô2ˆEØ&×,Ò,Ñ.Ô.ˆLà&¨%Ð/ÐH°5¸LÐ3HˆKð FPÐY�˜UŸYšY v¨rÑ2Ô2Ñ3Ô3°zÒAÐAÐUYˆJàð 'Ø-9¸UÐ-BÐ-B�˜LÑ)Ô)Ð)ÍÈEÉ
Ì
�Øð "Ø˜T‘M�Eà˜:Ò%Ð%Ø!&�JØ!&�Jøàð 	ÝŒHÐsÐVaÐsÐsÐfpÐsÐsÐsÕ{ô  |Hð  Iñ  Iô  Ið  IØ�4ð %Ÿ.š.¨°AÑ6Ô6ˆØ7FÈÒ7JÐ7J�#˜o°Ñ2Ñ3Ô3Ð3ÐPQˆð  —^’^ G¨[Ñ9Ô9Ý˜
Ÿš v¨zÑ:Ô:Ñ;Ô;Ø —n’n X¨qÑ1Ô1Ø—N’N 6¨2Ñ.Ô.à —n’n U¨BÑ/Ô/×3Ò3°H¸bÑAÔAÐoÀZÇ^Â^ÐTYÐ[]ÑE^ÔE^×EbÒEbÐcjÐlnÑEoÔEoØ—^’^ E¨2Ñ.Ô.×2Ò2°7¸BÑ?Ô?Ø —n’n U¨BÑ/Ô/×3Ò3°H¸bÑAÔAØ?I¿~º~ÈgÑ?VÔ?VÐ^�T—Y’Y˜zŸ~š~¨g°rÑ:Ô:Ñ;Ô;Ð;Ð\^ØEOÇ^Â^ÐT^ÑE_ÔE_Ðg˜Ÿ	š	 *§.¢.°¸RÑ"@Ô"@ÑAÔAÐAÐegØ3BÀQÒ3FÐ3F˜/Ð/Ð/Ð/Ð/ÈBØPZ×P^ÒP^Ð_kÐmoÑPpÔPp×P{ÒP{ð  }Dñ  QEô  QEð  M�z—~’~ l°BÑ7Ô7×?Ò?ÀÈÑLÔLÐLð  KMð
ð 
ˆõ 	ŒÐjÈkÐjÐjÐ]gÐjÐjÐjÕrvÔr~ÐÑÔÐØˆøåð ð ð ÝŒÐVÐSTÐVÐVÕ^bÔ^kÐlÑlÔlÐlØÐÐÐØ×ÒÑÔÐØˆtˆtˆtˆtˆtøøøøð	øøøs&   ‚A<N$ Â C"N$ Å$H?N$ Î$
O4Î.;O/Ï/O4)0r1   Úrer$   Ú	xbmcaddonr~   rc   Úurllib.parser   r˜   r   r4   Úwcsr   r   Úwcs.websharer   rà   ÚdifflibÚxml.etree.ElementTreeÚetreeÚElementTreeÚETr    ÚdatetimerB   rd   rØ   r
   Úwcs.search.MovieSearchr   r¤   r   rŒ   r   rQ   rw   r€   r�   r‚   r“   r¥   r‘   r¬   r4  rÜ   rß   r£   rW  rÑ   r,   r)   ú<module>rq     s  ðð 
€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø .Ð .Ð .Ð .Ð .Ð .Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð.ð .ð .ð`Kð Kð Kð^--ð --ð --ð^(ð (ð (ð4(ð (ð (ð08ð 8ð 8ð:ð :ð :ð<DAð DAð DAðLzð zð zðx ð  ð  ð.'lð 'lð 'lðRð ð ð&ð ð ð Wð Wð Wð Wð Wr,   