Ë
    µŒjá  ã                   óR   — d Z ddlmZmZ ddlmZmZmZ ddlm	Z	m
Z
  G d„ de«      Zy)zUtil that calls Steam-WebAPI.é    )ÚAnyÚList)Ú	BaseModelÚ
ConfigDictÚmodel_validator)ÚSTEAM_GET_GAMES_DETAILSÚSTEAM_GET_RECOMMENDED_GAMESc                   ó(  — e Zd ZU dZdZeed<   ddedœddedœgZ	e
e   ed	<    ed
¬«      Zde
e   fd„Z ed¬«      ededefd„«       «       Zdedefd„Zdedefd„Zdedefd„Zdedefd„Zdedefd„Zdede
e   fd„Zdedefd„Zdededefd „Zy)!ÚSteamWebAPIWrapperzWrapper for Steam API.NÚsteamÚget_game_detailszGet Game Details)ÚmodeÚnameÚdescriptionÚget_recommended_gameszGet Recommended GamesÚ
operationsÚforbid)ÚextraÚreturnc                 ó   — | j                   S )zReturn a list of operations.)r   )Úselfs    úm/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/utilities/steam.pyÚget_operationsz!SteamWebAPIWrapper.get_operations%   s   € à�‰Ðó    Úbefore)r   Úvaluesc                 ó¬   — 	 ddl m} 	 ddlm}  |d«      } ||«      }||d<   |S # t        $ r t        d«      ‚w xY w# t        $ r t        d«      ‚w xY w)z8Validate api key and python package has been configured.r   )ÚSteamz+python-steam-api library is not installed. )Úconfigz#decouple library is not installed. Ú	STEAM_KEYr   )r   r   ÚImportErrorÚdecoupler   )Úclsr   r   r   ÚKEYr   s         r   Úvalidate_environmentz'SteamWebAPIWrapper.validate_environment)   st   € ð	MÝ#ð	EÝ'ñ
 �[Ó!ˆÙ�c“
ˆØˆˆw‰Øˆøô ò 	MÜÐKÓLÐLð	Mûô
 ò 	EÜÐCÓDÐDð	Eús   ‚& ‰> ¦;¾AÚdetailsc                 ó€   — d}|j                  «       D ](  \  }}|dt        |«      z   dz   t        |«      z   dz   z  }Œ* |S )zParse the details result.Ú zThe z is: Ú
)ÚitemsÚstr)r   r&   ÚresultÚkeyÚvalues        r   Úparse_to_strzSteamWebAPIWrapper.parse_to_str?   sF   € àˆØ!Ÿ-™-ž/‰JˆC�Ø�fœs 3›xÑ'¨'Ñ1´C¸³JÑ>ÀÑEÑE‰Fð *àˆr   Úgamesc                 óR   — i }|d   D ]  }|d   |d<   |d   |d<   |d   |d<    |S  |S )zjThe response may contain more than one game, so we need to choose the right
        one and return the id.ÚappsÚidÚlinkÚprice© )r   r0   Ú	game_infoÚapps       r   Úget_id_link_pricez$SteamWebAPIWrapper.get_id_link_priceF   sQ   € ð ˆ	Ø˜”=ˆCØ! $™iˆI�d‰OØ # F¡ˆI�fÑØ!$ W¡ˆI�gÑØØÐð !ð
 Ðr   Úhtml_stringc                 ó@   — ddl m}  ||d«      }|j                  «       S )Nr   )ÚBeautifulSoupzhtml.parser)Úbs4r<   Úget_text)r   r:   r<   Úsoups       r   Úremove_html_tagsz#SteamWebAPIWrapper.remove_html_tagsR   s   € Ý%á˜[¨-Ó8ˆØ�}‰}‹Ðr   r   c                 ó   — | j                   j                  j                  |«      }| j                  |«      }| j	                  |«      }t        |j                  d«      «      }| j                   j                  j                  |«      }|j                  |«      j                  d«      }|j                  d«      }| j                  |«      }|j                  |«      j                  d«      j                  d«      }	d|z   dz   dz   |	z   dz   }
