
    iI                     :    S r SSKJrJr  SSKJr   " S S\5      rg)zDirect link handling   )	ExtractorMessage   )textc                   8    \ rS rSrSrSrSr\rSrSr	S r
S rS	rg
)DirectlinkExtractor   z:Extractor for direct links to images and other media files
directlinkz&{domain}/{path}/{filename}.{extension}z(?i)https?://(?P<domain>[^/?#]+)/(?P<path>[^?#]+\.(?:jpe?g|jpe|png|gif|bmp|svg|web[mp]|avif|heic|psd|mp4|m4v|mov|mkv|og[gmv]|wav|mp3|opus|zip|rar|7z|pdf|swf))(?:\?(?P<query>[^#]*))?(?:#(?P<fragment>.*))?$z?https://en.wikipedia.org/static/images/project-logos/enwiki.pngc                     UR                  5       =U l        nSR                  US   R                  SS5      SS  5      U l        [
        R                  " X5        g )N.domainr   )	groupdictdatajoinrsplitsubcategoryr   __init__)selfmatchr   s      L/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/directlink.pyr   DirectlinkExtractor.__init__   sL     ??,,	D88DN$9$9#q$A"#$FG4'    c              #     #    U R                   nUR                  5        H&  u  p#U(       d  M  [        R                  " U5      X'   M(     US   R	                  S5      u  US'   pEUR	                  S5      u  US'   pFUR                  5       US'   SU R                  R                  SS5      0US	'   [        R                  S
U4v   [        R                  U R                  U4v   g 7f)Npath/r   filename	extensionRefererzlatin-1ignore_http_headers )r   itemsr   unquote
rpartitionlowerurlencoder   	DirectoryUrl)r   r   keyvalue_nameexts          r   r#   DirectlinkExtractor.items   s     yy**,JCu LL/	 ' !%V 7 7 <Va#'??3#7 Z!IIK[txxy(;!=_ T))kk488T))s   'C#B6C#)r   r   N)__name__
__module____qualname____firstlineno____doc__categoryfilename_fmtarchive_fmtpatternexampler   r#   __static_attributes__ r   r   r   r      s.    DH;LKAG PG(
*r   r   N)r5   commonr   r   r"   r   r   r<   r   r   <module>r>      s     & *) *r   