
    VGh                     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                 \     j                  |      } j                  ||d       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}|||dddd|idg||| j	                  dddd      | |d | d!       |d"      ||d#S )$NT)impersonatez?<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                 H    t        j                  d|  d| d            S )Nz<span[^>]+class=(?:["\'])?z-count[^>]*>(\d+)Fr$   )r   _html_search_regex)klassselfwebpages    e/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/samplefocus.pyextract_countz2SampleFocusIE._real_extract.<locals>.extract_countM   s6    t66-eW4EFe  7  - . .    noneReferer)r   r   vcodecacodechttp_headersz6<a[^>]+href=(["\'])/license\1[^>]*>(?P<license>[^<]+)<r   zsample-z
-favoritescomments)r   r   formatsr   r   r   r   r   r   r   r9   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   r9   r(   r'   bodyr   r   mobj
breadcrumbr   _namer2   r0   s   `                  @r1   _real_extractzSampleFocusIE._real_extract%   sQ   ^^C(
((jd(K&&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!!$'(	.  s!  %" ..I%y / B ''')J(GH*:6 $-
 	
r3   N)__name__
__module____qualname__
_VALID_URLint_TESTSrL    r3   r1   r
   r
      sa    PJH13.0)"% B
" G A'F0D
r3   r
   )r@   commonr   utilsr   r   r   r
   rS   r3   r1   <module>rV      s#    	 ! ^
M ^
r3   