3
b`                 @   s\   d dl mZ d dlZd dlZddlmZ ddlmZmZm	Z	m
Z
mZmZ G dd deZdS )	    )unicode_literalsN   )InfoExtractor   )determine_extExtractorErrorfloat_or_noneint_or_noneparse_iso8601sanitized_Requestc               @   s   e Zd ZdZdZddddddd	d
ddidddddddddd
ddidddddddddd
ddidd d!d"d#d$d"d#d%d"d#d&d"d#d'd"d#d(d"d#d)d"d#g
Zd4d5d6d7d.Zd/Zd0Zd1d2 Z	d3S )8ToggleIEtogglezWhttps?://(?:(?:www\.)?mewatch|video\.toggle)\.sg/(?:en|zh)/(?:[^/]+/){2,}(?P<id>[0-9]+)zOhttp://www.mewatch.sg/en/series/lion-moms-tif/trailers/lion-moms-premier/343115Z343115mp4zLion Moms Premierez$md5:aea1149404bff4d7f7b6da11fafd8e6b20150910iU)idexttitledescriptionupload_date	timestampskip_downloadzm3u8 download)url	info_dictparamszDRM-protected videoz<http://www.mewatch.sg/en/movies/dug-s-special-mission/341413Z341413wvmzDug's Special Missionz$md5:e86c6f4458214905c1772398fabc93e020150827i{UzDRM-protected wvm download)noter   r   r   z6m3u8 links are geo-restricted, but Android/mp4 is okayzWhttp://www.mewatch.sg/en/series/28th-sea-games-5-show/28th-sea-games-5-show-ep11/332861Z332861z&28th SEA Games (5 Show) -  Episode  11z$md5:3cd4f5f56c7c3b1340c50a863f896faaZ20150605i+qUzm3u8 links are geo-restricted)r   r   r   r   skipzqhttp://video.toggle.sg/en/clips/seraph-sun-aloysius-will-suddenly-sing-some-old-songs-in-high-pitch-on-set/343331T)r   only_matchingzphttp://www.mewatch.sg/en/clips/seraph-sun-aloysius-will-suddenly-sing-some-old-songs-in-high-pitch-on-set/343331z>http://www.mewatch.sg/zh/series/zero-calling-s2-hd/ep13/336367z`http://www.mewatch.sg/en/series/vetri-s2/webisodes/jeeva-is-an-orphan-vetri-s2-webisode-7/342302z1http://www.mewatch.sg/en/movies/seven-days/321936z\https://www.mewatch.sg/en/tv-show/news/may-2017-cna-singapore-tonight/fri-19-may-2017/512456z4http://www.mewatch.sg/en/channels/eleven-plus/401585
         (   )zwvm-STBMainzwvm-iPadMainzwvm-iPhoneMainzwvm-AndroidZ
tvpapi_147Z11111c             C   s  | j |}| j||dd}| jd|d| jdd}| jd|d| jd	d}d
d
d
dddddd
||d|dd}tdtj|jd}| j	||d}|d }	g }
x*|j
dg D ]}|j
d|j
d }}| s|dks| rqt|}|jdd
}|dkr$|
j| j||d|d| d| dd q|dkrT|
j| j|||d | d!| dd" q|d#kr|
j| j|||d$| d%| dd& q|d?kr|
j|||| jj
|d( | pd@|d'krd*nd d+ qW |
std,d-d.| j|
 t|j
d/}|j
d0}t|j
d1pd }t|j
d2}t|j
d3p6|j
d4}t|j
d5pP|j
d6}g }x|j
d7g D ]~}t|tszqf|j
d}|sqfd8|i}|j
d9d
}tjd:|}|r|jt|jd;t|jd<d= |j| qfW ||	||||||||
d>
S )ANzDownloading video page)r   z$apiUser\s*:\s*(["\'])(?P<user>.+?)\1ZapiUseruser)defaultgroupz$apiPass\s*:\s*(["\'])(?P<pass>.+?)\1ZapiPasspass r   )ZLocaleLanguageZLocaleCountryZLocaleDeviceZLocaleUserState0)LocaleZPlatformZSiteGuidZDomainIDZUDIDZApiUserZApiPass)ZinitObjZMediaID	mediaTypezHhttp://tvpapi.as.tvinci.com/v2_9/gateways/jsonpostgw.aspx?m=GetMediaInfozutf-8zDownloading video info jsonZ	MediaNameFilesURLFormatNA m3u8r   zDownloading %s m3u8 informationz&Failed to download %s m3u8 informationF)r   m3u8_idr   errnotefatalmpdzDownloading %s MPD manifestz"Failed to download %s MPD manifest)mpd_idr   r2   r3   ismzDownloading %s ISM manifestz"Failed to download %s ISM manifest)ism_idr   r2   r3   r   -r   zDRM-protected video)r   r   	format_id
preferenceformat_notezNo downloadable videos foundT)expectedDurationDescriptionZCreationDateRatingZViewCounterview_counterZLikeCounterZlike_counterZPicturesr   ZPicSizez!(?P<width>\d+)[xX](?P<height>\d+)widthheight)rA   rB   )
r   r   r   durationr   average_rating
view_count
like_count
thumbnailsformats)r   r   )	_match_id_download_webpage_search_regex	_API_USER	_API_PASSr   jsondumpsencode_download_jsongetr   replaceextend_extract_m3u8_formats_extract_mpd_formats_extract_ism_formatsappend_FORMAT_PREFERENCESr   _sort_formatsr	   r
   r   
isinstancedictresearchupdateintr%   )selfr   video_idwebpageZapi_userZapi_passr   reqinfor   rH   
video_file	video_urlZ
vid_formatr   rC   r   
created_atrD   rE   rF   rG   pictureZpic_url	thumbnailZpic_sizem rm   GC:\Users\Broad\Desktop\All-Down\binaries\youtube_dl\extractor\toggle.py_real_extract`   s    






zToggleIE._real_extractNiiii)
__name__
__module____qualname__IE_NAME
_VALID_URL_TESTSrZ   rM   rN   ro   rm   rm   rm   rn   r      sd   


r   )
__future__r   rO   r^   commonr   utilsr   r   r   r	   r
   r   r   rm   rm   rm   rn   <module>   s
    
