
    VGh6.                         d dl Z d dlZddlm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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y)    N   )InfoExtractor   )	HTTPError)ExtractorErrorOnDemandPagedList
clean_htmlextract_attributesget_element_by_idint_or_noneparse_countparse_durationunified_timestampurl_or_noneurlencode_postdataurljoin)traverse_objc                       e Zd ZdZdZddddddd	d
dedddddddddddddedddd
dddddd d!d"ed#dd$d
d%d&id'd(d)d*dd+d,d-d.ed/d0d1d
dd2d3d*d4d+d+d,d.d-ed0d1d5
dd6d7dd8d9d:d;d<ed=d>d5
d?gZdd0dd=d@ZdAZdB Z	dC Z
yD)ENewgroundsIE
newgroundsz]https?://(?:www\.)?newgrounds\.com/(?:audio/listen|portal/view)/(?P<id>\d+)(?:/format/flash)?z.https://www.newgrounds.com/audio/listen/549479 fe6033d297591288fa1c1f780386f07a549479mp3zB7 - BusModeBurn7i<0R20130911   z$md5:b8b3c2958875189f07d8e313462e8c4fr   z/re:^https://aicon\.ngfiles\.com/549/549479\.png)idexttitleuploader	timestampupload_dateduration
view_countdescription	age_limit	thumbnail)urlmd5	info_dictz(https://www.newgrounds.com/portal/view/1 fbfb40e2dc765a7e830cb251d370d9811mp4z	Scrotum 1zBrian-BeatoniW820000407zScrotum plays "catch."   z3re:^https://picon\.ngfiles\.com/0/flash_1_card\.png)
r   r   r   r    r!   r"   r$   r%   r&   r'   z,http://www.newgrounds.com/portal/view/689400689400zZTV News Episode 8z	ZONE-SAMAiOҰX20170225z$md5:aff9b330ec2e78ed93b1ad6d017accc6z=re:^https://picon\.ngfiles\.com/689000/flash_689400_card\.pngskip_downloadT)r(   r*   paramsz-https://www.newgrounds.com/portal/view/297383 2c11f5fd8cb6b433a63c89ba3141436c297383zMetal Gear Awesome	EgoraptoriLjC20060223z$md5:9246c181614e23754571995104da92e0   z=re:^https://picon\.ngfiles\.com/297000/flash_297383_card\.pngz:https://www.newgrounds.com/portal/view/297383/format/flash 5d05585a9a0caca059f5abfbd3865524swf)
r   r   r   r%   r    r"   r!   r$   r&   r'   z-https://www.newgrounds.com/portal/view/823109823109zRouge Futa Fleshlight FuckzbI made a fleshlight model and I wanted to use it in an animation. Based on a video by CDNaturally.DefaultUser1220211122ia   z=re:^https://picon\.ngfiles\.com/823000/flash_823109_card\.png)r(   r*   )etmaz#https://www.newgrounds.com/passportc                    | j                  | j                  d d      }t        | j                  | j                  d|dd             }| j	                  |d dd| j                  ddt        i | j                  |      ||d	      
      }t        |ddt        hf      x}r t        dj                  |      xs dd      y )NzDownloading login pagez<form action="([^"]+)"zlogin endpointdefaultz
Logging inapplication/jsonXMLHttpRequestAcceptRefererX-Requested-With)usernamepassword)headersdataerrors.z, zUnknown ErrorT)expected)_download_webpage
_LOGIN_URLr   _search_regex_download_jsonr   _hidden_inputsr   strr   join)selfrL   rM   login_webpage	login_urlresultrP   s          d/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/newgrounds.py_perform_loginzNewgroundsIE._perform_login   s    ..tF^_DOOT-?-?%}6FPT .@ .V W	$$Yl( 0M
 # $
!!-0$
  $
 	 %  "&8S3%*@AA6A 6!2!EoPTUU B    c                    | j                  |      }	 | j                  ||      }| j                  d|dd       }|rd }| j                  ||      dddg}n| j                  d| |d	|d
d      }g }t        |dt        hf      }t        |dt        j                  hdf      D ]@  \  }	t        d d       |j!                  fdt        |	ddt"        hf      D               B |s| j%                  d|dd      }t'        |      dk(  rFt        | j%                  d|dd             |d   d<   | j%                  d|dd       }
|
dk(  rd|d   d<   | j)                  ||       || j+                  |      |t-        | j                  d|d d             t/        | j%                  d!|d"d             || j1                  |      t3        t5        d#|            xs | j7                  |      | j8                  j;                  | j%                  d$|d%d&            t=        | j%                  d'|d(d             d)
S # t        $ rI}t        |j                  t
              r)|j                  j                  dk(  r| j                           d }~ww xY w)*Ni  z*embedController\(\[{"url"\s*:\s*("[^"]+"),z	media urlrD   sourcer   )r(   	format_idqualityz(https://www.newgrounds.com/portal/video/rF   rG   rH   )rN   authorsources.c              3   *   K   | ]
  }|d   yw))rb   rc   r(   N ).0r(   rb   rc   s     r]   	<genexpr>z-NewgroundsIE._real_extract.<locals>.<genexpr>   s(      Q  "+&  Qs   src)z:(?s)<h4[^>]*>(.+?)</h4>.*?<em>\s*(?:Author|Artist)\s*</em>z#(?:Author|Writer)\s*<a[^>]+>([^<]+)r    F)fatalz%"filesize"\s*:\s*["\']?([\d]+)["\']?,filesizer   z*"description"\s*:\s*["\']?([^"\']+)["\']?,z
media typez
Audio Filenonevcodecz;itemprop="(?:uploadDate|datePublished)"\s+content="([^"]+)"r!   z""duration"\s*:\s*["\']?(\d+)["\']?r#   author_commentsz$<h2\s+class=["\']rated-([etma])["\']r&   r?   z:(?s)<dt>\s*(?:Views|Listens)\s*</dt>\s*<dd>([\d\.,]+)</dd>z
view count)
r   r   r    r!   r#   formatsr'   r%   r&   r$   )	_match_idrR   r   
isinstancecauser   statusraise_login_requiredrT   _parse_jsonrU   r   rW   dictitemsr   extendr   _html_search_regexlen_check_formats_html_extract_titler   r   _og_search_thumbnailr	   r   _og_search_description
_AGE_LIMITgetr   )rY   r(   media_idwebpageerrormedia_url_stringr    rq   
json_videore   video_type_descriptionrb   rc   s              @@r]   _real_extractzNewgroundsIE._real_extract   s   >>#&	,,S(;G  --97KY] . _H''(8(C% G ,,/WX`Wa-bdl,$4w, J G#JC50ABH&2:	DJJ<Y\?]&^ Q"	7%in5 Q *'C3NO	Q QQ ..9:A: / H
 w<1%01H1H8':W[ 2I 2] &^GAJz" &*%<%<=w^b &= &d"%5'-
