
    i                         S r SSKJrJr  SSKJr  Sr " S S\5      r " S S	\5      r " S
 S\5      r	 " S S\5      r
g)z$Extractors for https://tungsten.run/   )	ExtractorMessage   )textz%(?:https?://)?(?:www\.)?tungsten\.runc                   8    \ rS rSrSrSrSrSrSrSr	S r
S	 rS
rg)TungstenExtractor   z"Base class for tungsten extractorstungstenzhttps://tungsten.run)z
{category}z{user[username]}z%{date} {title:?/ /}{uuid}.{extension}z{uuid}c              #      #    U R                  5        Hf  nUS   nU R                  US   5      US'   X"R                  S5      S-   S  US'   SUS'   [        R                  S	U4v   [        R
                  X!4v   Mh     g 7f)
Noriginal_url
created_atdate/r   filenamewebp	extension )postsparse_datetime_isorfindr   	DirectoryUrl)selfposturls      J/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/tungsten.pyitemsTungstenExtractor.items   s     JJLD~&C2243EFDL"99S>!#3#45D &D##R--++s(( !s   A<A>c              #      #    SUS'   SUS'   U R                   SSSS.n U R                  XUS	9nU S h  vN   [        U5      US   :  a  g US==   S-  ss'   M<   N&7f)
Nr   page(   per_pageemptycorsz	same-site)OriginzSec-Fetch-DestzSec-Fetch-ModezSec-Fetch-Site)paramsheaders)rootrequest_jsonlen)r   r   r&   r'   datas        r   _paginationTungstenExtractor._pagination    s~     vz ii%$)	
 $$S$IDOO4y6*--6NaN  s   2AA'A N)__name__
__module____qualname____firstlineno____doc__categoryr(   directory_fmtfilename_fmtarchive_fmtr   r,   __static_attributes__r.       r   r   r      s(    ,H!D6M:LK) r9   r   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)TungstenPostExtractor5   r   z/post/(\w+)z*https://tungsten.run/post/AbCdEfGhIjKlMnOpc                     U R                    SU R                  S    3nU R                  U5      R                  nU R	                  U5      nUS   S   S   4$ )Nz/post/    props	pagePropsr   )r(   groupsrequestr   _extract_nextdata)r   r   r    r+   s       r   r   TungstenPostExtractor.posts:   sZ    6$++a.!12||C %%%%d+Wk*6244r9   r.   N
r/   r0   r1   r2   subcategoryBASE_PATTERNpatternexampler   r8   r.   r9   r   r;   r;   5   s    K^+G:G5r9   r;   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)TungstenModelExtractorA   modelz(/model/(\w+)(?:/?\?model_version=(\w+))?z(https://tungsten.run/model/AbCdEfGhIjKlMc                     U R                   u  pUcE  U R                   SU S3nU R                  U5      R                  n[        R                  " USS5      nSnSSSUS.nU R                  X55      $ )	Nz/model/r   z"modelVersionUUID":""z!https://api.tungsten.run/v1/poststop_all_timefalse)sorttweakable_only	followingmodel_version_uuid)rA   r(   rB   r   extrr,   )r   
uuid_modeluuid_versionr   r    r&   s         r   r   TungstenModelExtractor.postsF   s|    #';; 
YYKwzl!4C<<$))D99T+A3GL1,%%".	
 ,,r9   r.   NrE   r.   r9   r   rK   rK   A   s    KHHG8G-r9   rK   c                   ,    \ rS rSrSr\S-   rSrS rSr	g)TungstenUserExtractorX   userz*/user/([^/?#]+)(?:/posts)?/?(?:\?([^#]+))?zhttps://tungsten.run/user/USERc                 b   U R                   u  pU R                   SU 3nU R                  U5      R                  n[        R                  " USS5      nSU S3n[        R
                  " U5      nUR                  SS5        UR                  SS	5      U R                  S
'   U R                  X65      $ )Nz/user/z"user":{"uuid":"rO   z"https://api.tungsten.run/v1/users/z/postsrR   rP   tagr   search_tags)
rA   r(   rB   r   rV   parse_query
setdefaultgetkwdictr,   )r   r]   qsr   r    	uuid_userr&   s          r   r   TungstenUserExtractor.posts]   s    ;;6$(||C %%IId$6<	29+VD!!"%&.1%+ZZr%:M",,r9   r.   NrE   r.   r9   r   r[   r[   X   s    KJJG.G
-r9   r[   N)r3   commonr   r   r   r   rG   r   r;   rK   r[   r.   r9   r   <module>ri      sI    + & 7# 	 # L	5- 	5-. -.-- -r9   