+
    Ki  c                   s    ^ RI t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt R	 tR
 tR tR tR tR tR tR# )i    N)get_api_gamesget_game_installers)	get_games)MissingGameDependencyError)ScriptInterpreter)download_lutris_media)logger)slugifyc                s    \         P                  ! V 4      p/ pV FT  p\         P                  P                  \         P                  P	                  W4      4      '       g   KG  W2\        V4      &   KV  	  V# )z;Scan a directory for games previously installed with lutris)osZlistdirpathZisdirjoinr   )dirnameZfoldersZgame_foldersfolders   &   ;/usr/lib/python3.14/site-packages/lutris/scanners/lutris.pyget_game_slugs_and_foldersr      sV    jj!GLww}}RWW\\':;;(.WV_%      c                 s   VR ,          V9   dU   \         P                  P                  WVR ,          ,          4      p\         P                  P                  V4      '       d   V# VR,           Fi  pVR ,          V9   g   K  \         P                  P                  WVR ,          ,          4      p\         P                  P                  V4      '       g   Kg  Vu # 	  R# )slugZaliasesN)r   r	   r
   exists)r   api_game	slugs_mapgame_folderZaliass   &&&  r   find_game_folderr      s    9$ggll7hv6F,GH77>>+&&)$$=I%'',,w%-0HIKww~~k**""	 %r   c                 s    VR ,          R,          P                  R4      pV'       g!    VR ,          R,          P                  R4      pV'       g   R# VP                  RR4      p\        P                  P                  W4      p\        P                  P                  V4      '       d   V# R#   \         d    TR ,          P                  R4      p Li ; i  \         d     Li ; i)ZscriptgameZexeZ	main_fileNz	$GAMEDIR/Z )ZgetZKeyErrorZreplacer   r	   r
   r   )r   	installerZexe_path	full_paths   &&  r   detect_game_from_installerr   #   s    2X&v.2259 	 *6266{CH R0H[3I	ww~~i   !  2X&**512
  		s"   B- C -#CCC$#C$c                 sl    \        VR ,          4      pV F  p\        W4      pV'       g   K  WC3u # 	  R# )r   )NN)r   r   )r   r   Z
installersr   r   s   &&   r   	find_gamer   5   s;    $Xf%56J	.{F	9''   r   c                  s    \        4       p \        4        F,  pVR ,          '       g   K  V P                  VR ,          4       K.  	  V # )Z	directory)setr   add)directoriesr   s     r   get_used_directoriesr   >   s9    %KOOD-.  r   c                 s\    \        V 4      pWn        VP                  P                  4        R # )N)r   Ztarget_pathr   Zsave)r   r   Zinterpreters   && r   install_gamer   F   s$    #I.K) r   c                 sb   \        V 4      p\        4       p\        \        VP	                  4       4      4      p\        4       p\        4       pV F  pVR ,          V9   d   K  VP                  VR ,          4       \        WV4      pWr9   d   VP                  VR ,          4       KW  \        Wv4      w  rV'       g   Kn  \        P                  ! RVR,          V4        \        W4       \        V	R,          4       VP                  VR ,          4       K  	  VP                  4        UUu/ uF  w  rW9   g   K  WbK  	  pppVP                  4        UUu/ uF  w  rW9  g   K  WbK  	  pppW3#   \         d*   p
\        P                  ! RTR,          T
4        Rp
?
LRp
?
ii ; iu uppi u uppi )r   zFound %s in %sZnamezSkipped %s: %sNZ	game_slug)r   r   r    ZlistZkeysr   r   r   r   r   Zinfor   r   Zerrorr   Zitems)r   r   r   Z	api_gamesZ
slugs_seenZslugs_installedr   r   r   r   Zexr   r   Zinstalled_mapZmissing_maps   &              r   scan_directoryr    L   st   *73I&(Kd9>>#345IJeOFz)x'(&w)D% 01(?	9KK((6*:IFEY4 ")K"89 01! $ 7@oo6Gc6Gld4Kb\T\6GMc4=OO4Ee4ELDId<4<4EKe%% . E-x/?DDE
 des0   E.(
F%7F%
F+"F+.F"9FF")r   Z
lutris.apir    r   Zlutris.database.gamesr   Zlutris.installer.errorsr   Zlutris.installer.interpreterr   Zlutris.services.lutrisr   Zlutris.util.logr   Zlutris.util.stringsr   r   r   r   r   r   r   r    ) r   r   <module>r!      s@    	 9 + > : 8 " '	#$!&r   