8$GX.--g6 *4+=+=Nd ,> ,4 5 't'>'>5w
TX (? (Z [227;,->HI 8..w7,,T-D-D7+WZ .E .\ ]%d&=&=Mt '> '5 6!
 	
a  	%++y1ekk6H6HC6O))+	s   H7 7	J	 AJJ	N)__name__
__module____qualname___NETRC_MACHINE
_VALID_URLint_TESTSr   rS   r^   r   rh   r_   r]   r   r      sf   !NqJ?1##%AK
" :1 &"%3O
" >)##%AY
 T
& ?1)##%AY
  L1)/#%#Y
  ?1'%#Y
_]F~ 	J 7JV G
r_   r   c                   F    e Zd ZdZdZddddddd	d
dddddddgZd Zy)NewgroundsPlaylistIEzNewgrounds:playlistzUhttps?://(?:www\.)?newgrounds\.com/(?:collection|[^/]+/search/[^/]+)/(?P<id>[^/?#&]+)z*https://www.newgrounds.com/collection/catscatsCats)r   r   -   r(   r*   playlist_mincountz*https://www.newgrounds.com/collection/dogsdogsDogs   z1http://www.newgrounds.com/audio/search/title/catsT)r(   only_matchingc                    | j                  |      }| j                  ||      }| j                  |d       }| j                  d|d|      }g }t	        j
                  d|      D ]]  \  }}}t        |      j                  d      }	|	dvr&|j                  | j                  d| t        j                         |             _ | j                  |||      S )	NrD   z)(?s)<div[^>]+\bclass=["\']column wide(.+)zwide columnzF(<a[^>]+\bhref=["\'][^"\']+((?:portal/view|audio/listen)/(\d+))[^>]+>)class)zitem-portalsubmissionzitem-audiosubmissionhttps://www.newgrounds.com/)ievideo_id)rr   rR   r~   rT   refindallr
   r   append
url_resultr   ie_keyplaylist_result)
rY   r(   playlist_idr   r   entriesrB   pathr   a_classs
             r]   r   z"NewgroundsPlaylistIE._real_extract   s    nnS)((k:(($(? $$8]G % 5 !#Y" 		BAtX )+//8GOONN1$8#**,x   AB		B ##G[%@@r_   N)r   r   r   IE_NAMEr   r   r   rh   r_   r]   r   r      sY    #GiJ;
   <
   CF&Ar_   r   c                   R    e Zd ZdZdZdddidddddid	dd
ddiddgZdZd Zd Zy)NewgroundsUserIEzNewgrounds:userzEhttps?://(?P<id>[^\.]+)\.newgrounds\.com/(?:movies|audio)/?(?:[#?]|$)z"https://burn7.newgrounds.com/audior   burn7   r   z#https://burn7.newgrounds.com/moviesr   z*https://brian-beaton.newgrounds.com/movieszbrian-beaton
      c              #     K   |dz  }| j                  | d| |d| ddd      }t        |dd	d	t        hf      D ]D  }| j                  d
|dd      \  }}| j	                  d| t
        j                         |       F y w)Nr   z?page=zDownloading page z0application/json, text/javascript, */*; q = 0.01rG   )rI   rK   )noterN   ry   .zD<a[^>]+\bhref=["\'][^"\']+((?:portal/view|audio/listen)/(\d+))[^>]+>r(   )r   r   )groupr   )rU   r   rW   rT   r   r   r   )rY   
channel_idr(   page
posts_infopostr   r   s           r]   _fetch_pagezNewgroundsUserIE._fetch_page#  s     	((e6$ *$TF+L$46 ) 
 !gsC#-GH 	iD!//We6 0 +ND( //$?v"FH[H[H]_ghh		is   BBc                     | j                  |      }t        t        j                  | j                  ||      | j
                        }| j                  ||      S )N)rr   r   	functoolspartialr   
_PAGE_SIZEr   )rY   r(   r   r   s       r]   r   zNewgroundsUserIE._real_extract1  sQ    ^^C(
#I$5$5j#%/04A ##GZ88r_   N)	r   r   r   r   r   r   r   r   r   rh   r_   r]   r   r     sn    GYJ3'
 ! 5'
  <.
  F& Ji9r_   r   )r   r   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   utils.traversalr   r   r   r   rh   r_   r]   <module>r      sT     	 ! -    +@
= @
F.A= .Ab,9} ,9r_   