U
    g}                     @   sX   d dl Z d dlZddlmZ ddlmZmZmZmZ G dd deZ	G dd	 d	eZ
dS )
    N   )InfoExtractor   )determine_extextract_attributes
js_to_jsonurl_or_nonec                   @   s   e Zd ZdZdddddddd	ed
dgddddddddddg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
                        )\.dk/
                        (:[^/]+/)*
                        (?P<id>[^/?\#&]+)
                    zOhttps://www.tvsyd.dk/nyheder/28-10-2019/1930/1930-28-okt-2019?autoplay=1#playerZ
0_52jmwa0pmp4z19:30 - 28. okt. 2019i>]Z20191028ZtvsydiC  )idexttitle	timestampupload_dateuploader_iddurationZ
view_countKaltura)url	info_dictZadd_iezAhttps://www.tv2lorry.dk/gadekamp/gadekamp-6-hoejhuse-i-koebenhavnZ
1_7iwll9n0Z20211027u#   Gadekamp #6 - Højhuse i KøbenhavnZtv2lorryiMcya)r   r   r   r   r   r   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-uacceptabeltc           	         s    |}||}g   fdd}td|D ]6}t|}|d}|sPq4|d}|s`q4||| q4 sd|d}d|d	}||| t d
kr d S  S )Nc                    s&     jd|  d| d|d d S )Nzkaltura::r   )video_id)appendZ
url_result)
partner_id
kaltura_identriesself :/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/tv2dk.py	add_entryS   s
     z(TV2DKIE._real_extract.<locals>.add_entryz"(?s)<[^>]+\bdata-entryid\s*=[^>]*>zdata-entryidzdata-partnerid)z entry_id\s*:\s*["\']([0-9a-z_]+)z!\\u002FentryId\\u002F(\w+)\\u002Fz
kaltura id)z\\u002Fp\\u002F(\d+)\\u002Fz	/p/(\d+)/z
partner idr   r   )		_match_idZ_download_webpagerefindallr   get_search_regexlenZplaylist_result)	r   r   r   Zwebpager   Zvideo_elvideor   r   r   r   r   _real_extractL   s8    


  
zTV2DKIE._real_extractN)__name__
__module____qualname__
_VALID_URLintZ_TESTSr'   r   r   r   r   r	      s\   
/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|	|k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/specifikVideo )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_idr8   r   )r   r   formats)r    Z_download_jsonjsondumpsencoder$   Z_parse_jsonr   setr   r#   addr   extendZ_extract_m3u8_formatsZ_extract_mpd_formatsr   )r   r   r   r&   r   r5   r9   Zsrcssourcer6   r   Zsrc_typer   r   r   r'   |   s~    
 
     

    
   
 z!TV2DKBornholmPlayIE._real_extractN)r(   r)   r*   r+   Z_TESTr'   r   r   r   r   r-   n   s    r-   )r:   r!   commonr   utilsr   r   r   r   r	   r-   r   r   r   r   <module>   s
   a