
    i                         S r SSKJrJr  SSKJrJr  Sr " S S\5      r " S S	\5      r	 " S
 S\5      r
 " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)z&Extractors for https://www.weasyl.com/   )	ExtractorMessage   )textutilz"(?:https://)?(?:www\.)?weasyl.com/c                   b    \ rS rSrSrSrSrSrSr\	R                  rS rS rS	 rS
 rSS jrSrg)WeasylExtractor   weasyl)
{category}{owner_login}z{submitid} {title}.{extension}z
{submitid}zhttps://www.weasyl.comc                     SUS   ;   aF  US   S   S   S   US'   U R                  US   S S 5      US'   [        R                  " US   U5        gg	)
N
submissionmedia    url	posted_at   dateTF)parse_datetime_isor   nameext_from_urlselfdatas     H/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/weasyl.pypopulate_submission#WeasylExtractor.populate_submission   sd    4=(w-5a8?DK2243DSb3IJDL!!$u+t4    c                 T    U R                  S5      U R                  R                  S'   g )Nzapi-keyzX-Weasyl-API-Key)configsessionheadersr   s    r   _initWeasylExtractor._init    s     37;;y3I/0r   c                 D    U R                  U R                   SU S35      $ )Nz/api/submissions//view)request_jsonroot)r   submitids     r   request_submission"WeasylExtractor.request_submission#   s*      yyk*8*E:< 	<r   c                     U R                  U R                   SU S35      nSUS'   SUS   -   US'   U R                  US   5      US'   U$ )	Nz/api/journals/r'   html	extensionztext:contentr   r   )r(   r)   r   )r   	journalidr   s      r   retrieve_journal WeasylExtractor.retrieve_journal'   s`      yyk	{%8:"[i0V..tK/@AVr   Nc              #   Z  #    U R                  S5      nU R                   SU S3nS US.n U R                  XES9nUS    HR  nU(       a  U R                  US   5      nU R	                  U5      (       d  M6  X'S'   [
        R                  US	   U4v   MT     US
   (       d  g US
   US
'   M  7f)Nmetadataz/api/users/z/gallery)nextidfolderidparamssubmissionsr*   r7   r   r6   )r    r)   r(   r+   r   r   Url)r   owner_loginr7   r5   r   r9   r   r   s           r   r:   WeasylExtractor.submissions/   s     ;;z*;{m8< 

 $$S$8D"=1
!%!8!8":."0J++J77-5z* "++z%'8*DD 2 >#H~F8 s   A0B+65B+ N)__name__
__module____qualname____firstlineno__categorydirectory_fmtfilename_fmtarchive_fmtr)   r   USERAGENT_GALLERYDL	useragentr   r$   r+   r2   r:   __static_attributes__r>   r   r   r	   r	      s@    H3M3LK#D((IJ<.r   r	   c                   2    \ rS rSrSr\S-   rSrS rS r	Sr
g)	WeasylSubmissionExtractorG   r   z.(?:~[\w~-]+/submissions|submission|view)/(\d+)z4https://www.weasyl.com/~USER/submissions/12345/TITLEc                 B    [         R                  X5        US   U l        g Nr   )r	   __init__r*   r   matchs     r   rP   "WeasylSubmissionExtractor.__init__L   s      -ar   c              #      #    U R                  U R                  5      nU R                  U5      (       a.  [        R                  SU4v   [        R
                  US   U4v   g g 7f)N r   )r+   r*   r   r   	Directoryr;   r   s     r   itemsWeasylSubmissionExtractor.itemsP   sW     &&t}}5##D))##R--++tE{D00 *s   A!A#)r*   Nr@   rA   rB   rC   subcategoryBASE_PATTERNpatternexamplerP   rW   rJ   r>   r   r   rL   rL   G   s!    KNNGDG!1r   rL   c                   2    \ rS rSrSr\S-   rSrS rS r	Sr