||
z   }|S )Nr3   ÚdataÚdetailed_descriptionÚsupported_languageszThe summary of the game is: r)   z)The supported languages of the game are: )	r   r2   Úsearch_gamesr9   r/   r+   ÚgetÚget_app_detailsr@   )r   r   r0   Úinfo_partOne_dictÚinfo_partOner3   Ú	info_dictrB   rC   rD   Úinfo_partTwoÚinfos               r   Údetails_of_gamesz#SteamWebAPIWrapper.details_of_gamesX   s  € Ø—
‘
—‘×,Ñ,¨TÓ2ˆØ ×2Ñ2°5Ó9ÐØ×(Ñ(Ð):Ó;ˆÜÐ"×&Ñ& tÓ,Ó-ˆØ—J‘J—O‘O×3Ñ3°BÓ7ˆ	Ø�}‰}˜RÓ ×$Ñ$ VÓ,ˆØ#Ÿx™xÐ(>Ó?Ðð  $×4Ñ4Ð5IÓJÐØ'Ÿm™m¨BÓ/×3Ñ3°FÓ;×?Ñ?Ð@UÓVÐà*Ø"ñ#àñð :ñ:ð "ñ	"ð
 ñð 	ð ˜lÑ*ˆØˆr   c                 ó`   — | j                   j                  j                  |«      }|d   d   }|S )NÚplayerÚsteamid)r   ÚusersÚsearch_user)r   r   ÚuserÚsteam_ids       r   Úget_steam_idzSteamWebAPIWrapper.get_steam_idp   s/   € Ø�z‰z×Ñ×+Ñ+¨DÓ1ˆØ˜‘> )Ñ,ˆØˆr   rT   c                 óP   — | j                   j                  j                  |dd«      S )NF)r   rQ   Úget_owned_games)r   rT   s     r   Úget_users_gamesz"SteamWebAPIWrapper.get_users_gamesu   s!   € Ø�z‰z×Ñ×/Ñ/°¸%ÀÓGÐGr   c                 óŒ  — 	 dd l }| j                  |«      }i }d}d}|d   D ]l  }|d   }d|dœ}	|j                  |	«      }
|
j	                  dd«      j                  d	«      }|D ])  }||v r||xx   d
z  cc<   nd
||<   ||   |kD  sŒ#||   }|}Œ+ Œn t        «       }	d|	d<   ||	d<   |j                  |	«      }t        |j                  «       d„ d¬«      }|d   D �cg c]  }|d   ‘Œ	 }}|D �cg c]  }|d   |vsŒ|‘Œ }}|d d D �cg c]  }|d   ‘Œ	 }}t        |«      S # t        $ r t        d«      ‚w xY wc c}w c c}w c c}w )Nr   z$steamspypi library is not installed.r(   r0   ÚappidÚ
appdetails)ÚrequestrZ   Úgenrez, é   r\   c                 ó&   — | j                  dd«      S )NÚaverage_foreverr   )rF   )Úxs    r   Ú<lambda>z6SteamWebAPIWrapper.recommended_games.<locals>.<lambda>•   s   € ¨¯©Ð/@À!Ô)Dr   T)r-   Úreverseé   r   )
Ú
steamspypir!   rX   ÚdownloadrF   ÚsplitÚdictÚsortedr   r+   )r   rT   re   Úusers_gamesr,   Úmost_popular_genreÚmost_popular_genre_countÚgamerZ   Údata_requestÚ
genreStoreÚ	genreListr]   rB   Úsorted_dataÚowned_gamesÚremaining_gamesÚtop_5_popular_not_owneds                     r   Úrecommended_gamesz$SteamWebAPIWrapper.recommended_gamesx   s®  € ð	FÛð ×*Ñ*¨8Ó4ˆØ!#ˆØÐØ#$Ð Ø Ô(ˆDØ˜‘MˆEØ'3¸eÑDˆLØ#×,Ñ,¨\Ó:ˆJØ"Ÿ™ w°Ó3×9Ñ9¸$Ó?ˆIã"�Ø˜F‘?Ø˜5“M QÑ&”Mà$%�F˜5‘MØ˜%‘=Ð#;Ó;Ø/5°e©}Ð,Ø).Ñ&ñ #ð )ô “vˆØ")ˆ�YÑØ 2ˆ�WÑØ×"Ñ" <Ó0ˆÜØ�K‰K‹MÑDÈdô
ˆð 2=¸WÒ1EÓFÑ1E¨�t˜G“}Ð1EˆÐFá(ó
Ù(�T¨D°©MÀÒ,LŠD˜[ð 	ð 
ð =LÈBÈQÑ<OÓ"PÑ<O°D 4¨£<Ð<OÐÐ"PÜÐ*Ó+Ð+øôC ò 	FÜÐDÓEÐEð	Füò8 Gùò
ùò #Qs#   ‚D ÃD7Ã,D<Ã9D<ÄEÄD4r   rm   c                 óx   — |dk(  r| j                  |«      S |dk(  r| j                  |«      S t        d|› d�«      ‚)NÚget_games_detailsr   zInvalid mode z for Steam API.)rM   ru   Ú
ValueError)r   r   rm   s      r   ÚrunzSteamWebAPIWrapper.runž   sJ   € ØÐ&Ò&Ø×(Ñ(¨Ó.Ð.ØÐ,Ò,Ø×)Ñ)¨$Ó/Ð/ä˜}¨T¨F°/ÐBÓCÐCr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r	   r   r   rh   r   Úmodel_configr   r   Úclassmethodr%   r+   r/   r9   r@   rM   rU   rX   ru   ry   r6   r   r   r   r      s:  … Ù à€Eˆ3Óð 'Ø&Ø2ñ	
ð ,Ø+Ø6ñ	
ð€J��T‘
ó ñ Øô€Lð  T¡
ó ñ ˜(Ô#Øð¨$ð °3ò ó ó $ðð( Dð ¨Só ð
 tð 
°ó 
ð¨Cð °Có ð Sð ¨Só ð0 ð ¨ó ð
H¨ð H°°S±	ó Hð$,¨#ð $,°#ó $,ðLD˜ð D 3ð D¨3ô Dr   r   N)r}   Útypingr   r   Úpydanticr   r   r   Ú&langchain_community.tools.steam.promptr   r	   r   r6   r   r   Ú<module>r„      s&   ðÙ #ç ç ;Ñ ;÷ôWD˜õ WDr   