
    VGh                     h    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	  G d de      Z
 G d d	e      Zy)
    N   )InfoExtractor   )determine_extfloat_or_noneint_or_noneparse_iso8601strip_or_nonec                       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ddddddddddddddddg
ZdZdZd Zy)ToggleIEtogglezc(?:https?://(?:(?:www\.)?mewatch|video\.toggle)\.sg/(?:en|zh)/(?:[^/]+/){2,}|toggle:)(?P<id>[0-9]+)zOhttp://www.mewatch.sg/en/series/lion-moms-tif/trailers/lion-moms-premier/343115343115mp4zLion Moms Premierez$md5:aea1149404bff4d7f7b6da11fafd8e6b20150910iU)idexttitledescriptionupload_date	timestampskip_downloadm3u8 downloadurl	info_dictparamsz<http://www.mewatch.sg/en/movies/dug-s-special-mission/341413Tr   only_matchingzWhttp://www.mewatch.sg/en/series/28th-sea-games-5-show/28th-sea-games-5-show-ep11/332861zqhttp://video.toggle.sg/en/clips/seraph-sun-aloysius-will-suddenly-sing-some-old-songs-in-high-pitch-on-set/343331zphttp://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
tvpapi_14711111c                    | j                  |      }ddddddddd| j                  | j                  d|dd}| j                  d|dt	        j
                  |      j                         	      d
   }g }j                  dg       D ]  }|j                  d      |j                  d      }}|r|dk(  s|s0t        |      }	|j                  dd      }|	dk(  rA| j                  ||d|d| dd| dd      }
|
D ]  }d|d   v r|j                  |        |	dk(  r/|j                  | j                  |||d| dd| dd             |	dk(  r/|j                  | j                  |||d| dd| dd             |	dk(  s|j                  |	||d        |sgj                  d       xs g D ]O  }| j                  d!      r|j                  d"      d#k(  s*|j                  d$      d%k(  s?| j!                  |       Q g }j                  d&g       D ]  }t#        |t$              s|j                  d      }|s(d|i}|j                  d'd      }t'        j(                  d(|      }|rD|j+                  t-        |j/                  d)            t-        |j/                  d*            d+       |j                  |        fd,}||t1        j                  d-            t3        j                  d.            t5        j                  d/      xs d       t7        j                  d0             |d1       |d2      ||d3
S )4N r   )LocaleLanguageLocaleCountryLocaleDeviceLocaleUserState0)LocalePlatformSiteGuidDomainIDUDIDApiUserApiPass)initObjMediaID	mediaTypezHhttp://tvpapi.as.tvinci.com/v2_9/gateways/jsonpostgw.aspx?m=GetMediaInfozDownloading video info json)data	MediaNameFilesURLFormatNA m3u8r   zDownloading z m3u8 informationzFailed to download F)r   m3u8_idnoteerrnotefatalz/fpshls/r   mpdz MPD manifest)mpd_idr;   r<   r=   ismz ISM manifest)ism_idr;   r<   r=   )r   r   	format_idMetasallow_unplayable_formatsKey
EncryptionValue1PicturesPicSizez!(?P<width>\d+)[xX](?P<height>\d+)widthheight)rK   rL   c                     t        j                  | dz         xs" j                  | j                         dz               S )NCounter_counter)r   getlower)prefixinfos    `/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/toggle.pycounterz'ToggleIE._real_extract.<locals>.counter   s<    )+,U*9T0UW W    DescriptionDurationCreationDateRatingViewLike)
r   r   r   durationr   average_rating
view_count
like_count
thumbnailsformats)	_match_id	_API_USER	_API_PASS_download_jsonjsondumpsencoderP   r   replace_extract_m3u8_formatsappendextend_extract_mpd_formats_extract_ism_formats	get_param
report_drm
isinstancedictresearchupdateintgroupr
   r   r	   r   )selfr   video_idr   r   rb   
video_file	video_url
vid_formatr   m3u8_formatsfmetara   picturepic_url	thumbnailpic_sizemrU   rS   s                       @rT   _real_extractzToggleIE._real_extract>   s   >>#&
 ')%'$&'(	 >>>>  !
& ""V3$**V:L:S:S:U # W [!((7B/ #	J$.NN5$9:>>(;SzI	T 1	*C#++C4Jf}#99xUJ'
|3DE1*=NO	  :  !
 & &A!QuX- NN1%	&
 t88x
'
|=A1*]K	  9  ! "
 t88x
'
|=A1*]K	  9  ! "
 $!+  ?#	H '*0b .'AB HHUO|;@QUX@XOOH-. 
xx
B/ 	)Ggt,kk%(GwI {{9b1H		>IA   !12!!''("34"  i(!	)$	W
 (-)@A#DHHZ$89&txx'?'G4H+DHHX,>?!&/!&/$
 	
rV   N)	__name__
__module____qualname__IE_NAME
_VALID_URL_TESTSrd   re   r    rV   rT   r   r      s    GwJ`)A%#
 _
 N i C B P r C n FK(FT IIj
rV   r   c                   R    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gZd Zy)	MeWatchIEmewatchzEhttps?://(?:(?:www|live)\.)?mewatch\.sg/watch/[^/?#&]+-(?P<id>[0-9]+)z5https://www.mewatch.sg/watch/Recipe-Of-Life-E1-1793711008625r   u   Recipe Of Life 味之道i_z$md5:6e88cde8af2068444fc8e1bc3ebf257c20201021)r   r   r   r   r   r   r   r   r   ub   https://www.mewatch.sg/watch/Little-Red-Dot-Detectives-S2-搜密。打卡。小红点-S2-E1-176232Tr   zhttps://www.mewatch.sg/watch/Little-Red-Dot-Detectives-S2-%E6%90%9C%E5%AF%86%E3%80%82%E6%89%93%E5%8D%A1%E3%80%82%E5%B0%8F%E7%BA%A2%E7%82%B9-S2-E1-176232z7https://live.mewatch.sg/watch/Recipe-Of-Life-E41-189759c                     | j                  |      }| j                  d|z   |ddi      d   }| j                  d|z   t        j	                         |      S )Nz!https://cdn.mewatch.sg/api/items/segmentsall)querycustomIdztoggle:)rc   rf   
url_resultr   ie_key)ry   r   item_id	custom_ids       rT   r   zMeWatchIE._real_extract   sg    ..%''/'9J. ( 00:<	 	!8??#4iA 	ArV   N)r   r   r   r   r   r   r   r   rV   rT   r   r      sn    GYJF/#A%
 _
 t j I'F0ArV   r   )rg   rt   commonr   utilsr   r   r   r	   r
   r   r   r   rV   rT   <module>r      s5     	 ! Z
} Z
z!A !ArV   