
    VGh)                         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	 ddl
mZ  G d de      Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    N   )InfoExtractor   )
clean_htmlint_or_nonejoin_nonemptystr_or_noneurl_or_none)traverse_objc                   :    e Zd ZdZdZdZdZdZdZdZ	d Z
d Zd Zy)TapTapBaseIEz`V=1&PN=WebApp&LANG=zh_CN&VN_CODE=102&LOC=CN&PLT=PC&DS=Android&UID={uuid}&OS=Windows&OSV=10&DT=PCz:https://www.taptap.cn/webapiv2/video-resource/v1/multi-getNidc                     i |d| j                   j                  t        j                               i} | j                  ||fd|i|d   S )NzX-UA)uuidquerydata)_X_UAformatr   uuid4_download_json)selfurlvideo_idr   kwargss        `/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/taptap.py_get_apizTapTapBaseIE._get_api   sO    G5G&$**"3"3"3"FG"t""3HHHPP    c                    | j                  | j                  |d|i      d   d   }t        |ddt        ht        f      }| j                  ||d      }|D ]I  }t        j                  d	|j                  d
d            s*t        |j                  d      dd      |d<   K t        |      |dt        |ddt        hfddt        hfdd      S )N	video_idsr   listr   play_url)url_h265r   F)fatalz^(hev|hvc|hvt)\dvcodec 	format_idh265_)delim)r   formatsinfoduration	thumbnail)original_urlr   )r-   r.   )get_all)r   
_VIDEO_APIr   r
   any_extract_m3u8_formatsresearchgetr   strr   )r   r   
video_data	video_urlr+   fmts         r   _extract_videozTapTapBaseIE._extract_video   s    ]]4??H[RZD[]\]cdefg
 !j:MP[}^a-bc	,,Y,N 	ZCyy,cggh.CD#01EvUX#YK 	Z
 h-
 :#Z+?)+B[MR) 
 	
r   c                    | j                  |      }| j                  |i}t        | j                  | j                  ||      | j
                        }t        || j                        }t        t        || j                              D cg c]  }i || j                  |       }} | j                  |fi |d|iS c c}w )Nr    r   )	_match_id_INFO_QUERY_KEYr   r   	_INFO_API
_DATA_PATH
_META_PATHset_ID_PATHr;   playlist_result)r   r   r   r   r   metainfoid_entriess           r   _real_extractzTapTapBaseIE._real_extract/   s    >>#&%%x0MM$..(%M@$//S  doo6 dDMM:;= 

!!#&
 = =
 $t##GExEHEE=s   	B>)__name__
