o
    iB                     @   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#playersPp5z21qmp4z19:30 - 28. okt. 2019 z?https://cdn.jwplayer.com/v2/media/sPp5z21q/poster.jpg?width=720i3]20191028)idexttitledescription	thumbnail	timestampupload_date)url	info_dictzAhttps://www.tv2lorry.dk/gadekamp/gadekamp-6-hoejhuse-i-koebenhavnoD9cyq0mu#   Gadekamp #6 - Højhuse i Københavnz?https://cdn.jwplayer.com/v2/media/oD9cyq0m/poster.jpg?width=720ixpya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   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   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)\(({[^"]+}).)
jwpMediaIdvideoIdc                 S   s
   d|  S )Nzjwplatform: )xr"   r"   J/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/tv2dk.py<lambda>e   s   
 z'TV2DKIE._real_extract.<locals>.<lambda>)getterie)	_match_id_download_webpager
   r	   refindallr   jsonloadsstrplaylist_from_matchesr   )selfr   video_idwebpagesearch_space
player_idsr"   r"   r$   _real_extract[   s   

zTV2DKIE._real_extractN)__name__
__module____qualname__
_VALID_URL_TESTSr5   r"   r"   r"   r$   r      st    <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=781021781021r   z12Nyheder-27.11.19)r   r   r   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 ]R}t	|
d}	|	sCq7|	|v rHq7||	 t|	}
|
d}|dks^|
dkrm|| j|	|ddddd q7|dksu|
dkr|| j|	|ddd q7|d|	i q7|||dS )Nz<https://play.tv2bornholm.dk/controls/AJAX.aspx/specifikVideor   )playlist_id	serienavn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-mpegurlm3u8r   m3u8_nativehlsF)r   entry_protocolm3u8_idfatalzapplication/dash+xmlmpddash)mpd_idrO   r   )r   r   formats)r(   _download_jsonr,   dumpsencode_search_regex_parse_jsonr   setr   getaddr   extend_extract_m3u8_formats_extract_mpd_formatsappend)r0   r   r1   videor   rG   rS   srcssourcerH   r   src_typer"   r"   r$   r5   v   sd   




z!TV2DKBornholmPlayIE._real_extractN)r6   r7   r8   r9   _TESTr5   r"   r"   r"   r$   r;   h   s    r;   )r,   r*   commonr   
jwplatformr   utilsr   r   r   utils.traversalr	   r
   r   r;   r"   r"   r"   r$   <module>   s    Z