mirror of
https://github.com/skylanix/MamieHenriette.git
synced 2026-02-13 19:50:38 +01:00
Améliore le healthcheck Docker pour détecter les erreurs en temps réel
This commit is contained in:
@@ -44,10 +44,13 @@ class DiscordBot(discord.Client):
|
||||
return channels
|
||||
|
||||
|
||||
def begin(self) :
|
||||
def begin(self) :
|
||||
token = Configuration.query.filter_by(key='discord_token').first()
|
||||
if token :
|
||||
self.run(token.value)
|
||||
try:
|
||||
self.run(token.value)
|
||||
except Exception as e:
|
||||
logging.error(f'Erreur fatale lors du démarrage du bot Discord : {e}')
|
||||
else :
|
||||
logging.error('Aucun token Discord configuré. Le bot ne peut pas être démarré')
|
||||
|
||||
@@ -66,8 +69,10 @@ async def on_message(message: Message):
|
||||
commande = Commande.query.filter_by(discord_enable=True, trigger=command_name).first()
|
||||
if commande:
|
||||
try:
|
||||
await message.channel.send(commande.response, suppress_embeds=True)
|
||||
await asyncio.wait_for(message.channel.send(commande.response, suppress_embeds=True), timeout=30.0)
|
||||
return
|
||||
except asyncio.TimeoutError:
|
||||
logging.error(f'Timeout lors de l\'envoi de la commande Discord : {command_name}')
|
||||
except Exception as e:
|
||||
logging.error(f'Échec de l\'exécution de la commande Discord : {e}')
|
||||
|
||||
@@ -89,7 +94,9 @@ async def on_message(message: Message):
|
||||
if (rest > 0):
|
||||
msg += f'- et encore {rest} autres jeux'
|
||||
try :
|
||||
await message.channel.send(msg, suppress_embeds=True)
|
||||
await asyncio.wait_for(message.channel.send(msg, suppress_embeds=True), timeout=30.0)
|
||||
except asyncio.TimeoutError:
|
||||
logging.error(f'Timeout lors de l\'envoi du message ProtonDB')
|
||||
except Exception as e:
|
||||
logging.error(f'Échec de l\'envoi du message ProtonDB : {e}')
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import asyncio
|
||||
import datetime
|
||||
import logging
|
||||
import json
|
||||
@@ -14,11 +15,18 @@ def _isEnable():
|
||||
return helper.getValue('humble_bundle_enable') and helper.getIntValue('humble_bundle_channel') != 0
|
||||
|
||||
def _callGithub():
|
||||
response = requests.get("https://raw.githubusercontent.com/shionn/HumbleBundleGamePack/refs/heads/master/data/game-bundles.json")
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
logging.error(f"Échec de la connexion à la ressource Humble Bundle. Code de statut HTTP : {response.status_code}")
|
||||
return None
|
||||
try:
|
||||
response = requests.get("https://raw.githubusercontent.com/shionn/HumbleBundleGamePack/refs/heads/master/data/game-bundles.json", timeout=30)
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
logging.error(f"Échec de la connexion à la ressource Humble Bundle. 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 à la ressource Humble Bundle : {e}")
|
||||
return None
|
||||
except Exception as e:
|
||||
logging.error(f"Erreur inattendue lors de la récupération des bundles : {e}")
|
||||
return None
|
||||
|
||||
def _isNotAlreadyNotified(bundle):
|
||||
return GameBundle.query.filter_by(url=bundle['url']).first() == None
|
||||
@@ -46,9 +54,14 @@ async def checkHumbleBundleAndNotify(bot: Client):
|
||||
bundle = _findFirstNotNotified(bundles)
|
||||
if bundle != None :
|
||||
message = _formatMessage(bundle)
|
||||
await bot.get_channel(ConfigurationHelper().getIntValue('humble_bundle_channel')).send(message)
|
||||
db.session.add(GameBundle(url=bundle['url'], name=bundle['name'], json = json.dumps(bundle)))
|
||||
db.session.commit()
|
||||
try:
|
||||
await asyncio.wait_for(bot.get_channel(ConfigurationHelper().getIntValue('humble_bundle_channel')).send(message), timeout=30.0)
|
||||
db.session.add(GameBundle(url=bundle['url'], name=bundle['name'], json = json.dumps(bundle)))
|
||||
db.session.commit()
|
||||
except asyncio.TimeoutError:
|
||||
logging.error(f'Timeout lors de l\'envoi du message Humble Bundle')
|
||||
except Exception as send_error:
|
||||
logging.error(f'Erreur lors de l\'envoi du message Humble Bundle : {send_error}')
|
||||
except Exception as e:
|
||||
logging.error(f"Échec de la vérification des offres Humble Bundle : {e}")
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user