U
    g$                     @   sT   d dl Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZ G dd deZdS )    N   )InfoExtractor   )	ExtractorErrordetermine_extextract_attributesget_element_by_class get_element_text_and_html_by_tagparse_durationtraverse_objtry_callurl_or_nonec                   @   sT  e Zd Z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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 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d,dd/dd0d1d2d	d3d-dd	d.d(dd3dd/dd4d5d6d	d7d-dd	d.d(dd7dd/dd8d9d:d	d;d-dd	d.d(d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artist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           
         s  |  |}| || td }|s|t fddp6d}tt|d}|sXtdnt	d|rptdd	d
| 
|dS g }ttd|dD ]v\}}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thfd	}	||	|dd|	d dkrdnd d q| ||t|dS )Nr#   c                      s   t d d S )Niframer   )r	    Zwebpager%   ?/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/extractor/nekohacker.py<lambda>       z,NekoHackerIE._real_extract.<locals>.<lambda> srcz%No playlist or embed found in webpagez https?://(?:\w+\.)?spotify\.com/z Spotify embeds are not supportedT)expectedGenericz(<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}.r*   )rematchreplace)xr%   r%   r'   r(      r)   r   zdata-albumart)	r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   )Z	_match_idZ_download_webpager   r   r   r   getr   r/   r0   Z
url_result	enumeratefindallr   r   r
   appendZplaylist_result)
selfr   Zplaylist_idr#   r$   Z
iframe_srcentriesr   r   entryr%   r&   r'   _real_extract   s@    


zNekoHackerIE._real_extractN)__name__
__module____qualname__Z
_VALID_URLZ_TESTSr:   r%   r%   r%   r'   r      s  Q r   )r/   commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r%   r%   r%   r'   <module>   s   ,