§
    ûa5ûyØã                   ó:   — d Z ddlZddlmZ d	d„Zd„ Zd„ Zd
d„ZdS )u¡   
CentrÃ¡lnÃ­ modul pro sestavovÃ¡nÃ­ playlist URL a ListItem pro MyTV/MyCinema.
Eliminuje duplicitnÃ­ kÃ³d v DialogMyTV.py (dÅ™Ã­ve 5 mÃ­st se stejnou logikou).
é    N)Ú
quote_plusÚ c           !      óB  — d| › dt          t          |                     dd¦  «        ¦  «        ¦  «        › d|                     dd¦  «        › d|                     dd¦  «        › d	|                     d
d¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |                     dd¦  «        ¦  «        ¦  «        › dt          t          |¦  «        ¦  «        › �S )uA  SestavÃ­ plugin URL pro playlist item.
    
    Args:
        addon_id: ID addonu (z addon.getAddonInfo('id'))
        item_data: Dict s metadaty epizody (standardizovanÃ½ formÃ¡t)
        channel_id: ID kanÃ¡lu pro progress tracking (prÃ¡zdnÃ© = bez trackingu)
    
    Returns:
        str: Plugin URL pro playlist
    z	plugin://z5?action=play_episode_from_addon_playlist&series_name=Úseries_namer   z&season_number=Úseasonz&episode_number=Úepisodez	&tmdb_id=Útmdb_idz&episode_title=Úepisode_titlez&plot=Úplotz&rating=Úratingz&poster=Úposterz&fanart=Úfanartz&genre=Úgenrez&year=Úyearz&episode_thumb=Úepisode_thumbz&mytv_channel_id=)r   ÚstrÚget)Úaddon_idÚ	item_dataÚ
channel_ids      úd/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/ai/PlaylistBuilder.pyÚbuild_playlist_urlr      s  € ð	:�Hð 	:ð 	:Ý"¥3 y§}¢}°]ÀBÑ'GÔ'GÑ#HÔ#HÑIÔIð	:ð 	:à#Ÿ-š-¨°"Ñ5Ô5ð	:ð 	:ð %Ÿ=š=¨°BÑ7Ô7ð	:ð 	:ð —M’M )¨RÑ0Ô0ð		:ð 	:õ
 %¥S¨¯ª°ÈÑ)KÔ)KÑ%LÔ%LÑMÔMð	:ð 	:õ �C 	§¢¨f°bÑ 9Ô 9Ñ:Ô:Ñ;Ô;ð	:ð 	:õ �c )§-¢-°¸"Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ð	:ð 	:õ �c )§-¢-°¸"Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ð	:ð 	:õ �c )§-¢-°¸"Ñ"=Ô"=Ñ>Ô>Ñ?Ô?ð	:ð 	:õ �S §¢¨w¸Ñ!;Ô!;Ñ<Ô<Ñ=Ô=ð	:ð 	:õ �C 	§¢¨f°bÑ 9Ô 9Ñ:Ô:Ñ;Ô;ð	:ð 	:õ %¥S¨¯ª°ÈÑ)KÔ)KÑ%LÔ%LÑMÔMð	:ð 	:õ '¥s¨:¡¤Ñ7Ô7ð	:ð 	:ðó    c                 ó  — |                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        }t          j        |¬¦  «        }	 |rt          |¦  «        nd}n# t          t
          f$ r d}Y nw xY w	 |rt          |¦  «        nd}n# t          t
          f$ r d}Y nw xY w	 |rt          |¦  «        nd}	n# t          t
          f$ r d}	Y nw xY w	 |                       d	¦  «        r#t          |                       d	d¦  «        ¦  «        nd
}
n# t          t
          f$ r d
}
Y nw xY w|                     d||                       dd¦  «        |t          |¦  «        d||	||
dœ	¦  «         |                       dd¦  «        }|                       dd¦  «        }|                       dd¦  «        p|}| 	                    |||dœ¦  «         |S )u¾   VytvoÅ™Ã­ xbmcgui.ListItem pro playlist z item_data dict.
    
    Args:
        item_data: Dict s metadaty epizody
    
    Returns:
        xbmcgui.ListItem: PÅ™ipravenÃ½ pro playlist
    r   r   r   r   r   r   r
   )Úlabelr   g        Úvideor   )	Útitler   r   Ú	premieredÚ	mediatyper   r   Útvshowtitler   r   r   r   )r   r   Úthumb)
r   ÚxbmcguiÚListItemÚintÚ
ValueErrorÚ	TypeErrorÚfloatÚsetInfor   ÚsetArt)r   r   r   r   r   r
   ÚliÚyear_intÚ
