
    i                         S r SSKJrJr  SSKJr   " S S\5      r\R                  SSS	S
.SSS.SSS.SSS.SSS.SSSS.S.5      S-   r " S S\5      r	 " S S\5      r
g)z!Extractors for Shimmie2 instances   )BaseExtractorMessage   )textc                   B    \ rS rSrSrSrSrSrS rS r	S r
S	 rS
 rSrg)Shimmie2Extractor   z"Base class for shimmie2 extractorsshimmie2z%{category}_{id}{md5:?_//}.{extension}z{id}c                   ^ U R                  S5      =n(       a-  U R                  R                  S5      S   nU R                  XS9  U R                  S5      =n(       a  X0l        U R                  S5      =m(       a  U4S jU l        g g )Ncookies/r   )domainfile_urlquotec                    > T$ )N )_r   s    J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/shimmie2.py<lambda>)Shimmie2Extractor._init.<locals>.<lambda>   s        )config_instanceroot
rpartitioncookies_update_dictfile_url_fmt_quote_type)selfr   r   r   r   s       @r   _initShimmie2Extractor._init   s    **95575YY))#.q1F$$W$<++J7787 (((1151.D 2r   c              #   J  #    U R                  5       nU R                  5        H  n[        R                  " US   5      US'   [        R                  " US   5      US'   [        R                  " US   5      US'   [        R                  " US   5      US'   UR                  U5        US   nSU;   a-  UR                  S5      S   R                  S	5      u  US
'   oBS'   O[        R                  " X25        [        R                  SU4v   [        R                  X24v   M     g 7f)Nidwidthheighttagsr   z/index.php?r   r   .filename	extension )metadatapostsr   	parse_intunquoteupdater   nameext_from_urlr   	DirectoryUrl)r   dataposturlr   s        r   itemsShimmie2Extractor.items   s     }}JJLDT
3DJ NN4=9DM!^^DN;DN<<V5DLKKz"C#NN3'*55c: 7Z !+%6 %%c0##R--++s((! !s   D!D#c                     g)zReturn general metadatar   r   r   s    r   r*   Shimmie2Extractor.metadata4       r   c                     g)z8Return an iterable containing data of all relevant postsr   r   r8   s    r   r+   Shimmie2Extractor.posts8   r:   r   c                 P     XR                  S5      S-      $ ! [         a     gf = f)z0Return quoting character used in 'page' (' or ")z
<link rel=
   ')index	Exception)r   pages     r   r   Shimmie2Extractor._quote_type<   s0    	

<0344 		s    
%%)r   r   N)__name__
__module____qualname____firstlineno____doc__basecategoryfilename_fmtarchive_fmtr   r5   r*   r+   r   __static_attributes__r   r   r   r   r      s-    ,L:LK/)*r   r   zhttps://booru.cavemanon.xyzzbooru\.cavemanon\.xyzz{0}/index.php?q=image/{2}.{4})r   patternr   zhttps://rule34hentai.netzrule34hentai\.net)r   rM   zhttps://vidya.picszvidya\.picszhttps://noz.rip/booruznoz\.rip/booruzhttps://co.llection.picszco\.llection\.picszhttps://soybooru.comzsoybooru\.comr?   )r   rM   r   )	cavemanonrule34hentai	vidyapicsnozripthecollectionSsoybooruz/(?:index\.php\?q=/?)?c                   >    \ rS rSrSrSrSrSr\S-   r	Sr
S rS	 rS
rg)Shimmie2TagExtractorb   z*Extractor for shimmie2 posts by tag searchtag)z
{category}z{search_tags}z{}/_images/{}/{}%20-%20{}.{}zpost/list/([^/?#]+)(?:/(\d+))?z"https://vidya.pics/post/list/TAG/1c                 n    [         R                  " U R                  S   5      U l        SU R                  0$ )Nsearch_tags)r   r-   groupsr%   r8   s    r   r*   Shimmie2TagExtractor.metadataj   s)    LLR1	tyy))r   c              #   z  #    [         R                  " U R                  S   S5      nU R                  R                  nSnSn U R
                   SU R                   SU 3nU R                  U5      R                   n[         R                  " U5      nU(       a  SnU R                  U5      nSU;   n	S	U;   n
 W	(       a  U" SW-   U5      nW
(       a  U" S	W-   U5      nO	U" S
W5      nU(       d  OU" SU-   U5      R                  S5      nUS   nUS   nUS   nUR                  S5      u  nnnU" SS5      nU" U R
                  UU[         R                  " U5      U(       a  UR                  S5      S   OS5      UUUUU[         R                  " US S 5      S.v   M  US-  nU" SU U S3S5      (       d  g GMy  7f)Nr   Tr)   z/post/list/r   Fz data-mime=z data-post-id=z href='/post/view/ztitle=z //     r   x	/_thumbs/jpg)r   r"   md5r%   r#   r$   sizez>Next</>)r   r,   r[   r   formatr   r%   requestextract_fromr   split	partitionr   r   parse_bytes)r   pnumr   initmimer4   rB   extrr   has_mimehas_pidpidr2   r%   
dimensionsrd   r#   r   r$   rc   s                       r   r+   Shimmie2TagExtractor.postsn   s    ~~dkk"oq1((//YYK{499+Qtf=C<<$))D$$T*D((.)T1+t3e 3U;D/5u=C3U;CHUNE288@Aw!!W
Aw#-#7#7#< q&;, !-		3TZZ-=37,Q/U!D  "$ ,,T#2Y7
 
' > AID!D6%0#66Y s   F9F;)r%   N)rD   rE   rF   rG   rH   subcategorydirectory_fmtr   BASE_PATTERNrM   exampler*   r+   rL   r   r   r   rU   rU   b   s.    4K3M1L>>G2G*3r   rU   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	Shimmie2PostExtractor   z#Extractor for single shimmie2 postsr3   zpost/view/(\d+)z"https://vidya.pics/post/view/12345c                    U R                   S   nU R                  nUR                  SS5      =nS:  a  UOUS U nU SU 3nU R                  U5      R                  n[        R
                  " U5      nU R                  U5      nUU" SS5      R                  S5      S   R                  S	5      U" S
S5      UU" SU SU SU 3U5      =(       d    U" SU-   U5      R                  S5      -   U" SS5      R                  S5      U" SS5      R                  S5      S   R                  S5      SS.n	U	S   (       d  [        R                  " U	S   SS5      U	S'   U	4$ )Nr^   r      r_   z/post/view/z: <z - )ra   zid=
main_imagez src=z<source src=r&   zdata-width= z"'zdata-height=re   )r"   r%   rc   r   r#   r$   rd   rc   r   z	/_images/)r[   r   findrg   r   rh   r   rj   rstriplstripstripro   )
r   post_idr   posbaser4   rB   ro   qtr3   s
             r   r+   Shimmie2PostExtractor.posts   si   ++b/yy#yya00A5t4:k'+||C %%  &d#  T311%8;BB3G[#.s2$jE"6; ,^B&+VVC[9 ]C066u=^S1;;e
 E{))D$4k3GDKwr   r   N)rD   rE   rF   rG   rH   ru   rw   rM   rx   r+   rL   r   r   r   rz   rz      s    -K//G2Gr   rz   N)rH   commonr   r   r)   r   r   r.   rw   rU   rz   r   r   r   <module>r      s    ( * 2 2j !''-+3 +'
 %!
 ($
 +(
 '#-) 6 7<?, ?D -  r   