o
    i                     @   sl   d dl mZ ddlmZmZmZmZmZmZ ddl	m
Z
 G dd deZG dd deZG d	d
 d
eZdS )   )InfoExtractor   )ExtractorErrorint_or_nonejoin_nonemptymake_archive_idparse_age_limit
remove_end)traverse_objc                   @   s   e Zd ZdgZdZdd ZdS )TV5UnisBaseIECAFc           
      C   sT  |  | }| jd|d dd| j| |f idd | j }|d }|d u r.tdd	d
|ddkrc|d}|dkrE| j| jd |d}tt	d|d uoUd| |o^dt
|d dd|d }| |d d d |d\}}	|td|g||	dt|dthfdthfd d!thfd"thfd#thfd$thfd%dthfd&d'thfd(S ))Nzhttps://api.tv5unis.ca/graphql    querya  {
  %s(%s) {
    title
    summary
    tags
    duration
    seasonNumber
    episodeNumber
    collection {
      title
    }
    rating {
      name
    }
    videoElement {
      __typename
      ... on Video {
        mediaId
        encodings {
          hls {
            url
          }
        }
      }
      ... on RestrictedVideo {
        code
        reason
      }
    }
  }
})r   datavideoElementz#This content is no longer availableT)expected
__typenameRestrictedVideocodei  )	countriesreasonzThis video is restrictedz, error code z: . )delimmediaId	encodingshlsurlmp4LimelightMedia)id_old_archive_idsformats	subtitlestitlesummarytags.durationseasonNumberepisodeNumber
collectionratingname)r$   descriptionr&   r'   season_numberepisode_numberseries	age_limit)_match_valid_urlgroups_download_json_GQL_QUERY_NAME	_gql_argsr   getraise_geo_restricted_GEO_COUNTRIESr   r	   #_extract_m3u8_formats_and_subtitlesr   r
   strr   r   )
selfr   r3   productvideor   r   media_idr"   r#    r@   L/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/tv5unis.py_real_extract   s\   !!#





zTV5UnisBaseIE._real_extractN)__name__
__module____qualname__r9   _GEO_BYPASSrB   r@   r@   r@   rA   r      s    r   c                	   @   sB   e Zd ZdZdZddddgddd	d
ddgZdZedd ZdS )TV5UnisVideoIEztv5unis:videoz9https?://(?:www\.)?tv5unis\.ca/videos/[^/?#]+/(?P<id>\d+)z3https://www.tv5unis.ca/videos/bande-annonces/144041 24a247c96119d77fe1bae8b440457dfa 56862325352147149dce0ae139afced6z/limelightmedia 56862325352147149dce0ae139afced6r   Antigoneu@   re:En aidant son frère .+ dicté par l'amour et la solidarité.=   )r    r!   extr$   r-   r'   r   md5	info_dictproductByIdc                 C   s   d| d  S )Nzid: r   r@   )r3   r@   r@   rA   r6   l   s   zTV5UnisVideoIE._gql_argsN	rC   rD   rE   IE_NAME
_VALID_URL_TESTSr5   staticmethodr6   r@   r@   r@   rA   rG   [   s     rG   c                   @   sx   e Zd ZdZdZddddgddd	d
diddddddddddddddgdddd
diddddgZdZed d! Zd"S )#	TV5UnisIEtv5uniszhttps?://(?:www\.)?tv5unis\.ca/videos/(?P<id>[^/?#]+)(?:/saisons/(?P<season_number>\d+)/episodes/(?P<episode_number>\d+))?/?(?:[?#&]|$)z=https://www.tv5unis.ca/videos/watatatow/saisons/11/episodes/1 43beebd47eefb1c5caf9a47a3fc35589 2c06e4af20f0417b86c2536825287690z/limelightmedia 2c06e4af20f0417b86c2536825287690r   u   L'homme éléphantu@   re:Paul-André et Jean-Yves, .+ quand elle parle du feu au Spot.frzcount:1i     zcount:4	Watatatowz	Season 11   z	Episode 1r   )r    r!   rL   r$   r-   r#   r'   r1   r&   r0   seasonr.   episoder/   rM   z+https://www.tv5unis.ca/videos/boite-a-savon 7898e868e8c540f03844660e0aab6bbe 4de6d0c6467b4511a0c04b92037a9f15z/limelightmedia 4de6d0c6467b4511a0c04b92037a9f15u   Boîte à savonuO   re:Dans le petit village de Broche-à-foin, .+ celle qui fait battre son coeur.i  zcount:5)r    r!   rL   r$   r-   r#   r'   r&   productByRootProductSlugc                 C   s2   d| d  d}| d r|dj | dd   7 }|S )NzrootProductSlug: "r   "r   z%, seasonNumber: {}, episodeNumber: {})format)r3   argsr@   r@   rA   r6      s   zTV5UnisIE._gql_argsNrQ   r@   r@   r@   rA   rV   q   sN    'rV   N)commonr   utilsr   r   r   r   r   r	   utils.traversalr
   r   rG   rV   r@   r@   r@   rA   <module>   s     N