mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-06 23:10:36 +01:00
Améliore le healthcheck Docker pour détecter les erreurs en temps réel
This commit is contained in:
@@ -8,24 +8,38 @@ from database.helpers import ConfigurationHelper
|
||||
from database.models import GameAlias
|
||||
from sqlalchemy import desc,func
|
||||
|
||||
def _call_algoliasearch(search_name:str):
|
||||
config = SearchConfig(ConfigurationHelper().getValue('proton_db_api_id'),
|
||||
ConfigurationHelper().getValue('proton_db_api_key'))
|
||||
config.set_default_hosts()
|
||||
client = SearchClientSync(config=config)
|
||||
return client.search_single_index(index_name="steamdb",
|
||||
search_params={
|
||||
"query":search_name,
|
||||
"facetFilters":[["appType:Game"]],
|
||||
"hitsPerPage":50},
|
||||
request_options= {'headers':{'Referer':'https://www.protondb.com/'}})
|
||||
def _call_algoliasearch(search_name:str):
|
||||
try:
|
||||
config = SearchConfig(ConfigurationHelper().getValue('proton_db_api_id'),
|
||||
ConfigurationHelper().getValue('proton_db_api_key'))
|
||||
config.set_default_hosts()
|
||||
client = SearchClientSync(config=config)
|
||||
return client.search_single_index(index_name="steamdb",
|
||||
search_params={
|
||||
"query":search_name,
|
||||
"facetFilters":[["appType:Game"]],
|
||||
"hitsPerPage":50},
|
||||
request_options= {
|
||||
'headers':{'Referer':'https://www.protondb.com/'},
|
||||
'timeout': 30
|
||||
})
|
||||
except Exception as e:
|
||||
logging.error(f'Erreur lors de la recherche Algolia pour "{search_name}" : {e}')
|
||||
return None
|
||||
|
||||
def _call_summary(id):
|
||||
response = requests.get(f'http://jazzy-starlight-aeea19.netlify.app/api/v1/reports/summaries/{id}.json')
|
||||
if (response.status_code == 200) :
|
||||
return response.json()
|
||||
logging.error(f'Échec de la récupération des données ProtonDB pour le jeu {id}. Code de statut HTTP : {response.status_code}')
|
||||
return None
|
||||
try:
|
||||
response = requests.get(f'http://jazzy-starlight-aeea19.netlify.app/api/v1/reports/summaries/{id}.json', timeout=30)
|
||||
if (response.status_code == 200) :
|
||||
return response.json()
|
||||
logging.error(f'Échec de la récupération des données ProtonDB pour le jeu {id}. Code de statut HTTP : {response.status_code}')
|
||||
return None
|
||||
except (requests.exceptions.SSLError, requests.exceptions.Timeout, requests.exceptions.ConnectionError) as e:
|
||||
logging.error(f'Erreur de connexion ProtonDB pour le jeu {id} : {e}')
|
||||
return None
|
||||
except Exception as e:
|
||||
logging.error(f'Erreur inattendue lors de la récupération ProtonDB pour le jeu {id} : {e}')
|
||||
return None
|
||||
|
||||
def _is_name_match(name:str, search_name:str) -> bool:
|
||||
normalized_game_name = re.sub("[^a-z0-9]", "", name.lower())
|
||||
@@ -37,10 +51,12 @@ def _apply_game_aliases(search_name:str) -> str:
|
||||
search_name = re.sub(re.escape(alias.alias), alias.name, search_name, flags=re.IGNORECASE)
|
||||
return search_name
|
||||
|
||||
def searhProtonDb(search_name:str):
|
||||
def searhProtonDb(search_name:str):
|
||||
results = []
|
||||
search_name = _apply_game_aliases(search_name)
|
||||
responses = _call_algoliasearch(search_name)
|
||||
if responses is None:
|
||||
return results
|
||||
for hit in responses.model_dump().get('hits'):
|
||||
id = hit.get('object_id')
|
||||
name:str = hit.get('name')
|
||||
|
||||
Reference in New Issue
Block a user