dev #2
5 changed files with 19 additions and 133 deletions
|
@ -17,7 +17,7 @@
|
|||
"memory_file_valid": "The memory.json file is valid!",
|
||||
"file_aint_uft8": "File is not valid UTF-8 text. Might be binary or corrupted.",
|
||||
"psutil_not_installed": "Memory check skipped.",
|
||||
"not_cloned": "Goober is not cloned! Please clone it from GitHub.",
|
||||
"not_cloned": "Goober is not cloned! Please clone it from Git.",
|
||||
"checks_disabled": "Checks are disabled!",
|
||||
"unhandled_exception": "An unhandled exception occurred. Please report this issue on GitHub.",
|
||||
"active_users:": "Active users:",
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
{
|
||||
"checks_disabled": "Les vérifications sont désactivées !",
|
||||
"unhandled_exception": "Une exception non gérée est survenue. Merci de rapporter ce problème sur GitHub.",
|
||||
"active_users:": "Utilisateurs actifs :",
|
||||
"spacy_initialized": "spaCy et spacytextblob sont prêts.",
|
||||
"spacy_model_not_found": "Le modèle spaCy est introuvable ! Téléchargement en cours...",
|
||||
"env_file_not_found": "Le fichier .env est introuvable ! Créez-en un avec les variables nécessaires.",
|
||||
"error_fetching_active_users": "Erreur lors de la récupération des utilisateurs actifs : {error}",
|
||||
"error_sending_alive_ping": "Erreur lors de l’envoi du ping actif : {error}",
|
||||
"already_started": "J’ai déjà démarré ! Je ne me mets pas à jour...",
|
||||
"please_restart": "Redémarre, stp !",
|
||||
"local_ahead": "Local {remote}/{branch} est en avance ou à jour. Pas de mise à jour...",
|
||||
"remote_ahead": "Remote {remote}/{branch} est en avance. Mise à jour en cours...",
|
||||
"cant_find_local_version": "Je ne trouve pas la variable local_version ! Ou elle a été modifiée et ce n’est pas un entier !",
|
||||
"running_prestart_checks": "Exécution des vérifications préalables au démarrage...",
|
||||
"continuing_in_seconds": "Reprise dans {seconds} secondes... Appuie sur une touche pour passer.",
|
||||
"missing_requests_psutil": "requests et psutil manquants ! Installe-les avec pip : `pip install requests psutil`",
|
||||
"requirements_not_found": "requirements.txt introuvable à {path}, a-t-il été modifié ?",
|
||||
"warning_failed_parse_imports": "Avertissement : Échec du parsing des imports depuis {filename} : {error}",
|
||||
"cogs_dir_not_found": "Répertoire des cogs introuvable à {path}, scan ignoré.",
|
||||
"std_lib_local_skipped": "LIB STD / LOCAL {package} (vérification sautée)",
|
||||
"ok_installed": "OK",
|
||||
"missing_package": "MANQUANT",
|
||||
"missing_package2": "n’est pas installé",
|
||||
"missing_packages_detected": "Packages manquants détectés :",
|
||||
"telling_goober_central": "Envoi à goober central à {url}",
|
||||
"failed_to_contact": "Impossible de contacter {url} : {error}",
|
||||
"all_requirements_satisfied": "Toutes les dépendances sont satisfaites.",
|
||||
"ping_to": "Ping vers {host} : {latency} ms",
|
||||
"high_latency": "Latence élevée détectée ! Tu pourrais avoir des délais de réponse.",
|
||||
"could_not_parse_latency": "Impossible d’analyser la latence.",
|
||||
"ping_failed": "Ping vers {host} échoué.",
|
||||
"error_running_ping": "Erreur lors du ping : {error}",
|
||||
"memory_usage": "Utilisation mémoire : {used} Go / {total} Go ({percent}%)",
|
||||
"memory_above_90": "Usage mémoire au-dessus de 90% ({percent}%). Pense à libérer de la mémoire.",
|
||||
"total_memory": "Mémoire totale : {total} Go",
|
||||
"used_memory": "Mémoire utilisée : {used} Go",
|
||||
"low_free_memory": "Mémoire libre faible détectée ! Seulement {free} Go disponibles.",
|
||||
"measuring_cpu": "Mesure de l’usage CPU par cœur...",
|
||||
"core_usage": "Cœur {idx} : [{bar}] {usage}%",
|
||||
"total_cpu_usage": "Usage total CPU : {usage}%",
|
||||
"high_avg_cpu": "Moyenne CPU élevée : {usage}%",
|
||||
"really_high_cpu": "Charge CPU vraiment élevée ! Le système pourrait ralentir ou planter.",
|
||||
"memory_file": "Fichier mémoire : {size} Mo",
|
||||
"memory_file_large": "Fichier mémoire de 1 Go ou plus, pense à le nettoyer pour libérer de l’espace.",
|
||||
"memory_file_corrupted": "Fichier mémoire corrompu ! Erreur JSON : {error}",
|
||||
"consider_backup_memory": "Pense à sauvegarder et recréer le fichier mémoire.",
|
||||
"memory_file_encoding": "Problèmes d’encodage du fichier mémoire : {error}",
|
||||
"error_reading_memory": "Erreur lecture fichier mémoire : {error}",
|
||||
"memory_file_not_found": "Fichier mémoire introuvable.",
|
||||
"modification_warning": "Goober a été modifié ! Toutes les modifications seront perdues lors d'une mise à jour !",
|
||||
"reported_version": "Version rapportée :",
|
||||
"current_hash": "Hachage actuel :",
|
||||
"not_found": "n'est pas trouvé !",
|
||||
"version_error": "Impossible de récupérer les informations de version. Code d'état",
|
||||
"loaded_cog": "Cog chargé :",
|
||||
"loaded_cog2": "Module chargé :",
|
||||
"cog_fail": "Échec du chargement du cog :",
|
||||
"cog_fail2": "Échec du chargement du module :",
|
||||
"no_model": "Aucun modèle Markov sauvegardé trouvé. Démarrage à partir de zéro.",
|
||||
"folder_created": "Dossier '{folder_name}' créé.",
|
||||
"folder_exists": "Le dossier '{folder_name}' existe déjà. Ignorons...",
|
||||
"logged_in": "Connecté en tant que",
|
||||
"synced_commands": "Synchronisé",
|
||||
"synced_commands2": "commandes !",
|
||||
"fail_commands_sync": "Échec de la synchronisation des commandes :",
|
||||
"started": "{name} a démarré !",
|
||||
"name_check": "Erreur lors de la vérification de la disponibilité du nom :",
|
||||
"name_taken": "Le nom est déjà pris. Veuillez choisir un autre nom.",
|
||||
"name_check2": "Erreur lors de la vérification de la disponibilité du nom :",
|
||||
"add_token": "Token : {token}\nVeuillez ajouter ce token à votre fichier .env comme",
|
||||
"token_exists": "Le token existe déjà dans .env. Utilisation du token existant.",
|
||||
"registration_error": "Erreur lors de l'enregistrement :",
|
||||
"version_backup": "Sauvegarde créée :",
|
||||
"backup_error": "Erreur : {LOCAL_VERSION_FILE} introuvable pour la sauvegarde.",
|
||||
"model_loaded": "Modèle Markov chargé depuis",
|
||||
"fetch_update_fail": "Impossible de récupérer les informations de mise à jour.",
|
||||
"invalid_server": "Erreur : Informations de version invalides reçues du serveur.",
|
||||
"goober_server_alert": "Alerte du serveur Goober central !\n",
|
||||
"new_version": "Nouvelle version disponible : {latest_version} (Actuelle : {local_version})",
|
||||
"changelog": "Consultez {VERSION_URL}/goob/changes.txt pour voir les modifications\n\n",
|
||||
"invalid_version": "La version : {local_version} n'est pas valide !",
|
||||
"invalid_version2": "Si c'est intentionnel, ignorez ce message. Sinon, appuyez sur Y pour récupérer une version valide depuis le serveur, quelle que soit la version actuelle de Goober.",
|
||||
"invalid_version3": "La version actuelle sera sauvegardée dans current_version.bak..",
|
||||
"input": "(Y ou toute autre touche pour ignorer...)",
|
||||
"modification_ignored": "Vous avez modifié",
|
||||
"modification_ignored2": "IGNOREWARNING est désactivé..",
|
||||
"latest_version": "Vous utilisez la dernière version :",
|
||||
"latest_version2": "Consultez {VERSION_URL}/goob/changes.txt pour voir les modifications",
|
||||
"pinging_disabled": "Le ping est désactivé ! Je ne préviens pas le serveur que je suis en ligne...",
|
||||
"goober_ping_success": "Connecté à Goober central en tant que {NAME}",
|
||||
"goober_ping_fail": "Échec de l'envoi des données. Le serveur a retourné le code d'état :",
|
||||
"goober_ping_fail2": "Une erreur est survenue lors de l'envoi des données :",
|
||||
"sentence_positivity": "La positivité de la phrase est :",
|
||||
"command_edit_fail": "Échec de la modification du message :",
|
||||
"command_desc_retrain": "Réentraîne manuellement le modèle Markov.",
|
||||
"command_markov_retrain": "Réentraînement du modèle Markov... Veuillez patienter.",
|
||||
"command_markov_memory_not_found": "Erreur : fichier de mémoire introuvable !",
|
||||
"command_markov_memory_is_corrupt": "Erreur : le fichier de mémoire est corrompu !",
|
||||
"command_markov_retraining": "Traitement de {processed_data}/{data_size} points de données...",
|
||||
"command_markov_retrain_successful": "Modèle Markov réentraîné avec succès en utilisant {data_size} points de données !",
|
||||
"command_desc_talk": "parle et tout ça",
|
||||
"command_talk_insufficent_text": "Je dois apprendre plus de messages avant de pouvoir parler.",
|
||||
"command_talk_generation_fail": "Je n'ai rien à dire pour le moment !",
|
||||
"command_desc_help": "aide",
|
||||
"command_help_embed_title": "Aide du bot",
|
||||
"command_help_embed_desc": "Liste des commandes regroupées par catégorie.",
|
||||
"command_help_categories_general": "Général",
|
||||
"command_help_categories_admin": "Administration",
|
||||
"command_help_categories_custom": "Commandes personnalisées",
|
||||
"command_ran": "Info : {message.author.name} a exécuté {message.content}",
|
||||
"command_ran_s": "Info : {interaction.user} a exécuté ",
|
||||
"command_desc_ping": "ping",
|
||||
"command_ping_embed_desc": "Latence du bot :",
|
||||
"command_ping_footer": "Demandé par",
|
||||
"command_about_desc": "à propos",
|
||||
"command_about_embed_title": "À propos de moi",
|
||||
"command_about_embed_field1": "Nom",
|
||||
"command_about_embed_field2name": "Version",
|
||||
"command_about_embed_field2value": "Locale : {local_version} \nDernière : {latest_version}",
|
||||
"command_desc_stats": "statistiques",
|
||||
"command_stats_embed_title": "Statistiques du bot",
|
||||
"command_stats_embed_desc": "Données sur la mémoire du bot.",
|
||||
"command_stats_embed_field1name": "Statistiques du fichier",
|
||||
"command_stats_embed_field1value": "Taille : {file_size} octets\nLignes : {line_count}",
|
||||
"command_stats_embed_field2name": "Version",
|
||||
"command_stats_embed_field2value": "Locale : {local_version} \nDernière : {latest_version}",
|
||||
"command_stats_embed_field3name": "Informations variables",
|
||||
"command_stats_embed_field3value": "Nom : {NAME} \nPréfixe : {PREFIX} \nID du propriétaire : {ownerid}\nLigne de ping : {PING_LINE} \nPartage de mémoire activé : {showmemenabled} \nEntraînement utilisateur activé : {USERTRAIN_ENABLED} \nChanson : {song} \nTexte de démarrage : ```{splashtext}```"
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
"memory_file_valid": "Il file JSON è valido!",
|
||||
"file_aint_utf8": "Il file non è un UTF-8 valido. Forse è binario?",
|
||||
"psutil_not_installed": "Controllo memoria saltato.",
|
||||
"not_cloned": "Goober non è stato clonato! Clonalo da GitHub.",
|
||||
"not_cloned": "Goober non è stato clonato! Clonalo da Git.",
|
||||
"checks_disabled": "I controlli sono disabilitati!",
|
||||
"unhandled_exception": "Si è verificata un'eccezione non gestita. Segnala questo problema su GitHub, per favore.",
|
||||
"active_users:": "Utenti attivi:",
|
||||
|
|
11
bot.py
11
bot.py
|
@ -481,6 +481,17 @@ async def about(ctx: commands.Context) -> None:
|
|||
embed.add_field(name=f"OS", value=platform.platform())
|
||||
|
||||
await send_message(ctx, embed=embed)
|
||||
@bot.hybrid_command(description="balls")
|
||||
async def countUser(ctx, user: discord.User = None):
|
||||
user = user or ctx.author
|
||||
user_id = str(user.id)
|
||||
|
||||
with open(MEMORY_FILE, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
count = sum(1 for entry in data if '_meta' in entry and entry['_meta'].get('user_id') == user_id)
|
||||
|
||||
await ctx.send(f"User {user.display_name}'s ID appears {count} times in the memory file.")
|
||||
|
||||
# Command: Show bot statistics (admin only)
|
||||
@bot.hybrid_command(description="stats")
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import logging
|
||||
import re
|
||||
from modules.globalvars import *
|
||||
|
||||
class GooberFormatter(logging.Formatter):
|
||||
|
@ -16,10 +17,14 @@ class GooberFormatter(logging.Formatter):
|
|||
}
|
||||
|
||||
def format(self, record: logging.LogRecord):
|
||||
ansiescape = re.compile(r'\x1B[@-_][0-?]*[ -/]*[@-~]')
|
||||
if self.colors:
|
||||
log_fmt = self.FORMATS.get(record.levelno) # Add colors
|
||||
else:
|
||||
log_fmt = self._format # Just use the default format
|
||||
|
||||
formatter = logging.Formatter(log_fmt, datefmt="%m/%d/%y %H:%M:%S")
|
||||
return formatter.format(record)
|
||||
formatted = formatter.format(record)
|
||||
if not self.colors:
|
||||
formatted = ansiescape.sub('', formatted)
|
||||
return formatted
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue