a
    hM%                     @   sX   d dl Z 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mZ G dd deZdS )	    N   )InfoExtractor   )ExtractorErrordetermine_extextract_attributesget_element_by_classparse_durationurl_or_none)find_elementtraverse_objc                   @   sd  e Zd ZdZdddddddd	d
ddd	dddgd
dddddddd	dddd	dddgddddddddd	dddd	dddgddddddd d!d	d"ddd	dddgd"d#d$ddgd%d&d'd(dd)d*d+d	d,d-dd	d.d(dgd,dd/dd0d1d2d	d3d-dd	d.d(dgd3dd/dd4d5d6d	d7d-dd	d.d(dgd7dd/dd8d9d:d	d;d-dd	d.d(dgd;d#d/dgd%gZd<d= Zd>S )?NekoHackerIEz<https?://(?:www\.)?nekohacker\.com/(?P<id>(?!free-dl)[\w-]+)z!https://nekohacker.com/nekoverse/Z	nekoverseZ	Nekoverse)idtitlezBhttps://nekohacker.com/wp-content/uploads/2022/11/01-Spaceship.mp3Z 44223701ebedba0467ebda4cc07fb3aaZ1712mp3Z	SpaceshipzQhttps://nekohacker.com/wp-content/uploads/2022/11/Nekoverse_Artwork-1024x1024.jpgnoneZ20221101Neko Hackerr   g     `h@)r   extr   	thumbnailvcodecacodecrelease_datealbumartiststracktrack_numberduration)urlmd5	info_dictzDhttps://nekohacker.com/wp-content/uploads/2022/11/02-City-Runner.mp3Z 8f853c71719389d32bbbd3f1a87b3f08Z1713zCity Runnerr   g     b@zDhttps://nekohacker.com/wp-content/uploads/2022/11/03-Nature-Talk.mp3Z 5a8a8ae852720cee4c0ac95c7d1a7450Z1714zNature Talk   g     e@zFhttps://nekohacker.com/wp-content/uploads/2022/11/04-Crystal-World.mp3Z d8e59a48061764e50d92386a294abd50Z1715zCrystal World   g     h@)r   r   playlistzhttps://nekohacker.com/susume/Zsusumeu!   進め！むじなカンパニーu   https://nekohacker.com/wp-content/uploads/2021/01/進め！むじなカンパニー-feat.-六科なじむ-CV_-日高里菜-割戶真友-CV_-金元寿子-軽井沢ユキ-CV_-上坂すみれ-出稼ぎガルシア-CV_-金子彩花-.mp3Z fb13f008aa81f26ba48f91fd2d6186ceZ711z$md5:1a5fcbc96ca3c3265b1c6f9f79f30fd0uE   https://nekohacker.com/wp-content/uploads/2021/01/OP表-1024x1024.pngZ20210115)r   r   r   r   r   r   r   r   r   r   r   ut   https://nekohacker.com/wp-content/uploads/2021/01/むじな-de-なじむ-feat.-六科なじむ-CV_-日高里菜-.mp3Z 028803f70241df512b7764e73396fdd1Z709u@   むじな de なじむ feat. 六科なじむ (CV: 日高里菜 )ud   https://nekohacker.com/wp-content/uploads/2021/01/進め！むじなカンパニー-instrumental.mp3Z adde9e9a16e1da5e602b579c247d0fb9Z710u0   進め！むじなカンパニー (instrumental)uY   https://nekohacker.com/wp-content/uploads/2021/01/むじな-de-なじむ-instrumental.mp3Z ebb0443039cf5f9ff7fd557ed9b23599Z712u%   むじな de なじむ (instrumental)c                 C   s8  |  |}| ||}td|}|svt|tdddhthdthf}|sRtdnt	d|rjtddd	| 
|d
S | jd|d|i d}g }ttd|dD ]\}}	tt|	dthfdthfdddddthfddd hdfd}
|i |
t|d|dgd|
d dkrdnd d q| ||t|d S )!Nr"   iframeT)taghtmlsrcz%No playlist or embed found in webpagez https?://(?:\w+\.)?spotify\.com/z Spotify embeds are not supported)expectedGenericz"var srp_player_params_[\da-f]+\s*=zplayer params)defaultz(<li[^>]+data-audiopath[^>]+>)r   zdata-audiopathzdata-trackidzdata-tracktitlezdata-albumtitlezdata-tracktimezdata-releasedatec                 S   s   t d| ddS )Nz\d{8}. )rematchreplace)x r0   P/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/nekohacker.py<lambda>       z,NekoHackerIE._real_extract.<locals>.<lambda>r   )r   r   r   r   r   r   r   r   Zartworkr   r   r   r   )r   r   r   r   r   )r   r   )Z	_match_idZ_download_webpager   r   r   r   r
   r   r,   r-   Z
url_resultZ_search_json	enumeratefindallr   r	   appendgetZplaylist_result)selfr   Zplaylist_idZwebpager"   Z
iframe_srcZplayer_paramsentriesr   r   entryr0   r0   r1   _real_extract   sJ    




	zNekoHackerIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr;   r0   r0   r0   r1   r      s  Q r   )r,   commonr   utilsr   r   r   r   r	   r
   Zutils.traversalr   r   r   r0   r0   r0   r1   <module>   s    