+
    Ki  c                   s    R t ^ RIt^ RI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Ht ^ RIHt ^ R	IHt  ! R
 R4      tR# )zCollection of installer filesN)gettext)LutrisConfig)NotificationSource)ScriptingError)steam)	AsyncCallschedule_repeating_at_idle)logger)get_app_state_logc                   st   a  ] tR t^t o RtR t]R 4       t]R 4       t	V 3R lR lt
R tV 3R lR	 ltR
tV tR# )SteamInstallerz#Handles installation of Steam gamesc                s   \        4       V n        \        4       V n        RV n        . V n        RV n        RV n        Wn        RV n        RV n	        RV n
        W n         V P                  P                  R^4      w  r4pY@n        YPn        RT n        \&        P&                  ! 4       T n        R#   \         d,   p\        \        R4      T P                  ,          4      ThRp?ii ; i)z
Params:
    steam_uri: Colon separated game info containing:
            - $STEAM
            - The Steam appid
            - The relative path of files to retrieve
    file_id: The lutris installer internal id for the game files
N FZ:zMalformed steam path: %sZlinux)r   game_installedgame_state_changed
steam_pollprev_statesstateinstall_start_time	steam_uri	stop_func	cancelled_runnerfile_idsplitZ
ValueErrorr   _appidpathplatformr   runner)selfr   r   Z_steamr   r   Zerrs   &&&    E/usr/lib/python3.14/site-packages/lutris/installer/steam_installer.py__init__ZSteamInstaller.__init__   s     12"4"6
"&"	Z"&.."6"6sA">F4 
	kkm  	Z #=!>!OPVYY	Zs   B+ +C!6&CC!c                sL    V P                   P                  4       pVR8X  d   RpV# )z'Return the relative path for data filesZ/Z.)r   Zstrip)r   Z_steam_rel_path   & r   steam_rel_pathZSteamInstaller.steam_rel_path2   s'     ))//+c!!O    c                sB    V'       d   \         P                  ! V4      hR# )z~Callback for Steam game installer, mostly for error handling
since install progress is handled by _monitor_steam_game_install
N)r   Zwrap)Z_dataZerrors   &&r   on_steam_game_installedZ&SteamInstaller.on_steam_game_installed:   s    
  %%e,, r!   c                s   < V ^8  d   QhRR/# )   returnN Zformat__classdict__   "r   __annotate__SteamInstaller.__annotate__B   s     T TD Tr!   c                sh  a  S P                   P                  S P                  R7      '       d?   \        P                  ! RS P                  4       S P
                  P                  S 4       R# \        P                  ! RS P                  4       \        S P                   P                  R7      S P                   n
        \        S P                   P                  S P                  S P                  4       \        P                  ! 4       S n        \#        S P$                  RR7      S n        V 3R lS n        R# )	z#Launch installation of a steam gamer   z"Steam game %s is already installedzInstalling steam game %s)Zrunner_slugg       @)Zinterval_secondsc                  sP   < S P                   P                  S P                  R 7      # )r+   )r   Zremove_game_datar   r   s   r   Z<lambda>Z3SteamInstaller.install_steam_game.<locals>.<lambda>M   s    T[[%A%A

%A%Sr!   N)r   get_game_path_from_appidr   r   infor   firedebugr   ZnameZconfigr   Zinstall_gamer"   timeZ	localtimer   r   _monitor_steam_game_installr   r   r,   s   fr   install_steam_gameZ!SteamInstaller.install_steam_gameB   s    ;;//djj/AAKK<djjI$$T*LL3TZZ@!-$++:J:J!KDKKdkk..0L0LdjjY&*nn&6D#89Y9YlopDOSDNr!   c                sz   V P                   P                  V P                  R7      pV'       d&   \        P                  P                  V4      '       g$   \        P                  ! RV P                  4       R# \        P                  P                  \        P                  P                  WP                  4      4      # )zReturn path of Steam filesr+   zNo path found for Steam game %sr
   )r   r-   r   osr   Zexistsr   r.   ZabspathZjoinr    )r   Z	data_pathr   r   get_steam_data_pathZ"SteamInstaller.get_steam_data_pathO   sn    KK88tzz8J	y 9 9KK94::Fwwrww||I7J7JKLLr!   c                s    < V ^8  d   QhRS[ /# )r#   r$   )Zboolr&   r(   r   r)   r*   W   s      T r!   c                s   V P                   '       d   R # \        V P                  P                  V P                  V P
                  4      pV'       dg   WP                  8w  dW   VR,          P                  R4      R,          V n        \        P                  ! RV4       V P                  P                  V 4       Wn        \        P                  ! V P                  4       \        P                  ! V4       V P                  R8X  d?   \        P                  ! RV P                  4       V P                  P                  V 4       R # R# )FZ,zSteam installation status: %szFully Installedz-Steam game %s has been installed successfullyTi)r   r   r   Zsteam_data_dirr   r   r   r   r   r   r0   r   r/   r.   r   )r   Zstatesr   r   r2   Z*SteamInstaller._monitor_steam_game_installW   s    >>>"4;;#=#=tzz4KbKbcf 0 00))#.r2DJLL8&A##((.!TZZ V::**KKGT$$T*r!   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   Zpropertyr    Zstaticmethodr"   r3   r5   r2   Z__static_attributes__Z__classdictcell__)r'   s   @r   r	   r	      sQ     -$>   - -T TM r!   r	   )r6   r4   r1   r    r   Zlutris.configr   Zlutris.gui.widgetsr   Zlutris.installer.errorsr   Zlutris.runnersr   Zlutris.util.jobsr   r   Zlutris.util.logr   Zlutris.util.steam.logr   r	   r%   r!   r   <module>r7      s2    # 	    & 1 2   B " 3W Wr!   