a
    hB                     @   sp   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m	Z	 ddl
mZmZ G dd	 d	eZG d
d deZdS )    N   )InfoExtractor)JWPlatformIE   )determine_ext
js_to_jsonurl_or_none)find_elementtraverse_objc                   @   s   e Zd ZdZdddddddd	d
dddddddddd
ddddidddddiddddddddddddddd ddd!ddd"ddd#ddgZd$d% Zd&S )'TV2DKIEa  (?x)
                    https?://
                        (?:www\.)?
                        (?:
                            tvsyd|
                            tv2ostjylland|
                            tvmidtvest|
                            tv2fyn|
                            tv2east|
                            tv2lorry|
                            tv2nord|
                            tv2kosmopol
                        )\.dk/
                        (?:[^/?#]+/)*
                        (?P<id>[^/?\#&]+)
                    zOhttps://www.tvsyd.dk/nyheder/28-10-2019/1930/1930-28-okt-2019?autoplay=1#playerZsPp5z21qmp4z19:30 - 28. okt. 2019 z?https://cdn.jwplayer.com/v2/media/sPp5z21q/poster.jpg?width=720i3]Z20191028)idexttitledescriptionZ	thumbnail	timestampZupload_date)url	info_dictzAhttps://www.tv2lorry.dk/gadekamp/gadekamp-6-hoejhuse-i-koebenhavnZoD9cyq0mu#   Gadekamp #6 - Højhuse i Københavnz?https://cdn.jwplayer.com/v2/media/oD9cyq0m/poster.jpg?width=720ixpyaZ20211027z~https://www.tvsyd.dk/haderslev/x-factor-brodre-fulde-af-selvtillid-er-igen-hjemme-hos-mor-vores-diagnoser-har-vaeret-en-fordelr   z_x-factor-brodre-fulde-af-selvtillid-er-igen-hjemme-hos-mor-vores-diagnoser-har-vaeret-en-fordelr   )r   r   Zplaylist_countzEhttps://www.tv2ostjylland.dk/aarhus/dom-kan-fa-alvorlige-konsekvenserz!dom-kan-fa-alvorlige-konsekvenser   zRhttps://www.tv2ostjylland.dk/artikel/minister-gaar-ind-i-sag-om-diabetes-teknologiT)r   Zonly_matchingzlhttps://www.tv2ostjylland.dk/nyheder/28-10-2019/22/2200-nyhederne-mandag-d-28-oktober-2019?autoplay=1#playerzBhttps://www.tvmidtvest.dk/nyheder/27-10-2019/1930/1930-27-okt-2019zYhttps://www.tv2fyn.dk/artikel/fyn-kan-faa-landets-foerste-fabrik-til-groent-jetbraendstofzmhttps://www.tv2east.dk/artikel/gods-faar-indleveret-tonsvis-af-aebler-100-kilo-aebler-gaar-til-en-aeblebrandyzYhttps://www.tv2lorry.dk/koebenhavn/rasmus-paludan-evakueret-til-egen-demonstration#playerz0https://www.tv2nord.dk/artikel/dybt-uacceptabeltzwhttps://www.tv2kosmopol.dk/metropolen/chaufforer-beordres-til-at-kore-videre-i-ulovlige-busser-med-rode-advarselslamperc                 C   sf   |  |}| ||}t|tddhp*|}ttd|dthtjhdt	hf}| j
||dd tdS )	Narticle)tagz1x-data="(?:video_player|simple_player)\(({[^"]+}).)Z
jwpMediaIdZvideoIdc                 S   s
   d|  S )Nzjwplatform: )xr   r   K/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/tv2dk.py<lambda>e       z'TV2DKIE._real_extract.<locals>.<lambda>)getterZie)	_match_idZ_download_webpager
   r	   refindallr   jsonloadsstrZplaylist_from_matchesr   )selfr   video_idZwebpageZsearch_spaceZ
player_idsr   r   r   _real_extract[   s    

zTV2DKIE._real_extractN)__name__
__module____qualname__
_VALID_URLZ_TESTSr&   r   r   r   r   r      sr   <r   c                   @   s0   e Zd ZdZdddddddid	Zd
d ZdS )TV2DKBornholmPlayIEz4https?://play\.tv2bornholm\.dk/\?.*?\bid=(?P<id>\d+)z5http://play.tv2bornholm.dk/?area=specifikTV&id=781021Z781021r   z12Nyheder-27.11.19)r   r   r   Zskip_downloadT)r   r   paramsc                 C   s"  |  |}| jd|t|dd ddddd }| jd	|d
dd}| | d|d|t}g }t }|D ]}t	|
d}	|	sqn|	|v rqn||	 t|	}
|
d}|dks|
dkr|| j|	|ddddd qn|dks|
dkr|| j|	|ddd qn|d|	i qn|||dS )Nz<https://play.tv2bornholm.dk/controls/AJAX.aspx/specifikVideor   )Zplaylist_idZ	serienavnZXMLHttpRequestzapplication/json; charset=UTF-8)zX-Requested-WithzContent-Type)dataheadersdz,title\s*:\s*(["\'])(?P<value>(?:(?!\1).)+)\1r   value)groupz(?s)sources:\s*(\[.+?\]),sourcessrctypezapplication/x-mpegurlZm3u8r   Zm3u8_nativeZhlsF)r   Zentry_protocolZm3u8_idfatalzapplication/dash+xmlZmpdZdash)Zmpd_idr5   r   )r   r   formats)r   Z_download_jsonr!   dumpsencodeZ_search_regexZ_parse_jsonr   setr   getaddr   extendZ_extract_m3u8_formatsZ_extract_mpd_formatsappend)r$   r   r%   videor   r2   r6   Zsrcssourcer3   r   Zsrc_typer   r   r   r&   v   sb    





z!TV2DKBornholmPlayIE._real_extractN)r'   r(   r)   r*   Z_TESTr&   r   r   r   r   r+   h   s   r+   )r!   r   commonr   Z
jwplatformr   utilsr   r   r   Zutils.traversalr	   r
   r   r+   r   r   r   r   <module>   s   Z