
    yf                     B    d dl Z ddlmZ ddlmZmZmZ  G d de      Zy)    N   )InfoExtractor   )extract_attributesget_element_by_attributeint_or_nonec                   P    e Zd ZdZdddddddd	d
deeg dddddddddgZd Zy)SampleFocusIEz<https?://(?:www\.)?samplefocus\.com/samples/(?P<id>[^/?&#]+)z7https://samplefocus.com/samples/lil-peep-sad-emo-guitar 48c8d62d60be467293912e0e619a512040316zlil-peep-sad-emo-guitarmp3zLil Peep Sad Emo Guitarzre:^https?://.+\.pngzStandard LicenseCapsCtrlcapsctrl)SamplesGuitarzElectric guitar)id
display_idexttitle	thumbnaillicenseuploaderuploader_id
like_countcomment_count
categories)urlmd5	info_dictz5https://samplefocus.com/samples/dababy-style-bass-808T)r   only_matchingz/https://samplefocus.com/samples/young-chop-kickc                 D     j                  |      } j                  ||       j                  ddd      } j                  d      xs  j	                  dd      } j                  d	d
dd      xs! t         j                  ddd            d   } j                        xs  j	                  dd
dd      }g }t        j                  d      D ]  \  }}	}
|j                  |	||
d        d x}}t        j                  d      }|r|j                         \  }}t        dd      }g }|r/t        j                  d|      D ]  \  }}|j                  |         fd}|||||| j	                  dddd      | |d|z         |d      ||dS )Nz?<input[^>]+id=(["\'])sample_id\1[^>]+value=(?:["\'])(?P<id>\d+)z	sample idr   )groupFfatalz<h1>(.+?)</h1>r   zH<input[^>]+id=(["\'])sample_mp3\1[^>]+value=(["\'])(?P<url>(?:(?!\2).)+)r   r   )r$   r"   z,<meta[^>]+itemprop=(["\'])contentUrl\1[^>]*>zmp3 urlr   contentzT<img[^>]+class=(?:["\'])waveform responsive-img[^>]+src=(["\'])(?P<url>(?:(?!\1).)+)zt(?s)<p[^>]+class="comment-author"><a[^>]+href="/users/([^"]+)">([^"]+)</a>.+?<p[^>]+class="comment-body">([^>]+)</p>)author	author_idtextz->By <a[^>]+href="/users/([^"]+)"[^>]*>([^<]+)typeofBreadcrumbListz-<span[^>]+property=(["\'])name\1[^>]*>([^<]+)c                 F    t        j                  d| z  | d            S )Nz-<span[^>]+class=(?:["\'])?%s-count[^>]*>(\d+)Fr#   )r   _html_search_regex)klassselfwebpages    >/usr/lib/python3/dist-packages/yt_dlp/extractor/samplefocus.pyextract_countz2SampleFocusIE._real_extract.<locals>.extract_countM   s1    t66@5He  7  - . .    z6<a[^>]+href=(["\'])/license\1[^>]*>(?P<license>[^<]+)<r   zsample-%s-favoritescomments)r   r   r   r   r   r   r   r   r   r   r3   r   )	_match_id_download_webpage_search_regex_og_search_titler,   r   _og_search_thumbnailrefindallappendsearchgroupsr   )r.   r   r   	sample_idr   mp3_urlr   r3   r'   r&   bodyr   r   mobj
breadcrumbr   _namer1   r/   s   `                  @r0   _real_extractzSampleFocusIE._real_extract%   s*   ^^C(
((j9&&N[ ' .	 %%gU%; 1t?V?Vw@1 $$WU%u % 6 99KDL^L^?! M_ M- :..7:9 	 --g6 6$:Q:QcU%u ;R ;6	 ')zz  3j  ls  (t 	#IvtOO & 	 "&%hyyI7S$(KKM!K-h8H'R

::&VXbc (4!!$'(	. $" ..I%y / B ''(=	(IJ*:6 $
 	
r2   N)__name__
__module____qualname__
_VALID_URLint_TESTSrE    r2   r0   r
   r
      s`    PJH13.0)"% B
" G A'F0<
r2   r
   )r9   commonr   utilsr   r   r   r
   rL   r2   r0   <module>rO      s#    	 ! V
M V
r2   