season_intÚepisode_intÚrating_floatr   r   r!   s                 r   Úbuild_playlist_listitemr/   (   sg  € ð —-’- ¨rÑ2Ô2€KØ�]Š]˜8 QÑ'Ô'€FØ�mŠm˜I qÑ)Ô)€GØ�=Š=˜ Ñ$Ô$€DØ—M’M /°2Ñ6Ô6€Må	Ô	 Ð	,Ñ	,Ô	,€BðØ $Ð+•3�t‘9”9�9¨!ˆˆøÝ�	Ð"ð ð ð ØˆˆˆðøøøðØ$*Ð1•S˜‘[”[�[°ˆ
ˆ
øÝ�	Ð"ð ð ð Øˆ
ˆ
ˆ
ðøøøðØ&-Ð4•c˜'‘l”l�l°1ˆˆøÝ�	Ð"ð ð ð ØˆˆˆðøøøðØ<E¿MºMÈ(Ñ<SÔ<SÐ\•u˜YŸ]š]¨8°QÑ7Ô7Ñ8Ô8Ð8ÐY\ˆˆøÝ�	Ð"ð ð ð Øˆˆˆðøøøð ‡J‚JˆwØØ—’˜f bÑ)Ô)ØÝ˜‘Y”YØØØØ"Øð
ð 
ñ 
ô 
ð 
ð �]Š]˜8 RÑ(Ô(€FØ�]Š]˜8 RÑ(Ô(€FØ�MŠM˜/¨2Ñ.Ô.Ð8°&€Eà‡I‚IØØØðð ñ ô ð ð €IsH   ÂB ÂB/Â.B/Â3C ÃCÃCÃ!C5 Ã5DÄ
DÄ:E
 Å
E ÅE c                 ó  — |                       d¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                       d	¦  «        pd|                       d
¦  «        pd|                       d¦  «        pd|                       d¦  «        pd|                      d¦  «        pddœS )uÜ   Extrahuje standardizovanÃ½ item_data dict z xbmcgui.ListItem.
    
    Args:
        list_item: ExistujÃ­cÃ­ xbmcgui.ListItem s nastavenÃ½mi properties
    
    Returns:
        dict: StandardizovanÃ½ item_data dict
    r   r   r   r   r	   r
   r   r   r   r   r   r   r!   ©r   r   r   r	   r
   r   r   r   r   r   r   r   )ÚgetPropertyÚgetArt)Ú	list_items    r   Úextract_item_datar5   d   s  € ð !×,Ò,¨]Ñ;Ô;ÐA¸rØ×'Ò'¨Ñ1Ô1Ð7°RØ×(Ò(¨Ñ3Ô3Ð9°rØ×(Ò(¨Ñ3Ô3Ð9°rØ"×.Ò.¨Ñ?Ô?ÐEÀ2Ø×%Ò% fÑ-Ô-Ð3°Ø×'Ò'¨Ñ1Ô1Ð7°RØ×'Ò'¨Ñ1Ô1Ð7°RØ×'Ò'¨Ñ1Ô1Ð7°RØ×&Ò& wÑ/Ô/Ð5°2Ø×%Ò% fÑ-Ô-Ð3°Ø"×)Ò)¨'Ñ2Ô2Ð8°bðð ð r   c                 ó&  — ||                       dd¦  «        |                       dd¦  «        t          |¦  «        |                       dd¦  «        |                       dd¦  «        t          |                       dd¦  «        ¦  «        |                       dd¦  «        |                       dd¦  «        |                       d	d¦  «        t          |                       d
d¦  «        ¦  «        |                       d|                       dd¦  «        ¦  «        dœS )u  Extrahuje standardizovanÃ½ item_data dict z TMDb next_meta.
    
    Args:
        next_meta: Dict z TMDbClient.get_next_episode_from_tmdb()
        series_name: NÃ¡zev seriÃ¡lu
        series_id: TMDb ID seriÃ¡lu
    
    Returns:
        dict: StandardizovanÃ½ item_data dict
    r   r   r   r
   r   r   r   r   r   r   Ústillr   r1   )r   r   )Ú	next_metar   Ú	series_ids      r   Úextract_from_tmdb_metar:   }   sç   € ð #Ø—-’- ¨"Ñ-Ô-Ø—=’= ¨BÑ/Ô/Ý�y‘>”>Ø"Ÿš ¸Ñ;Ô;Ø—’˜f bÑ)Ô)Ý�i—m’m H¨bÑ1Ô1Ñ2Ô2Ø—-’- ¨"Ñ-Ô-Ø—-’- ¨"Ñ-Ô-Ø—’˜w¨Ñ+Ô+Ý�I—M’M &¨"Ñ-Ô-Ñ.Ô.Ø"Ÿš w°	·²¸oÈrÑ0RÔ0RÑSÔSðð ð r   )r   )r   r   )Ú__doc__r"   Úurllib.parser   r   r/   r5   r:   © r   r   ú<module>r>      s}   ððð ð
 €€€Ø #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð:9ð 9ð 9ðxð ð ð2ð ð ð ð ð r   