Scripts Pywikibot pour Vikidia (fr/en) avec architecture modulaire.
muffybot/: coeur partagé (config, Discord, fichiers, helpers wiki)muffybot/tasks/: logique métier des botswelcome.py, homonym.py, categinex.py, vandalism.py: wrappers de compatibilitéenvikidia/*.py: wrappers de compatibilité pour le wiki anglaisrun_bot.py: point d’entrée unique optionnelpython3 run_bot.py welcome
python3 run_bot.py vandalism-fr
python3 run_bot.py envikidia-sandboxreset
python3 run_bot.py daily-report
python3 run_bot.py weekly-report
python3 run_bot.py monthly-report
python3 run_bot.py doctor
config.py)DISCORD_WEBHOOK_MAIN (URL webhook Discord complete)DISCORD_WEBHOOK_ERRORS (URL webhook Discord complete)DISCORD_WEBHOOK_VANDALISM (URL webhook Discord complete)DISCORD_WEBHOOK_SERVER_LOGS (canal serveur ultra détaillé)DISCORD_MENTION_ON_CRITICAL (1/0)DISCORD_CRITICAL_LEVELS (ex: CRITICAL,FAILED)DISCORD_CRITICAL_USER_ID (id Discord à mentionner)DISCORD_CRITICAL_USERNAME (fallback mention texte)SERVER_LOG_EVERY_ACTION (1 pour log serveur de chaque action métier)SERVER_ACTION_LOG_TO_DISCORD (1 pour pousser chaque action vers Discord, 0 pour fichier local uniquement)SERVER_LOG_INCLUDE_SECRETS (1 pour inclure les valeurs sensibles en logs serveur)SERVER_ACTIONS_FILE (optionnel, défaut logs/server_actions.jsonl)SERVER_ACTION_LOG_MAX_MB (rotation du fichier d’actions serveur)SERVER_ACTION_LOG_BACKUPS (nombre de backups de rotation)MISTRAL_API_KEY (recommandé pour anti-vandalisme IA)STATUS_URL (optionnel, pour categinex)ENABLE_STATUS_PING (1 pour activer, sinon désactivé)DAILY_REPORT_WINDOW_HOURS (optionnel, défaut 24)WEEKLY_REPORT_WINDOW_HOURS (optionnel, défaut 168)MONTHLY_REPORT_WINDOW_DAYS (optionnel, défaut 30)REPORT_CRITICAL_ERROR_THRESHOLD (seuil passage en CRITICAL)REPORT_CRITICAL_QUEUE_THRESHOLD (seuil queue Discord critique)REPORT_CRITICAL_REVERT_THRESHOLD (seuil volume reverts critique)TASK_REPORTS_FILE (optionnel, défaut logs/task_reports.jsonl)DOCTOR_SEND_TEST_MESSAGES (1 pour envoyer des pings de test Discord via doctor)DOCTOR_QUEUE_WARNING_THRESHOLD (seuil d’alerte sur la queue Discord)HOMONYM_MAX_PAGES_PER_RUN (limite de pages homonymie traitées par exécution, défaut 1500)Important:
config.example.py vers config.py et compléter les valeurs.config.py est ignoré par Git (secret local).SERVER_LOG_EVERY_ACTION=1, le canal serveur recevra un très grand volume de logs.SERVER_ACTIONS_FILE) avec rotation.logs/discord_queue.json.Voir CRONTAB.example.