Ë
    š„jƒ>  ã                   óÂ   — d dl Z 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mZmZ  G d„ de«      Z G d„ d	e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Zy)é    Né   )ÚInfoExtractoré   )ÚExtractorErrorÚdetermine_extÚfloat_or_noneÚint_or_noneÚ
js_to_jsonÚmimetype2extÚparse_iso8601Ústr_or_noneÚstrip_or_noneÚtraverse_objÚurl_or_nonec                   ó6   — e Zd ZdZed„ «       Zd„ Zed„ «       Zy)ÚImgurBaseIEÚ546c25a59c58ad7c                 ó6   — | j                  d|› �t        |«      S )Nzhttps://imgur.com/)Ú
url_resultÚImgurIE)ÚclsÚitem_ids     úM/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/imgur.pyÚ_imgur_resultzImgurBaseIE._imgur_result   s   € à�~‰~Ð 2°7°)Ð<¼gÀwÓOÐOó    c           	      óR   —  | j                   d|› d|› d| j                  › d�|fi |¤ŽS )Nzhttps://api.imgur.com/post/v1/ú/z?client_id=z&include=media,account)Ú_download_jsonÚ
_CLIENT_ID)ÚselfÚendpointÚvideo_idÚkwargss       r   Ú	_call_apizImgurBaseIE._call_api   s@   € Ø"ˆt×"Ñ"Ø,¨X¨J°a¸°zÀÈTÏ_É_ÐL]Ð]sÐtØñ àñ ð 	 r   c                 ó   — d| v ry | xs d S )Nz+Discover the magic of the internet at Imgur© ©Úss    r   Úget_descriptionzImgurBaseIE.get_description    s   € à8¸AÑ=ØØŠy�DÐr   N)	Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   r$   Ústaticmethodr)   r&   r   r   r   r      s4   „ Ø"€JàñPó ðPò ð
 ñó ñr   r   c                   ó°   — e Zd ZdZddddddeeddedd	œd
œddddddeeddedd	œd
œdddœdddœdddddddededdedœd
œdddddddeededddd œd!œgZd"„ Zy#)$r   zYhttps?://(?:i\.)?imgur\.com/(?!(?:a|gallery|t|topic|r)/)(?:[^/?#]+-)?(?P<id>[a-zA-Z0-9]+)zhttps://imgur.com/A61SaA1ÚA61SaA1Úmp4z+MRW gifv is up and running without any bugsit@mTÚ20141120z https://i.imgur.com/A61SaA1h.jpg)ÚidÚextÚtitleÚ	timestampÚupload_dateÚdislike_countÚcomment_countÚrelease_timestampÚrelease_dateÚ
like_countÚ	thumbnail)ÚurlÚ	info_dictzAhttps://imgur.com/mrw-gifv-is-up-running-without-any-bugs-A61SaA1z https://i.imgur.com/A61SaA1.gifvT©r>   Úonly_matchingzhttps://i.imgur.com/crGpqCV.mp4z https://i.imgur.com/jxBXAMC.gifvÚjxBXAMCzFahaka puffer feedingiïxl[Ú20180809g      >@z https://i.imgur.com/jxBXAMCh.jpg)r3   r4   r5   r6   r7   r;   r<   Údurationr9   r:   r=   r8   zhttps://imgur.com/zV03bd5Ú 59df97884e8ba76143ff6b640a0e2904ÚzV03bd5z	Ive - LiziwôeÚ20240315gö(\�ÂuL@z https://i.imgur.com/zV03bd5h.jpg)r3   r4   r5   r6   r7   r<   r8   rD   r9   r:   r;   r=   )r>   Úmd5r?   c                 óˆ  ‡ ‡— ‰ j                  |«      }‰ j                  d|«      }t        |dddd„ hfdffd¬«      st        |› d�d	¬
«      ‚‰ j	                  d|› d�|d¬«      xs dŠg }t        |dddt
        hfdt        hfdt        hfdt        hfdt        hfddd„ hfdœf«      }|j                  d«      }|rm|j                  d«      s%t        t        |d«      «      xs t        |«      |d<   t        |d«      dk(  rd|d<   |j                  dd«       |j                  |«       ‰ j                  d‰d d ¬!«      }|rýˆ ˆfd"„} |d#«      }	t        |	j                  «       «      s |d«      }	t        t!        j"                  d$|«      d%dd&„ hfd'‰ j$                  hfdt        hfd(œf«      }|D ]  }
