
    V|h>                         S SK r S SKrSSKJr  SSKJrJrJrJrJ	r	J
r
JrJrJrJrJr   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      rg)    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                   >    \ rS rSrSr\S 5       rS r\S 5       r	Sr
g)ImgurBaseIE   546c25a59c58ad7c                 6    U R                  SU 3[        U5      $ )Nzhttps://imgur.com/)
url_resultImgurIE)clsitem_ids     P/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/imgur.py_imgur_resultImgurBaseIE._imgur_result   s    ~~ 27)<gwOO    c           	      R    U R                   " SU SU SU R                   S3U40 UD6$ )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_apiImgurBaseIE._call_api   s>    "",XJazT__L]]st   	 r   c                 &    SU ;   a  g U =(       d    S $ )Nz+Discover the magic of the internet at Imgur ss    r   get_descriptionImgurBaseIE.get_description    s    8A=yDr   r)   N)__name__
__module____qualname____firstlineno__r!   classmethodr   r&   staticmethodr,   __static_attributes__r)   r   r   r   r      s4    "JP P 
  r   r   c                       \ rS rSrSrSSSSSS\\SS\S	S
.S.SSSSSS\\SS\S	S
.S.SSS.SSS.SSSSSSS\S\SS\S.S.SSSSSSS\\S\SSS S!.S"./rS# rS$rg%)&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rE   only_matchingzhttps://i.imgur.com/crGpqCV.mp4z https://i.imgur.com/jxBXAMC.gifvjxBXAMCzFahaka puffer feedingixl[20180809g      >@z https://i.imgur.com/jxBXAMCh.jpg)r:   r;   r<   r=   r>   rB   rC   durationr@   rA   rD   r?   zhttps://imgur.com/zV03bd5 59df97884e8ba76143ff6b640a0e2904zV03bd5z	Ive - Liziwe20240315g(\uL@z https://i.imgur.com/zV03bd5h.jpg)r:   r;   r<   r=   r>   rC   r?   rK   r@   rA   rB   rD   )rE   md5rF   c                   ^ ^ T R                  U5      nT R                  SU5      n[        USSSS 14S44SS9(       d  [        U S3S	S
9eT R	                  SU S3USS9=(       d    Sm/ n[        USSS[
        14S[        14S[        14S[        14S[        14SSS 14S.45      nUR                  S5      nU(       ax  UR                  S5      (       d*  [        [        US5      5      =(       d    [        U5      US'   [        US5      S:X  a  SUS'   UR                  SS5        UR                  U5        T R                  STS S S!9nU(       Ga  U U4S" jnU" S#5      n	[        U	R                  5       5      (       d  U" S5      n	[        [         R"                  " S$U5      S%SS& 14S'T R$                  14S[        14S(.45      nU H  n
U
R'                  U	5        M     [        T R)                  S)TS*U[*        SS+9S,T R$                  14S[        14S-.5      nU(       a:  UR'                  U	5        UR'                  S.SS.SS.S.S/.5        UR                  U5        [,        R.                  " T R0                  TS S09nS1[        U" S25      5      [        U" S35      5      [        U" S45      5      [        U" S55      5      S6.nUS   (       a  UR                  U5        U(       d  T R3                  S7U S83S	S
9  T R5                  U5        T R7                  TS S!9T R9                  T R;                  TSS!95      S9.[        US:S; 14S<S=S> 14S<S?[
        14S@[        14SA[        14SB[        14SCSD 14SE[<        14SF[<        14SG.	SS9E[        USSSSHSI 14SJT R8                  14SK[>        14SE[<        14SF[<        14SL.4SS9EUUU" / SMQ5      =n(       a  USNSO0SP./OS SNSO0SQ.E$ )RNmediar   typec                     U S:H  =(       d    S $ )Nvideor)   )ts    r   <lambda>'ImgurIE._real_extract.<locals>.<lambda>w   s    AL$8D$8r   )metadatais_animatedF)get_allz! is not a video or animated imageT)expectedzhttps://i.imgur.com/z.gifv)fatal rE   r;   widthheightsizerX   	has_soundc                     U (       a  S $ S$ )Nnoner)   )bs    r   rV   rW      s    14;P&;Pr   )rE   r;   r^   r_   filesizeacodec)rQ   r   	mime_type)rQ   r   rR   imagerc   rf   
preferenceiz+(?s)<div class="video-elements">(.*?)</div>zvideo elementsdefaultc                 p   > S Vs0 s H#  nU[        TR                  U  SU 3TS S95      _M%     sn$ s  snf )N)r^   r_   :rj   )r	   _og_search_property)
media_typepr"   webpages     r   og_get_size*ImgurIE._real_extract.<locals>.og_get_size   sS     10 {4#;#;zl!A3<OQXbf#;#ghh0  s   *3rT   z7<source\s+src="(?P<src>[^"]+)"\s+type="(?P<type>[^"]+)".c                 *    U R                  S5      S   $ )Nr   r   )	partitionr*   s    r   rV   rW      s    Q[[5Ea5Hr   src)	format_idrE   r;   zvar\s+videoItem\s*=zGIF info)transform_sourcer\   gifUrl)rE   re   gif)rw   ri   r;   rf   vcodec	container)htmlrk   twitterztwitter:player:streamz"twitter:player:stream:content_typeztwitter:widthztwitter:height)rw   rE   r;   r^   r_   zNo sources found for video z. Maybe a plain image?r<   description
account_idc                 <    [        U 5      (       a  [        U 5      $ S $ N)r	   str)as    r   rV   rW      s    ;q>>Q9[W[9[r   accountusernamec                 *    [        U 5      =(       d    S $ r   r   xs    r   rV   rW      s    }Q?O?WSW?Wr   
avatar_urlupvote_countdownvote_countr@   	is_maturec                     U (       a  S$ S $ )N   r)   r   s    r   rV   rW      s    Ab6G46Gr   )
updated_at
created_atr   )	uploader_iduploaderuploader_urlrC   r?   r@   	age_limitr=   rA   r<   c                 *    [        U 5      =(       d    S $ r   r   r   s    r   rV   rW      s    mA.>.F$.Fr   r   rK   )r<   r   rK   r=   rA   )thumbnailUrlztwitter:imagezog:imageAcceptz*/*)rE   http_headers)r:   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"   rE   r$   datar   	media_fmt	media_urlvideo_elementsrr   r`   fgif_jsonsearchtwitter_fmtthumbnail_urlrq   s   `              @r   _real_extractImgurIE._real_extracts   s   >>#&~~gx0D7A89:+0- #.7<> !H:-N!OZ^__(("8*E2HE ) K QNP 	 K=)C5>}-+/+/!;1P0QR5
 ( 	 MM%(	==''#/315 $6 $R9Fy9Q % D"677B&,	(#$$\37NN9%++:%t , 5  w'Dt{{}%%"7+"VXf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NN;'!!-hZ7MNY] " _&&w/ **7D*A//0K0KG]_0K0`a
 4 ,/[.\]&
5W4XY!*L;- H-}="2[M!B"1K=!A),G+HI:]OL&2]O%D
" 

 4'1j!$F#GH -0D0D/EF'-9:]OL&2]O%D; " 
*  %++X$YY=Y %!)5 1  ae%u-7
 	
r   r)   N)	r.   r/   r0   r1   
_VALID_URLint_TESTSr   r4   r)   r   r   r   r   '   s    mJ +B#%  !+&;
" SB#%  !+&;
" 2 1 2,#%& !+; 
$ +1 #%  !+&;
	kGFRv
r   r   c                       \ rS rSrSrS rSrg)ImgurGalleryBaseIE   Tc                    U R                  U5      nU R                  SUSSS9n[        USS 14SU R                  14S.5      n[        US	5      (       a|  [        US
S SS 145      nS nU R                  (       a  [        U5      S:X  a  US   nU(       d9  U R                  [        U R                  U5      U5      nUR                  U5        U$ UnU R                  U5      nSUS'   UR                  U5        U$ )NalbumsFi  )r\   expected_statusr<   c                 *    [        U 5      =(       d    S $ r   r   r   s    r   rV   2ImgurGalleryBaseIE._real_extract.<locals>.<lambda>   s    -*:*Bd*Br   r   r   is_albumrQ   c                 H    UR                  S5      S:H  =(       d    US   S   $ )NrR   rT   rX   rY   )r   )_vs     r   rV   r      s#    aeeFmw&>&^!J-P]B^&^r   r:   c                 *    [        U 5      =(       d    S $ r   )r   r   s    r   rV   r      s    Q!74!7r   r   r   url_transparent_type)
r   r&   r   r,   _GALLERYlenplaylist_resultmapr   r   )r"   rE   
gallery_idr   infoitemsmedia_idresults           r   r    ImgurGalleryBaseIE._real_extract   s   ^^C(
~~h
%QT~UD BCD)D,@,@+AB#
 
 j)) ^78(: ;E
 H}}Uq 8--**E2J@d#!J##J/)Wdr   r)   N)r.   r/   r0   r1   r   r   r4   r)   r   r   r   r      s    Hr   r   c                      \ rS rSrSrSrSSS.SS/S	S
SSSSSSSSS\\\S.S.SS/S	S
SSSSSSSSS\\\S.S.SSS.SS/SS
SSSSS\\SS\SSS .S.S!S"S#S$.S%S&.S'S"S#S$.S%S&.S(S/S)S
S*S+S,S+S,\\\S-S.S/.S.S0S/S1S
S2S3S4S5\\S-\S4S6S5S7.S./	rS8rg9):ImgurGalleryIEi  zimgur:galleryzbhttps?://(?:i\.)?imgur\.com/(?:gallery|(?:t(?:opic)?|r)/[^/?#]+)/(?:[^/?#]+-)?(?P<id>[a-zA-Z0-9]+)z http://imgur.com/topic/Aww/ll5VkTrG   z!https://imgur.com/gallery/YcAQlkxImgurYcAQlkxr8   zRClassic Steve Carell gif...cracks me up everytime....damn the repost downvotes....iP201301191648642wittyusernameherez https://i.imgur.com/YcAQlkxh.jpgz=https://i.imgur.com/N5Flb2v_d.png?maxwidth=290&fidelity=grand)r:   r;   r<   r=   r>   r   r   rA   rD   rB   r   r@   r?   rC   )rE   add_iesrF   zbhttps://imgur.com/gallery/classic-steve-carell-gif-cracks-me-up-everytime-repost-downvotes-YcAQlkx)r:   r;   r<   r=   r>   r   r   rA   rB   rD   r   r@   r?   rC   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)r:   r;   r<   r=   r>   r   r   r@   r?   r   rA   rC   rB   rD   z#https://imgur.com/t/unmuted/6lAn9VQ6lAn9VQz
Penguins !r:   r<      rE   rF   playlist_countz5https://imgur.com/t/unmuted/penguins-penguins-6lAn9VQz#https://imgur.com/t/unmuted/kx2uD3CZVMv45iIntruderih[20180604gHz>@z https://i.imgur.com/ZVMv45ih.jpg)r:   r;   r<   r=   r>   rA   rB   rC   r?   r@   rK   rD   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)r:   r;   r<   r   r=   r>   rC   r?   rK   r@   rA   rD   rB   r)   N)	r.   r/   r0   r1   IE_NAMEr   r   r   r4   r)   r   r   r   r     s   GvJ 2
 39i#%$+!+;&[  
* t9i#%$+!+&;[  
	, 6
 09'#%%&  [!+&;
, 5!
 	 G!
  59#%!+&  ;
$ 59* D#%  !+;&
GuFr   r   c                   Z    \ rS rSrSrSrSrSSS.SS	S
S.SS.SS	S
S.SS.SSS0SS./rSrg)ImgurAlbumIEi  zimgur:albumz?https?://(?:i\.)?imgur\.com/a/(?:[^/?#]+-)?(?P<id>[a-zA-Z0-9]+)Fzhttp://imgur.com/a/j6OrjTrG   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/8pih2Edr:   8pih2Edr   )rE   rF   playlist_mincountr)   N)	r.   r/   r0   r1   r   r   r   r   r4   r)   r   r   r   r     ss    GSJ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   