U
    g                     @   s4   d dl mZ ddlmZmZmZ G dd deZdS )   )InfoExtractor   )parse_durationparse_iso8601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gdddddddgd
ddddd d!d"gd#d$d$d#d%dd&gd'
ddd(d)d*d+d,d-d.d/d0gd+d1d2d2d&gd3
d4d5gZd6d7 Zd8d9 Zd:S );NOSNLArticleIEzGhttps?://nos\.nl/(?P<type>video|(\w+/)?\w+)/?\d+-(?P<display_id>[\w-]+)zhhttps://nos.nl/nieuwsuur/artikel/2440353-verzakking-door-droogte-dreigt-tot-een-miljoen-kwetsbare-huizenZ2440340mp4z$md5:5f83185d902ac97af3af4bed7ece3db5z%'We hebben een huis vol met scheuren'g     W@z9https://cdn.nos.nl/image/2022/08/12/887149/3840x2160a.jpg)idextdescriptiontitleduration	thumbnail)url	info_dictzehttps://nos.nl/artikel/2440409-vannacht-sliepen-weer-enkele-honderden-asielzoekers-in-ter-apel-buitenZ2440409zFVannacht sliepen weer enkele honderden asielzoekers in Ter Apel buitenz$md5:72b1e1674d798460e79d78fa37e9f56dZaanmeldcentrumz#Centraal Orgaan opvang asielzoekersZCOAZasielzoekerszTer ApelibZ20220814Z20220813z8https://cdn.nos.nl/image/2022/07/18/880346/1024x576a.jpgibzRegionaal nieuwsZ
Binnenland)
r	   r   r   tagsmodified_timestampmodified_dateupload_dater   	timestamp
categoriesr   )r   r   Zplaylist_countz~https://nos.nl/artikel/2440789-wekdienst-16-8-groningse-acties-tien-jaar-na-zware-aardbeving-femke-bol-in-actie-op-ek-atletiekZ2440789uf   Wekdienst 16/8: Groningse acties tien jaar na zware aardbeving • Femke Bol in actie op EK atletiek z$md5:0bd277ed7a44fc15cb12a9d27d8f6641Z	wekdienstZ20220816i)"bz8https://cdn.nos.nl/image/2022/08/16/888178/1024x576a.jpgZ
Buitenland)
r	   r   r   r   r   r   r   r   r   r   zZhttps://nos.nl/video/2452718-xi-en-trudeau-botsen-voor-de-camera-op-g20-top-je-hebt-gelektZ2452718z@Xi en Trudeau botsen voor de camera op G20-top: 'Je hebt gelekt'Z20221117z$md5:61907dac576f75c11bf8ffffd4a3cc0fXiZTrudeauZG20u
   indonesiéz8https://cdn.nos.nl/image/2022/11/17/916155/1024x576a.jpgi\uc)
r	   r   r   r   r   r   r   r   r   r   r   )r   r   Zplaylist_mincountc                 c   s   |D ]}| ddkrz| jt|d|dd\}}t|d | d| d||t| d	d
d t|dd D dV  q| ddkrt|d | dt|dddV  qd S )Ntypevideo)sourcer   r   )r
   r	   r   r   r   c                 S   s.   g | ]&}t |d dd|d|ddqS ))r   .F)get_allwidthheight)r   r   r   )r   get).0image r!   :/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/nosnl.py
<listcomp>R   s
   z+NOSNLArticleIE._entries.<locals>.<listcomp>)ZimagesByRatio.    )r	   r   r   formatsZ	subtitlesr   Z
thumbnailsaudio)ZmediasrcZmp3)r	   r   r   r
   )r   Z#_extract_m3u8_formats_and_subtitlesr   strr   )selfnextjs_json
display_iditemr%   Zsubtitler!   r!   r"   _entriesF   s.      



zNOSNLArticleIE._entriesc                 C   s   |  |dd\}}| ||}| ||d d d }d| |dkrR|d gn|d |t|d	 |d
p| d
ddg||dp| dddg||dt|d|dp| ddg|t|dt	|dd
S )Nr   r+   propsZ	pagePropsdataZplaylistr   itemsr	   r   zog:titleztwitter:titler   ztwitter:descriptionzog:descriptionkeywordsZ
modifiedAtZshareImageSrczog:imageztwitter:imageZpublishedAt)r   .label)
_typeentriesr	   r   r   r   r   r   r   r   )
Z_match_valid_urlgroupZ_download_webpageZ_search_nextjs_datar-   r(   r   Z_html_search_metar   r   )r)   r   Z	site_typer+   Zwebpager*   r!   r!   r"   _real_extracta   s$     

zNOSNLArticleIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr-   r6   r!   r!   r!   r"   r      sn   
?r   N)commonr   utilsr   r   r   r   r!   r!   r!   r"   <module>   s   