|
j'                  |	«       Œ t        ‰ j)                  d)‰d*|t*        d¬+«      d,‰ j$                  hfdt        hfd-œ«      }|r:|j'                  |	«       |j'                  d.dd.dd.d.d/œ«       |j                  |«       t-        j.                  ‰ j0                  ‰d ¬0«      }d1t         |d2«      «      t         |d3«      «      t         |d4«      «      t         |d5«      «      d6œ}|d   r|j                  |«       |s‰ j3                  d7|› d8�d	¬
«       ‰ j5                  |«       ‰ j7                  ‰d ¬!«      ‰ j9                  ‰ j;                  ‰d¬!«      «      d9œt        |d:d;„ hfd<d=d>„ hfd<d?t
        hfd@t        hfdAt        hfdBt        hfdCdD„ hfdEt<        hfdFt<        hfdGœ	d¬«      ¥t        |ddddHdI„ hfdJ‰ j8                  hfdKt>        hfdEt<        hfdFt<        hfdLœfd¬«      ¥|| |g dM¢«      x}r|dNdOidPœgnd dNdOidQœ¥S )RNÚmediar   Útypec                 ó   — | dk(  xs d S )NÚvideor&   )Úts    r   ú<lambda>z'ImgurIE._real_extract.<locals>.<lambda>w   s   €  A¨¡LÒ$8°D€ r   )ÚmetadataÚis_animatedF)Úget_allz! is not a video or animated imageT)Úexpectedzhttps://i.imgur.com/z.gifv)ÚfatalÚ r>   r4   ÚwidthÚheightÚsizerP   Ú	has_soundc                 ó   — | rd S dS )NÚnoner&   )Úbs    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>„   s   € Á1¸4€ È&€ r   )r>   r4   rV   rW   ÚfilesizeÚacodec)rJ   r   Ú	mime_type)rJ   r   rK   Úimager[   r^   Ú
preferenceiöÿÿÿz+(?s)<div class="video-elements">(.*?)</div>zvideo elements©Údefaultc                 óp   •— dD �ci c]%  }|t        ‰j                  | › d|› �‰d ¬«      «      “Œ' c}S c c}w )N)rV   rW   ú:rb   )r	   Ú_og_search_property)Ú
media_typeÚpr    Úwebpages     €€r   Úog_get_sizez*ImgurIE._real_extract.<locals>.og_get_size•   sN   ø€ ð 1öàð ”{ 4×#;Ñ#;¸z¸lÈ!ÈAÈ3Ð<OÐQXÐbfÐ#;Ó#gÓhÑhòð ùò s   †*3rM   z7<source\s+src="(?P<src>[^"]+)"\s+type="(?P<type>[^"]+)".c                 ó*   — | j                  d«      d   S )Nr   r   )Ú	partitionr'   s    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>¢   s   € °Q·[±[ÀÓ5EÀaÑ5H€ r   Úsrc)Ú	format_idr>   r4   zvar\s+videoItem\s*=zGIF info)Útransform_sourcerT   ÚgifUrl)r>   r]   Úgif)rn   ra   r4   r^   ÚvcodecÚ	container)Úhtmlrc   Útwitterztwitter:player:streamz"twitter:player:stream:content_typeztwitter:widthztwitter:height)rn   r>   r4   rV   rW   zNo sources found for video z. Maybe a plain image?©r5   ÚdescriptionÚ
account_idc                 ó2   — t        | «      rt        | «      S d S ©N)r	   Ústr)Úas    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>Ñ   s   € Ä;ÈqÄ>¼¸Q»€ ÐW[€ r   ÚaccountÚusernamec                 ó    — t        | «      xs d S rz   ©r   ©Úxs    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>Ò   s   € ¼}ÈQÓ?OÒ?WÐSW€ r   Ú
avatar_urlÚupvote_countÚdownvote_countr9   Ú	is_maturec                 ó   — | rdS d S )Né   r&   r�   s    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>×   s   € ¹A°b€ À4€ r   )Ú
updated_atÚ
created_atrŠ   )	Úuploader_idÚuploaderÚuploader_urlr<   r8   r9   Ú	age_limitr6   r:   r5   c                 ó    — t        | «      xs d S rz   r€   r�   s    r   rO   z'ImgurIE._real_extract.<locals>.<lambda>Ü   s   € ¬m¸AÓ.>Ò.FÀ$€ r   rw   rD   )r5   rw   rD   r6   r:   )ÚthumbnailUrlztwitter:imagezog:imageÚAcceptz*/*)r>   Úhttp_headers)r3   ÚformatsÚ
thumbnailsr’   ) Ú	_match_idr$   r   r   Ú_download_webpager   r{   r	   Úgetr   r   Ú
setdefaultÚappendÚ_search_regexÚanyÚvaluesÚreÚfinditerÚ_proto_relative_urlÚupdateÚ_search_jsonr
   Ú	functoolsÚpartialÚ_html_search_metaÚraise_no_formatsÚ_remove_duplicate_formatsÚ_og_search_titler)   Ú_og_search_descriptionr   r   )r    r>   r"   Údatar“   Ú	media_fmtÚ	media_urlÚvideo_elementsrj   rX   ÚfÚgif_jsonÚsearchÚtwitter_fmtÚthumbnail_urlri   s   `              @r   Ú_real_extractzImgurIE._real_extracts   sÊ  ù€ Ø—>‘> #Ó&ˆØ�~‰~˜g xÓ0ˆÜ˜D 7¨AØÑ8Ð9Ð:Ø+ð0-ð #.à7<õ>ô ! H :Ð-NÐ!OÐZ^Ô_Ð_Ø×(Ñ(Ø" 8 *¨EÐ2°HÀEð )ó Kò QØNPð 	àˆä  ¨°ØœK˜=Ð)ØœC˜5�>Ø¤˜}Ð-Ø¤+ Ð/Ø¤+ Ð/Ø! ;Ñ1PÐ0QÐRñ5
