
    i                          S r SSKJrJr  SSKJrJr  SrSrSSSS	S
S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.steamgriddb.com   )	ExtractorMessage   )text	exceptionz((?:https?://)?(?:www\.)?steamgriddb\.com)aaabaeafakamanarasavayazbabebgbhbibmbnbobrbscacechcocrcscucvcydadedvdzeeeleneoeseteufafffifjfofrfygagdglgngugvhahehihohrhthuhyhziaidieigiiikioisitiujajvkakgkikjkkklkmknkokrkskukvkwkylalblglilnloltlulvmgmhmimkmlmnmrmsmtmynanbndnengnlnnnonrnvnyocojomorospapiplpsptqurmrnrorurwsascsdsesgsiskslsmsnsosqsrssstsusvswtatetgthtitktltntotrtstttwtyugukuruzvevivowawoxhyiyozazhzuz	image/pngz
image/jpegz
image/webpzimage/vnd.microsoft.iconall)pngjpegjpgwebpicor   c                   >    \ 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)SteamgriddbExtractor*   zBase class for SteamGridDBsteamgriddb)z
{category}z{subcategory}z
{game[id]}z%{game[id]}_{id}_{num:>02}.{extension}z
{filename}zhttps://www.steamgriddb.comc                 *    U R                  SS05        g )N	userprefsz%7B%22adult%22%3Afalse%7D)cookies_update)selfs    M/app/mltbenv/lib/python3.13/site-packages/gallery_dl/extractor/steamgriddb.py_initSteamgriddbExtractor._init2   s    4
 	    c              #     #    U R                  SS5      nU R                  5        H  nU=(       a    UR                  S5      nU(       a  SOSUS'   [        R                  SU4v   SUS'   US	   n[        R
                  U[        R                  " XB5      4v   U(       d  M|  SUS'   S
US'   Un[        R
                  U[        R                  " XB5      4v   M     g 7f)Nzdownload-fake-pngTfake_pngr   r   count numurlF_http_adjust_extension)configassetsgetr   	DirectoryUrlr   nameext_from_url)r   download_fake_pngassetr   r   s        r   itemsSteamgriddbExtractor.items7   s      KK(;TB[[]E(BUYYz-BH"*QE'N##R..E%L,C++sD$9$9#$EEEx e27./kk3(=(=c(III #s   BC!:Cc                     U R                   " U R                  U-   40 UD6nUS   (       d  [        R                  " US   5      eUS   $ )Nsuccesserrordata)request_jsonrootr   AbortExtraction)r   endpointkwargsr   s       r   _callSteamgriddbExtractor._callJ   sF      X!5@@I++DM::F|r    N)__name__
__module____qualname____firstlineno____doc__categorydirectory_fmtfilename_fmtarchive_fmtr   r   r   r   __static_attributes__r   r   r   r   r   *   s.    $HAM:LK(D
J&r   r   c                   *    \ rS rSrSrS rS rS rSrg)SteamgriddbAssetsExtractorQ   z*Base class for extracting a list of assetsc                     [         R                  X5        US   n[        US   5      nUS:X  a  UOS U l        US:X  a  UOS U l        US   =n(       a  [        U5      U l        g SU l        g )Nr   r   game
collection   )r   __init__intgame_idcollection_idpage)r   match	list_typerI   ps        r   r   #SteamgriddbAssetsExtractor.__init__T   sd    %%d2!H	q]&&0rd#,#<R$$)!H}q}CF	1	r   c           
   #     #    Sn[        U R                  S-
  S5      nU R                  SS5      nUS;  a  [        R                  " SU S35      eU R                  S	S
5      U R                  SS
5      U R                  SS
5      U R                  SS
5      U R                  SS
5      U R                  SS
5      U R
                  UUS.	nU R                  (       a   U R                  SSU R                  5      US'   U R                  SSU R                  5      US'   U R                  SS[        5      US'   U R                  SSU R                  5      nU Vs/ s H  n[        U   PM     snUS'   U R                  (       a  U R                  /US'   OU R                  US'    X$S'   U R                  SSUS9nUS     H%  nUR                  S!5      (       d  US!   US!'   Uv   M'     US"   X-  ::  a  g US-  nMV  s  snf 7f)#N0   r       sort
score_desc)r  	score_ascscore_old_descscore_old_ascage_descage_asczInvalid sort ''staticTanimatedhumornsfwepilepsyuntagged)	r  r  r  r  r  r  
asset_typelimitorder
dimensions	dimensionstylesstyle	languageslanguagez
file-typesz	file typemimer  r  r  z/api/public/search/assetsPOST)methodjsonr   r   total)minr  r   r   r   r  valid_dimensionsconfig_listvalid_stylesLANGUAGE_CODESvalid_file_typesFILE_EXT_TO_MIMEr  r  r   r   )	r   r  r  r  r&  
file_typesir   r   s	            r   r   !SteamgriddbAssetsExtractor.assets\   s    499q=!${{6<0 @ @++nTF!,DEE Hd3J5GT2FD1J5J5//
   !%!1!1k4+@+@"BD))(GT=N=NOX ,,^5[%%+t'<'<>
5?@Z(+Z@V<<#||nDO$($6$6D!L::+F  GDhyy(($(LE&M (
 G},AID  As   EG8G3%BG8c                     U R                  U5      n[        U[        5      (       a  UR                  S5      nUb  SU;   a  S/$ U H%  nXS;  d  M
  [        R
                  " SU SU S35      e   U$ )N,r   zInvalid z 'r  )r   
isinstancestrsplitr   r   )r   key	type_namevalid_valuesvaluer0  s         r   r*  &SteamgriddbAssetsExtractor.config_list   st    C eS!!KK$E=EUN7NA$//(9+Rs!0LMM  r   )r  r  r  N)	r   r   r   r   r   r   r   r*  r   r   r   r   r   r   Q   s    450dr   r   c                   6    \ rS rSrSrSr\S-   rSrS r	S r
Srg	)
SteamgriddbAssetExtractor   zExtractor for a single assetr   z/(grid|hero|logo|icon)/(\d+)z%https://www.steamgriddb.com/grid/1234c                 V    [         R                  X5        US   U l        US   U l        g )Nr   r   )r   r   r  asset_id)r   r  s     r   r   "SteamgriddbAssetExtractor.__init__   s&    %%d2(ar   c                     SU R                   -   S-   U R                  -   nU R                  U5      S   nUc1  [        R                  " SU R                    SU R                   S35      eU4$ )Nz/api/public/asset//r   zasset (:))r  r@  r   r   NotFoundError)r   r   r   s      r   r    SteamgriddbAssetExtractor.assets   sk    '$//9C?$--O

8$W-=))$//*!DMM?!<> >xr   )r@  r  N)r   r   r   r   r   subcategoryBASE_PATTERNpatternexampler   r   r   r   r   r   r=  r=     s$    &K<<G5G!
r   r=  c                   6    \ rS rSrSrSr\S-   rSrSr	Sr
SrS	rg
)SteamgriddbGridsExtractor   gridsgridz)/(game|collection)/(\d+)/grids(?:/(\d+))?z+https://www.steamgriddb.com/game/1234/grids)460x215920x430600x900342x482660x930512x512	1024x1024)	alternateblurredno_logomaterial
white_logor   r   r   r   r   Nr   r   r   r   rH  r  rI  rJ  rK  r)  r+  r-  r   r   r   r   rM  rM     s1    KJIIG;G0"L5r   rM  c                   6    \ rS rSrSrSr\S-   rSrSr	Sr
SrS	rg
)SteamgriddbHeroesExtractor   heroesheroz*/(game|collection)/(\d+)/heroes(?:/(\d+))?z,https://www.steamgriddb.com/game/1234/heroes)1920x620	3840x12401600x650)rX  rY  r[  r]  r   Nr^  r   r   r   r`  r`     s-    KJJJG<G<7L5r   r`  c                   6    \ rS rSrSrSr\S-   rSrSr	Sr
SrS	rg)
SteamgriddbLogosExtractor   logoslogoz)/(game|collection)/(\d+)/logos(?:/(\d+))?z+https://www.steamgriddb.com/game/1234/logosN)officialwhiteblackcustom)r   r   r   r^  r   r   r   rh  rh     s-    KJIIG;G;L&r   rh  c                   p    \ rS rSrSrSr\S-   rSrS V Vs/ s H	  o SU 3PM     snn r	Sr
S	rS
rgs  snn f )SteamgriddbIconsExtractor   iconsiconz)/(game|collection)/(\d+)/icons(?:/(\d+))?z+https://www.steamgriddb.com/game/1234/icons)%   
                      #   (   r
  6   8   9   <   @   H   L   P   Z   `   d   r   x                              i6  i   i   i   x)rl  ro  )r   r   r   Nr^  ).0r0  s   00r   rq  rq     sW    KJIIG;G-7 8 -7q#Qqc
 -7 8 *L%8s   2rq  N)r   commonr   r   r   r   r   rI  r,  r.  r   r   r=  rM  r`  rh  rq  r   r   r   <module>r     s    1 &  ;& % $9 $NI!5 IX 4 (	6 : 	66!; 6' : '
& : 
&r   