
    i                         S r SSKJr  SSKJr  SSKrSr " S S	\R                  5      r " S
 S\5      r " S S\5      r	g)zExtractors for https://agn.ph/   )booru   )text    Nz(?:https?://)?agn\.phc                   X    \ rS rSrSrSrSrSrSSSS	S
S.rS r	S r
S rS rS rS rSrg)AgnphExtractor   agnphzhttps://agn.phr   -   artist	copyright	characterspeciesgeneral)abcdmc                 :    U R                   R                  SSSS9  g )Nconfirmed_agetruezagn.ph)domain)cookiessetselfs    G/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/agnph.py_initAgnphExtractor._init    s    &B    c                 t    U R                  US   5      US'   US   R                  5       US'   SUS   ;   US'   g )N
created_atdatestatusr   has_children)parse_timestampstrip)r   posts     r   _prepareAgnphExtractor._prepare#   sE    ++D,>?Vh--/X &$~*> >^r!   c                 Z    U Vs0 s H  o"R                   UR                  _M     sn$ s  snf )N)tagr   )r   xmlelements      r   _xml_to_dictAgnphExtractor._xml_to_dict(   s%    9<=gW\\)===s    (c              #     #    SUS'   SU;   a-  U R                   [        R                  " US   5      -   S-
  US'   OU R                   US'    U R                  XS9n[	        U R
                  U5       S h  vN   UR                  n[        US   5      [        U5      -   [        US   5      :  a  g US==   S-  ss'   Ms   NJ7f)Nr.   apipager   paramsoffsetcount)	
page_startr   	parse_intrequest_xmlmapr0   attribintlen)r   urlr6   rootr=   s        r   _paginationAgnphExtractor._pagination+   s     uV$.."@@1D 6N "__F6N##C#7D4,,d333[[F6(#$s4y0Cw4HH6NaN  4s   A1C 3B>4AC c                 b    U R                    SUS    S3nU R                  U5      R                  $ )N/gallery/post/show/id/)rA   requestr   )r   r)   r@   s      r   _htmlAgnphExtractor._html>   s2    .tDzl!<||C %%%r!   c                    [         R                  " USS5      nU(       d  g [        R                  " [        5      n[         R
                  " S5      nUR                  U5       H<  u  pgXF   R                  [         R                  " U5      R                  SS5      5        M>     UR                  5        H)  u  pSR                  U	5      USU R                  U   -   '   M+     g )Nz<ul class="taglist">z<h3>Statistics</h3>zclass="(.)typetag">([^<]+) _tags_)r   extrcollectionsdefaultdictlistrefindallappendunquotereplaceitemsjoin	TAG_TYPES)
r   r)   r4   tag_containertagspatterntag_typetag_namekeyvalues
             r   _tagsAgnphExtractor._tagsB   s    		(*?A&&t,''78")//-"@HN!!$,,x"8"@"@c"JK #A**,JC25((5/D4>>#../ 'r!    N)__name__
__module____qualname____firstlineno__categoryrA   r9   per_pagerZ   r   r*   r0   rB   rI   rb   __static_attributes__rd   r!   r   r   r      sO    HDJH IC@
> &&Br!   r   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)AgnphTagExtractorP   r-   )z
{category}z{search_tags}zt_{search_tags}_{id}z/gallery/post/(?:\?([^#]+))?$z'https://agn.ph/gallery/post/?search=TAGc                 ~    [         R                  X5        [        R                  " U R                  S   5      U l        g )Nr   )r   __init__r   parse_querygroupsr6   )r   matchs     r   rp   AgnphTagExtractor.__init__W   s*    ,&&t{{1~6r!   c                 N    SU R                   R                  S5      =(       d    S0$ )Nsearch_tagssearch )r6   getr   s    r   metadataAgnphTagExtractor.metadata[   s    t{{x8>B??r!   c                 r    U R                   S-   nU R                  XR                  R                  5       5      $ )Nz/gallery/post/)rA   rB   r6   copy)r   r@   s     r   postsAgnphTagExtractor.posts^   s/    ii**[[%5%5%788r!   r5   N)re   rf   rg   rh   subcategorydirectory_fmtarchive_fmtBASE_PATTERNr]   examplerp   rz   r~   rk   rd   r!   r   rm   rm   P   s1    K3M(K==G7G7@9r!   rm   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	AgnphPostExtractorc   r)   z{id}z/gallery/post/show/(\d+)z'https://agn.ph/gallery/post/show/12345/c                     U R                    SU R                  S    S3nU R                  U5      nU R                  U5      4$ )NrE   r   z	/?api=xml)rA   rr   r;   r0   )r   r@   r)   s      r   r~   AgnphPostExtractor.postsi   sF    .t{{1~.>iH$!!$'))r!   rd   N)re   rf   rg   rh   r   r   r   r]   r   r~   rk   rd   r!   r   r   r   c   s!    KK88G7G*r!   r   )
__doc__rx   r   r   rP   r   BooruExtractorr   rm   r   rd   r!   r   <module>r      sE    %   ';BU)) ;B|9 9&	* 	*r!   