a
    è6“iÇ
  ã                   @   sº   d Z ddlZddlZddlZddlZddlZg Ze d¡Ze d¡Z	g d¢Z
deeddœdd	„Zedd
œdd„Zeed
œdd„Zedœdd„Zeeedœdd„Zeejeedœdd„ZdS )z5The Steamhelper allows the installation of Steam appsé    Nz"path"\s*"(?P<path>(.*))"z "StateFlags"\s*"(?P<state>(\d))")z~/.steam/rootz~/.steam/debian-installationz~/.local/share/Steamz~/.steam/steamé   )ÚappidÚdelayÚreturnc                 C   s    t | ƒ t| ƒst |¡ qdS )z%Wait for the installation of an appidN)Ú_install_steam_appidÚ_is_app_installedÚtimeÚsleep)r   r   © r
   úd/home/james-whalen/.local/share/Steam/compatibilitytools.d/GE-Proton10-32/protonfixes/steamhelper.pyÚinstall_app   s    r   )r   r   c                 C   sŽ   d| › }t  d¡r$t d|g¡ nft  d¡r>t d|g¡ nLt  d¡rXt d|g¡ n2t  d¡rrt d|g¡ nt  d¡rŠt d|g¡ dS )zCall steam URLzsteam://install/zxdg-openz	gvfs-openz
gnome-openzkde-openzexo-openN)ÚshutilÚwhichÚ
subprocessÚcall)r   Zinstall_urlr
   r
   r   r      s    





r   c                 C   sn   t ƒ }t|ƒdkrdS d}|D ]J}t| |ƒ}tj |¡rt|tdƒ}t|ƒdkrdt|d ƒdkrdd} qjq|S )zCheck if app is installedr   TFÚstateé   )	Ú_get_steam_libraries_pathÚlenÚ_get_manifest_pathÚosÚpathÚexistsÚ_find_regex_groupsÚREGEX_STATEÚint)r   Zlibraries_pathZis_installedÚlibrarypathZappmanifest_pathr   r
   r
   r   r   +   s    
r   )r   c                  C   sT   t tƒdkrPtD ]>} tj tj | ¡dd¡}tj |¡rt t	|t
dƒ¡  qPqtS )zGet Steam Libraries Pathr   Ú	steamappszlibraryfolders.vdfr   )r   ÚlibpathsÚ
STEAM_DIRSr   r   ÚjoinÚ
expanduserr   Úextendr   Ú	REGEX_LIB)Z	steampathZlibfiler
   r
   r   r   >   s    ÿr   )r   r   r   c                 C   s   t j |ddt| ƒ› d¡S )zGet appmanifest pathr   Úappmanifest_z.acf)r   r   r    Ústr)r   r   r
   r
   r   r   K   s    r   )r   ÚregexÚ	groupnamer   c                 C   s\   g }t | dd8}|D ]"}| |¡}|r| | |¡¡ qW d  ƒ n1 sN0    Y  |S )zYGiven a file and a regex with a named group groupname, return an array of all the matchesÚascii)ÚencodingN)ÚopenÚsearchÚappendÚgroup)r   r&   r'   ÚmatchesZre_fileÚliner+   r
   r
   r   r   P   s    
0r   )r   )Ú__doc__r   Úrer   r   r   r   Úcompiler#   r   r   r%   r   r   r   Úboolr   Úlistr   r   ÚPatternr   r
   r
   r
   r   Ú<module>   s   