ð (ó ˆ	ð —M‘M %Ó(ˆ	ÙØ—=‘= Ô'Ü#/´ØÐ3ó15ó $6ò $RÜ9FÀyÓ9Qð ˜%Ñ ä˜DÐ"6Ó7¸7ÒBØ&,�	˜(Ñ#Ø×$Ñ$ \°3Ô7Ø�N‰N˜9Ô%à×+Ñ+Ø:ØÐ%¨tð ,ó 5ˆñ õñ ˜wÓ'ˆDÜ�t—{‘{“}Ô%Ù" 7Ó+�ä"Ü—‘ÐVÐXfÓgØØ"(Ñ+HÐ*IÐ!JØ! D×$<Ñ$<Ð#=Ð>Ø"¤\ NÐ3ñð óˆGð ò �Ø—‘˜•ðô $ D×$5Ñ$5Ø&¨°¸XÜ!+°5ð %6ó %:ð % t×'?Ñ'?Ð&@ÐAØ!'¬+¨Ð 7ñ<óˆHñ Ø—‘ Ô%Ø—‘Ø!&Ø"%Ø Ø$Ø#Ø!&ñ!ô ð —‘˜xÔ(ä×"Ñ" 4×#9Ñ#9ÀÐQUÔVˆð #Ü™vÐ&=Ó>Ó?Ü¡Ð'KÓ LÓMÜ ¡¨Ó!8Ó9Ü!¡&Ð)9Ó":Ó;ñ
ˆð �uÒØ�N‰N˜;Ô'áØ×!Ñ!Ø-¨h¨ZÐ7MÐNÐY]ð "ô _à×&Ñ& wÔ/ð ×*Ñ*¨7¸DÐ*ÓAØ×/Ñ/°×0KÑ0KÈGÐ]_Ð0KÓ0`Óañ
ô ˜4Ø ,Ñ/[Ð.\Ð]Ø&¨
Ñ5WÐ4XÐYØ!*¨L¼;¸-Ð HØ-´¨}Ð=Ø"2´[°MÐ!BØ"1´K°=Ð!AØ)Ñ,GÐ+HÐIØ:¼]¸OÐLØ&2´]°OÐ%Dñ
"ð ô
ð
ô ˜4 '¨1¨jØ!Ñ$FÐ#GÐHØ -°×0DÑ0DÐ/EÐFØ'¬-¨Ð9Ø:¼]¸OÐLØ&2´]°OÐ%Dñ;ð "ð ôð
ð* Øñ %+Ò+XÓ$YÐY�=ÐYð %Ø!)¨5Ð 1ññ ð aeØ% uÐ-ò7
ð 	
r   N)r*   r+   r,   Ú
_VALID_URLÚintÚ_TESTSr²   r&   r   r   r   r   '   sû   „ Øm€Jð +àØØBØ#Ø%Ø Ø Ø!+Ø&ØØ;ñ
ñð" SàØØBØ#Ø%Ø Ø Ø!+Ø&ØØ;ñ
ñð" 2Øñð 1Øñð 2àØØ,Ø#Ø%Ø&ØØØ Ø!+Ø;Ø ñ
ñð$ +Ø1àØØ Ø#Ø%ØØ ØØ Ø!+Ø&Ø;ñ
ñ	ðkG€FóRv
r   r   c                   ó   — e Zd ZdZd„ Zy)ÚImgurGalleryBaseIETc                 óÚ  — | j                  |«      }| j                  d|dd¬«      }t        |dd„ hfd| j                  hfdœ«      }t        |d	«      rqt        |d
d„ dd„ hf«      }d }| j                  rt        |«      dk(  r|d   }|s9| j                  t        | j                  |«      |«      }|j                  |«       |S |}| j                  |«      }d|d<   |j                  |«       |S )NÚalbumsFi”  )rT   Úexpected_statusr5   c                 ó    — t        | «      xs d S rz   r€   r�   s    r   rO   z2ImgurGalleryBaseIE._real_extract.<locals>.<lambda>õ   s   € ¬-¸Ó*:Ò*B¸d€ r   rw   rv   Úis_albumrJ   c                 ó>   — |j                  d«      dk(  xs |d   d   S )NrK   rM   rP   rQ   )r—   )Ú_Úvs     r   rO   z2ImgurGalleryBaseIE._real_extract.<locals>.<lambda>ü   s"   €  a§e¡e¨F£m°wÑ&>Ò&^À!ÀJÁ-ÐP]ÑB^€ r   r3   c                 ó    — t        | «      xs d S rz   )r   r�   s    r   rO   z2ImgurGalleryBaseIE._real_extract.<locals>.<lambda>ý   s   € ¤¨Q£Ò!7°4€ r   r   r   Úurl_transparentÚ_type)
r•   r$   r   r)   Ú_GALLERYÚlenÚplaylist_resultÚmapr   r    )r    r>   Ú
gallery_idr©   ÚinfoÚitemsÚmedia_idÚresults           r   r²   z ImgurGalleryBaseIE._real_extractï   s  € Ø—^‘^ CÓ(ˆ
à�~‰~˜h¨
¸%ÐQTˆ~ÓUˆä˜DØÑ BÐCÐDØ)¨D×,@Ñ,@Ð+AÐBñ#
ó ˆô
 ˜˜jÔ)ä  ØÑ^ØÑ7Ð8ð(:ó ;ˆEð
 ˆHØ�}Š}¤ U£¨q¢Ø  ™8�áØ×-Ñ-Ü˜×*Ñ*¨EÓ2°Jó@�à—‘˜dÔ#Ø�Ø!ˆJà×#Ñ# JÓ/ˆØ)ˆˆW‰Ø�‰�dÔØˆr   N)r*   r+   r,   rÃ   r²   r&   r   r   r·   r·   ì   s   „ Ø€Hór   r·   c                   ó  — e Zd ZdZdZdddœddgdd	d
