
    Ği6.                         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dS )    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
dDS )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        d d          }t          | j        |                     d|dd                     }|                     |d dd| j        ddt          i |                     |          ||d	          
          }t          |ddt          hf          x}r&t          d
                    |          pdd          d S )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          `C:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/newgrounds.py_perform_loginzNewgroundsIE._perform_login   s    ..tF^__DOT-?-?%}6FPT .@ .V .V W W	$$Yl( 0M
 M
 # $
!!-00$
  $
 $
 $
  	 %   "&8S3%*@AAA6 	V 6!2!2!EoPTUUUU	V 	V    c                    |                      |          }	 |                     ||          }nQ# t          $ rD}t          |j        t
                    r$|j        j        dk    r|                                   d }~ww xY w|                     d|dd           }|rd }| 	                    ||          dddg}n| 
                    d| |d	|d
d          }g }t          |dt          hf          }t          |dt          j        hdf          D ]U\  }	t          d d                   |                    fdt          |	ddt"          hf          D                        V|s|                     d|dd          }t'          |          dk    rYt          |                     d|dd                     |d         d<   |                     d|dd           }
|
dk    rd|d         d<   |                     ||           ||                     |          |t-          |                     d|d d                     t/          |                     d!|d"d                     ||                     |          t3          t5          d#|                    p|                     |          | j                            |                     d$|d%d&                    t=          |                     d'|d(d                     d)
S )*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 V  dS ))rb   rc   r(   N ).0r(   rb   rc   s     r]   	<genexpr>z-NewgroundsIE._real_extract.<locals>.<genexpr>   sQ       Q Q  "+&    Q Q Q Q Q Qr_   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(;;GG 	 	 	%+y11 ,ek6HC6O6O))+++	
  --97KY] . _ _ 	QH''(8(CC%  GG ,,-bX`-b-bdl,$4w w,  J G#JC50ABBH&2:	DJ<Y\?]&^&^ Q Q"	7%in55 Q Q Q Q Q *'C3NOO	Q Q Q Q Q Q Q  	..9:A: /  H
 w<<1%01H1H8':W[ 2I 2] 2] &^ &^GAJz" &*%<%<=w^b &= &d &d"%55'-
8$GX...--g66 *4+=+=Nd ,> ,4 ,4 5 5 't'>'>5w
TX (? (Z (Z [ [227;;,->HHII 8..w77,,T-D-D7+WZ .E .\ .\ ] ]%d&=&=Mt '> '5 '5 6 6!
 
 	
s   0 
A>?A99A>N)__name__
__module____qualname___NETRC_MACHINE
_VALID_URLint_TESTSr   rS   r^   r   rh   r_   r]   r   r      s       !NqJ?1##%AK
 
 " :1 &"%3O
 
 " >)##%AY
 
 T
 & ?1)##%AY
 
   L1)/#%#Y
 
   ?1'%#Y
 
 _]F~ 	 J 7JV V V G
 G
 G
 G
 G
r_   r   c                   H    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dS )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                    |                      |          }|                     ||          }|                     |d           }|                     d|d|          }g }t	          j        d|          D ]r\  }}}t          |                              d          }	|	dvr-|                    | 	                    d| t                                          |                     s|                     |||          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   s0   nnS))((k::(($(?? $$8]G % 5 5 !#Y" " 		B 		BAtX )++//88GOOONN8$88#**,,x   A AB B B B
 ##G[%@@@r_   N)r   r   r   IE_NAMEr   r   r   rh   r_   r]   r   r      s        #GiJ;
 
    <
 
    C F&A A A A Ar_   r   c                   T    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dS )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              #   4  K   |dz  }|                      | d| |d| ddd          }t          |dd	d	t          hf          D ]Q}|                     d
|dd          \  }}|                     d| t
                                          |          V  Rd S )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      	((  $  *+T++L$46 6 )  
 !gsC#-GHH 	i 	iD!//We6 0 + +ND( //"F"F"FH[H[H]H]_ghhhhhh		i 	ir_   c                     |                      |          }t          t          j        | j        ||          | j                  }|                     ||          S )N)rr   r   	functoolspartialr   
_PAGE_SIZEr   )rY   r(   r   r   s       r]   r   zNewgroundsUserIE._real_extract1  sZ    ^^C((
#I$5j#%/ %/04A A ##GZ888r_   N)	r   r   r   r   r   r   r   r   r   rh   r_   r]   r   r     s        GYJ3'
 !  5'
   <.
   F& Ji i i9 9 9 9 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      sx       				 ! ! ! ! ! ! - - - - - -                            + * * * * *@
 @
 @
 @
 @
= @
 @
 @
F.A .A .A .A .A= .A .A .Ab,9 ,9 ,9 ,9 ,9} ,9 ,9 ,9 ,9 ,9r_   