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¬| rÞq¬t|ƒ}|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( | ƒ�p®d@|d'k�r¼d*nd d+œƒ q¬W |
�sÜt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_extractNiöÿÿÿiìÿÿÿiâÿÿÿiØÿÿÿ)
Ú__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
    