g)	WeasylSubmissionsExtractorW   r:   z(?:~|submissions/)([\w~-]+)/?$z'https://www.weasyl.com/submissions/USERc                 B    [         R                  X5        US   U l        g rO   r	   rP   r<   rQ   s     r   rP   #WeasylSubmissionsExtractor.__init__\         - 8r   c              #      #    [         R                  SSU R                  04v   U R                  U R                  5       S h  vN   g  N7f)NrU   r<   )r   rV   r<   r:   r#   s    r   rW    WeasylSubmissionsExtractor.items`   s=     mT5E5E%FFF##D$4$4555s   A A
AA
r<   NrY   r>   r   r   r_   r_   W   s!    K>>G7G$6r   r_   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
WeasylFolderExtractore   folder)r   r   z{folder_name}z%submissions/([\w~-]+)\?folderid=(\d+)z6https://www.weasyl.com/submissions/USER?folderid=12345c                 h    [         R                  X5        UR                  5       u  U l        U l        g r?   )r	   rP   groupsr<   r7   rQ   s     r   rP   WeasylFolderExtractor.__init__k   s%      -*/,,.'$-r   c              #      #    U R                  U R                  U R                  5      n[        U5      u  p#nU R	                  US   5      n[
        R                  SU4v   X#U4v   U S h  vN   g  N7f)Nr*   rU   )r:   r<   r7   nextr+   r   rV   )r   itermsgr   r   detailss         r   rW   WeasylFolderExtractor.itemso   sg      0 0$--@d$))$z*:;W,,ns   A)A3+A1,A3)r7   r<   N)r@   rA   rB   rC   rZ   rE   r[   r\   r]   rP   rW   rJ   r>   r   r   ri   ri   e   s&    KDMEEGFG9r   ri   c                   :    \ rS rSrSrSrSr\S-   rSr	S r
S rS	rg
)WeasylJournalExtractory   journal{journalid} {title}.{extension}{journalid}zjournal/(\d+)z$https://www.weasyl.com/journal/12345c                 B    [         R                  X5        US   U l        g rO   )r	   rP   r1   rQ   s     r   rP   WeasylJournalExtractor.__init__   s      -qr   c              #      #    U R                  U R                  5      n[        R                  SU4v   [        R                  US   U4v   g 7f)NrU   r.   )r2   r1   r   rV   r;   r   s     r   rW   WeasylJournalExtractor.items   sA     $$T^^4T))kk4<--s   A
A)r1   Nr@   rA   rB   rC   rZ   rF   rG   r[   r\   r]   rP   rW   rJ   r>   r   r   rv   rv   y   s+    K4LK--G4G".r   rv   c                   :    \ rS rSrSrSrSr\S-   rSr	S r
S rS	rg
)WeasylJournalsExtractor   journalsry   rz   zjournals/([\w~-]+)z$https://www.weasyl.com/journals/USERc                 B    [         R                  X5        US   U l        g rO   rb   rQ   s     r   rP    WeasylJournalsExtractor.__init__   rd   r   c              #   J  #    [         R                  SSU R                  04v   U R                   SU R                   3nU R	                  U5      R
                  n[
        R                  " USS5       H,  nU R                  U5      n[         R                  US   U4v   M.     g 7f)NrU   r<   z
/journals/zhref="/journal//r.   )	r   rV   r<   r)   requestr   extract_iterr2   r;   )r   r   pager1   r   s        r   rW   WeasylJournalsExtractor.items   s     mT5E5E%FFF:d&6&6%78||C %%**41BCHI((3D++tF|T11 Is   B!B#rg   Nr   r>   r   r   r   r      s+    K4LK22G4G$2r   r   c                   0    \ rS rSrSrSr\S-   rSrS r	Sr
g)	WeasylFavoriteExtractor   favorite)r   z{user}	Favoritesz&favorites(?:\?userid=(\d+)|/([^/?#]+))z-https://www.weasyl.com/favorites?userid=12345c              #     #    U R                   u  pS =p4U(       a  UnSU-   nOSnUSS.n U R                  U R                  U-   US9R                  nUR	                  S5      nU(       d  [        R
                  " USS5      n[        R                  " US	S
U5       Hf  n	X:X  a  M
  U	nU R                  U	5      n
U R                  U
5      (       d  M5  X:S'   [        R                  SU
4v   [        R                  U
S   U
4v   Mh      UR	                  SU5      n[        R                  " [        R                  " USSU5      5      nS nGM  ! [         a     g f = f7f)Nz/favorites/z
/favoritessubmit)useridfeaturer8   zid="favorites-content"z<a href="/~"z/submissions/r   userrU   r   z">Next (zhref=")rm   r   r)   r   indexextrr   r+   r   r   rV   r;   
ValueErrorunescaperextr)r   r   usernamer<   lastidpathr9   r   posr*   r   s              r   rW   WeasylFavoriteExtractor.items   sT    ;;##"K 8+DD

 <<		D 0<@EED**56C"iimSA --dOS#N%!!44X>
++J77)4v&!++R;;!++z%'8*DD OjjS1 ==D(C!EFDF/ (  s0   C
E5EE
 2E

EEEEr>   N)r@   rA   rB   rC   rZ   rE   r[   r\   r]   rW   rJ   r>   r   r   r   r      s!    K9MFFG=G%r   r   N)__doc__commonr   r   rU   r   r   r[   r	   rL   r_   ri   rv   r   r   r>   r   r   <module>r      sj    - & 45.i 5.p1 1 6 6O (._ ."2o 2*+o +r   