ddddddddeeedœdœddgdd	d
ddddddddeeedœdœdddœddgdd	dddddeedde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+eeed,d-d.œdœd/dgd0d	d1d2d3d4eed,ed3d5d4d6œdœg	Zy7)8ÚImgurGalleryIEzimgur:galleryzbhttps?://(?:i\.)?imgur\.com/(?:gallery|(?:t(?:opic)?|r)/[^/?#]+)/(?:[^/?#]+-)?(?P<id>[a-zA-Z0-9]+)z http://imgur.com/topic/Aww/ll5VkTr@   z!https://imgur.com/gallery/YcAQlkxÚImgurÚYcAQlkxr1   zRClassic Steve Carell gif...cracks me up everytime....damn the repost downvotes....i¹äùPÚ20130119Ú1648642Úwittyusernameherez https://i.imgur.com/YcAQlkxh.jpgz=https://i.imgur.com/N5Flb2v_d.png?maxwidth=290&fidelity=grand)r3   r4   r5   r6   r7   r‹   rŒ   r:   r=   r;   r�   r9   r8   r<   )r>   Úadd_iesr?   zbhttps://imgur.com/gallery/classic-steve-carell-gif-cracks-me-up-everytime-repost-downvotes-YcAQlkx)r3   r4   r5   r6   r7   r‹   rŒ   r:   r;   r=   r�   r9   r8   r<   z$http://imgur.com/topic/Funny/N8rOuddzhttp://imgur.com/r/aww/VQcQPhMÚVQcQPhMzThe boss is hereiŸ…XÚ20161015Ú19138530Úthematrixcamz=https://i.imgur.com/qCjr5Pi_d.png?maxwidth=290&fidelity=grandz https://i.imgur.com/VQcQPhMh.jpg)r3   r4   r5   r6   r7   r‹   rŒ   r9   r8   r�   r:   r<   r;   r=   z#https://imgur.com/t/unmuted/6lAn9VQÚ6lAn9VQz
Penguins !©r3   r5   é   ©r>   r?   Úplaylist_countz5https://imgur.com/t/unmuted/penguins-penguins-6lAn9VQz#https://imgur.com/t/unmuted/kx2uD3CÚZVMv45iÚIntruderi“h[Ú20180604gHáz®>@z https://i.imgur.com/ZVMv45ih.jpg)r3   r4   r5   r6   r7   r:   r;   r<   r8   r9   rD   r=   z#https://imgur.com/t/unmuted/wXSK0YHÚJCAP4iozre:I got the blues$ud   Lukaâ€™s vocal stylings.

