a
    h                     @   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g d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(g d)d'd*d+d+d"gd,
d-d.gZd/d0 Zd1d2 Zd3S )4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:72b1e1674d798460e79d78fa37e9f56d)Z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!   K/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/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~| g d||dp| g d||dt|d|dp| ddg|t|dt	|dd
S )Nr   r+   propsZ	pagePropsdataZplaylistr   itemsr	   r   )r   zog:titleztwitter:titler   )r   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   