__module____qualname__r   r1   r?   r>   r@   rC   rA   r   r;   rH    r   r   r   r      s6    nEMJIOJHJQ
&Fr   r   c                      e Zd ZdZdZdZddehfdehfddd	ehfddd
ehe	hfddehfddehfdfZ
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ig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igdd id!d,d-d.d/d0d1d2d3d2d4d5d	dd id6gZy7)8TapTapMomentIEz+https?://www\.taptap\.cn/moment/(?P<id>\d+)z/https://www.taptap.cn/webapiv2/moment/v3/detail)momenttopic)videos.	pin_videor   rO   created_timeedited_timeauthorusernamer   rP   titlesummary	timestampmodified_timestampuploaderuploader_idrY   descriptionz/https://www.taptap.cn/moment/194618230982052443194618230982052443uP   《崩坏3》开放世界「后崩坏书」新篇章 于淹没之地仰视辰星z$md5:cf66f7819d413641b8b28c8543f4ecdaiZ\a20211005u   乌酱532896	r   rY   r`   r\   upload_dater]   modified_dater^   r_   r   	info_dict2202584mp4B   re:^https?://.*\.(png|jpg)r   extrY   r`   r-   r\   re   r]   rf   r^   r_   r.   skip_downloadm3u8r   rg   playlist_countplaylistparamsz/https://www.taptap.cn/moment/521630629209573493521630629209573493uA   《崩坏：星穹铁道》黄泉角色PV——「你的颜色」z$md5:2c81245da864428c904d53ae4ad2182bi@Hf20240326u   崩坏：星穹铁道	4147325804006511   z/https://www.taptap.cn/moment/540493587511511299r   540493587511511299uF   中式民俗解谜《纸嫁衣7》、新系列《纸不语》公布！z$md5:d60842350e686ddb242291ddfb8e39c9iHFf20240517iQ3Gfu   TapTap 编辑7159244)r   rq   rg   rs   N)rI   rJ   rK   
_VALID_URLr?   rC   r   r7   intr	   rA   _TESTSrL   r   r   rN   rN   ?   s   ?JAINH${m4,{m<vvu5 &$}E7SE*SE2 J A&gA#%",' #

 kE')&0!+$':
   #F+=@ A&XA#%",'/&

 \E')&0!+3*:
   #F+=@ A&]A#%",''$

 #F+}MFr   rN   c                   z    e Zd ZdZdZdZdehfddehehfdZdd	d
ddddddd
ddddidddd
ddddigddidgZ	y)TapTapAppIEz(https?://www\.taptap\.cn/app/(?P<id>\d+)z,https://www.taptap.cn/webapiv2/app/v4/detail)
app_videosrR   .r   rY   r`   textrY   r`   z https://www.taptap.cn/app/168332168332u   原神z$md5:e345f39a5fea5de2a46923f70d5f76abr   rY   r`   r   rg   4058443ri      rk   r   rm   rY   r`   r-   r.   4058462i'  rn   ro   rp   N)
rI   rJ   rK   r|   r?   rC   r7   r   rA   r~   rL   r   r   r   r      s    <J>I:HC5!%vuzlCJ
 2A

 !E:	
 !E:	
& #F+7 Fr   r   c                       e Zd ZdZdZy)TapTapIntlBaseIEz|V=1&PN=WebAppIntl2&LANG=zh_TW&VN_CODE=115&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID={uuid}&CURR=&DT=PC&OS=Windows&OSV=NT%208.0.0z:https://www.taptap.io/webapiv2/video-resource/v1/multi-getN)rI   rJ   rK   r   r1   rL   r   r   r   r      s     KEMJr   r   c                   j    e Zd ZdZdZdZdZdehfddehehfdZ	d	d
ddddddddddddigddidgZ
y)TapTapAppIntlIEz(https?://www\.taptap\.io/app/(?P<id>\d+)z.https://www.taptap.io/webapiv2/i/app/v5/detailappr   rY   r`   r   r   z https://www.taptap.io/app/233287233287u   《虹彩六號 M》z$md5:418285f9c15347fc3cf3e3a3c649f182r   r   rg   
2149708997ri   N   rk   r   rn   ro   rp   N)rI   rJ   rK   r|   r?   r@   rC   r7   r   rA   r~   rL   r   r   r   r      s    <J@IJ:HC5!%vuzlCJ
 2+A

 "/E:	
 	 #F+% Fr   r   c                       e Zd ZdZdZdZdZdZdehfdehfdd	e	hfdd
e
hehfde	hfdde	hfdZ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igdd id!gZy")#TapTapPostIntlIEz)https?://www\.taptap\.io/post/(?P<id>\d+)z6https://www.taptap.io/webapiv2/creation/post/v1/detailid_strpost)rQ   r   published_timerU   rW   rX   r   rY   list_fieldsrZ   r[   z!https://www.taptap.io/post/571785571785z(Arknights x Rainbow Six Siege | Event PVz$md5:f7717c13f6d3108e22db7303e6690bf7i=`20210302zTapTap Editor80224473rd   r   rg   
2149491903ri   z   rk   rl   rn   ro   rp   N)rI   rJ   rK   r|   r?   r>   r@   rC   r   r7   r}   r	   rA   r~   rL   r   r   r   r      s    =JHIOJ;H&6,{m<VcU+sek];C5!%y3%8J 3?A#%",''%

 "CE')&0!++):
   #F+= Fr   r   )r4   r   commonr   utilsr   r   r   r	   r
   utils.traversalr   r   rN   r   r   r   r   rL   r   r   <module>r      sp    	  !  +-F= -F`Y\ Yx$, $NN| N
& >-' -r   