FP edit: donâ€™t encourage me. Iâ€™ll never stop posting Luka and friends.iõ…[Ú20180531z https://i.imgur.com/JCAP4ioh.jpg)r3   r4   r5   rw   r6   r7   r<   r8   rD   r9   r:   r=   r;   N)r*   r+   r,   ÚIE_NAMEr³   r´   rµ   r&   r   r   rÍ   rÍ     s•  „ Ø€GØv€Jð 2Øñð
 3Ø�9àØØiØ#Ø%Ø$Ø+Ø!+Ø;Ø&Ø[Ø Ø Øñ
ñð* tØ�9àØØiØ#Ø%Ø$Ø+Ø!+Ø&Ø;Ø[Ø Ø Øñ
ñ	ð, 6Øñð
 0Ø�9àØØ'Ø#Ø%Ø%Ø&Ø Ø Ø[Ø!+ØØ&Ø;ñ
ñð, 5àØ!ñ
ð ñ	ð GàØ!ñ
ð ñð 5Ø�9àØØØ#Ø%Ø!+Ø&ØØ Ø ØØ;ñ
ñð$ 5Ø�9àØØ*ð DØ#Ø%ØØ ØØ Ø!+Ø;Ø&ñ
ñðGu�Fr   rÍ   c                   óR   — e Zd ZdZdZdZdddœddd	d
œddœddd	d
œddœdddiddœgZy)ÚImgurAlbumIEzimgur:albumz?https?://(?:i\.)?imgur\.com/a/(?:[^/?#]+-)?(?P<id>[a-zA-Z0-9]+)Fzhttp://imgur.com/a/j6OrjTr@   zhttps://imgur.com/a/iX265HXÚiX265HXzenen-no-shouboutairÙ   r   rÛ   z.https://imgur.com/a/enen-no-shouboutai-iX265HXzhttps://imgur.com/a/8pih2Edr3   Ú8pih2Edr   )r>   r?   Úplaylist_mincountN)r*   r+   r,   râ   r³   rÃ   rµ   r&   r   r   rä   rä   �  ss   „ Ø€GØS€JØ€Hð *Øñð -àØ)ñ
ð ñ	ð @àØ)ñ
ð ñð -à�)ð
ð ñð+�Fr   rä   )r¢   r�   Úcommonr   Úutilsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r·   rÍ   rä   r&   r   r   ú<module>rê      sg   ðÛ Û 	å !÷÷ ÷ ñ ô�-ô ô&B
ˆkô B
ôJ"˜ô "ôJyÐ'ô yôxÐ%õ r   