o
    Ikc	                     @   s~   d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ eed	G d
d deZeZdS )z~
$description French television news network, covering world news from the European perspective.
$url euronews.com
$type live
    N)urlparse)Pluginpluginmatcher)validate)	HLSStream)
HTTPStreamupdate_schemez0https?://(?:(?P<subdomain>\w+)\.)?euronews\.com/c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	Euronewsz3https://{subdomain}.euronews.com/api/watchlive.jsonc                 C   s|   | j jj| jtt d}|d}|rtt	| j |dS |d}|r/| j 
d| S |d}|r<| j 
|S d S )Nschemaz1string(.//meta[@property='og:video'][1]/@content))vodz/string(.//div[@data-google-src]/@data-video-id) https://www.youtube.com/watch?v=zXstring(.//iframe[@id='pfpPlayer'][starts-with(@src,'https://www.youtube.com/')][1]/@src))sessionhttpgeturlr   Schema
parse_htmlxpathdictr   streams)selfroot	video_urlvideo_id r   =/usr/lib/python3/dist-packages/streamlink/plugins/euronews.py_get_vod_stream   s   


zEuronews._get_vod_streamc                 C   s   | j jj| jtt tdd}|r| j d| S | j jj| j	j
| jddtt dt itdtdd d}| j jj|tt d	d
t dtdd}t| j |S )Nz'.//div[@data-google-src]/@data-video-idr   r   	subdomain)r   r   c                 S   s
   t d| S )Nzhttps://r   )r   r   r   r   <lambda>5   s   
 z,Euronews._get_live_streams.<locals>.<lambda>okhls)statusprotocolprimaryr%   )r   r   r   r   r   r   r   xml_xpath_stringr   API_URLformatmatchgroup
parse_json	transformr   parse_variant_playlist)r   r   info_urlhls_urlr   r   r   _get_live_streams(   s*    

zEuronews._get_live_streamsc                 C   s$   t | j}|jdkr|  S |  S )Nz/live)r   r   pathr0   r   )r   parsedr   r   r   _get_streamsC   s   

zEuronews._get_streamsN)__name__
__module____qualname__r'   r   r0   r3   r   r   r   r   r
      s
    r
   )__doc__reurllib.parser   streamlink.pluginr   r   streamlink.plugin.apir   streamlink.stream.hlsr   streamlink.stream.httpr   streamlink.utils.urlr	   compiler
   
__plugin__r   r   r   r   <module>   s    8