Atlas Bot documentation

Nouveautés

Les versions récentes d'Atlas Bot et ce qu'elles ont apporté.

#v2.68.0 Interrupteur du CAPTCHA

  • Activer / désactiver le CAPTCHA : /quarantaine captcha actif:True|False (permission « Gérer le serveur » ; sans option, affiche l'état) ou /config > Quarantaine > « CAPTCHA image activé ». C'est l'interrupteur général : mode CAPTCHA de la quarantaine, action anti-raid « Quarantaine + CAPTCHA », option des comptes suspects et /quarantaine mettre captcha:True.
  • Désactivé : ceux qui devaient résoudre un CAPTCHA sortent d'un simple clic de bouton (pas de CAPTCHA = pas de filtre anti-robot) ; l'anti-raid retombe sur l'exclusion temporaire ; les autres modes de quarantaine (délai, bouton, calcul) ne changent pas. Activé par défaut, mais le CAPTCHA ne sert que si le mode « CAPTCHA » est choisi ou si une option le demande.

#v2.67.0 CAPTCHA image à 3 niveaux, anti-raid et AutoMod renforcés

  • CAPTCHA image (src/captcha.js, image PNG générée avec @napi-rs/canvas, aucun service externe) : nouveau mode de quarantaine « En recopiant le code d'une image ». 3 niveaux : court (4 caractères, bruit léger), moyen (5, déformation + lignes, conseillé), long (7, forte déformation, bruit dense, lettres qui se chevauchent). Alphabet sans caractères ambigus (pas de 0/O, 1/I…). À chaque image, le bot tire au hasard MAJUSCULES ou minuscules et l'annonce dans le message (« ils sont tous en MAJUSCULES / en minuscules ») ; la casse doit être respectée. Les caractères sont tirés au hasard (générateur cryptographique) pour chaque membre et chaque nouvelle image.
  • Protections autour du CAPTCHA : code valable 3 à 4 min et à usage unique ; une erreur = nouvelle image obligatoire (pas d'essai-erreur sur la même image) ; 3 échecs = blocage progressif (1 min, puis 5 min, puis 30 min) ; « Autre image » limité à 3 ; option expulsion après N blocages ; option expulsion si non résolu au bout de N minutes (ne touche jamais une quarantaine posée à la main) ; niveau long automatique pendant un mode raid.
  • Anti-raid : nouvelle action « Quarantaine + CAPTCHA image » (réversible ; repli sur l'exclusion temporaire si la quarantaine n'est pas prête) ; détection des vagues coordonnées : 3 pseudos quasi identiques ou 3 comptes récents (< 30 jours) créés à moins de 10 min d'écart déclenchent le mode raid même sous le seuil (désactivable).
  • Comptes suspects : option « CAPTCHA » : un compte qui déclenche l'alerte est mis en quarantaine avec CAPTCHA.
  • AutoMod : nouvelle règle « texte zalgo / caractères invisibles » (activée par défaut, seuil réglable).
  • /quarantaine apercu (modérateurs) : voit un exemple de chaque niveau ; /quarantaine mettre captcha:True impose un CAPTCHA à un membre.
  • Limites assumées : aucun CAPTCHA image n'est incassable. Mesure interne : Tesseract (OCR classique) lit 10/10 d'un texte propre mais 0/40 à chacun des 3 niveaux ; ce n'est PAS une preuve contre une IA de vision moderne, qui peut en lire une partie. Le CAPTCHA filtre les robots simples et ralentit un raid ; il doit rester combiné à l'anti-raid, à l'âge minimum de compte et à la quarantaine.

#v2.66.0 Page État avec incidents, annonces sur Discord en un geste, export / import de serveur

  • Page État du bot (site, #status) : elle avait été retirée du site auparavant ; elle est rétablie, avec en plus l'historique des incidents. Elle lit status.json (publié par le bot dans le Gist) et teste l'API en direct. Rien n'a changé sur l'accueil : toujours pas de pastille « en ligne / hors ligne » ni d'appel /api/health à l'ouverture du site. Le raccourci PWA « État » reste retiré.
  • Incidents (src/incidents.js) : le propriétaire en ouvre depuis le panel Owner → onglet Incidents (gravité, texte), les met à jour (analyse → cause identifiée → surveillance → résolu) et les résout. Les arrêts du bot sont détectés automatiquement : un bot éteint ne peut pas se signaler, donc au démarrage, si son dernier signe de vie date de plus de 10 minutes, un incident « Bot indisponible » (résolu) est ajouté avec la durée réelle. Les incidents des 90 derniers jours sont dans status.json.
  • Annonces en un geste (src/announce.js) : une annonce (panel Owner → Annonces, ou /news publier support:true) et un incident peuvent être postés en même temps sur le site et dans le salon de support Discord. Réglage : SUPPORT_ANNOUNCE_CHANNEL_ID dans le .env (le salon doit être dans le serveur SUPPORT_GUILD_ID s'il est défini). Aucun message privé, aucune mention possible.
  • /serveur exporter et /serveur importer (administrateurs) : un fichier JSON avec les rôles, catégories et salons (permissions de rôles comprises) et la configuration du bot. L'import ne supprime ni n'écrase rien : ce qui existe déjà (même nom) est conservé, seul le manquant est créé. Les salons et rôles cités dans la configuration sont reliés à leurs équivalents de même nom, sinon vidés. Le fichier ne contient ni messages, ni membres, ni permissions propres à un membre, ni la section sécurité ; l'import ne touche jamais à la sécurité du serveur de destination. Aperçu et confirmation avant tout. Complète /serveur restaurer (qui ne rétablit que ce qui a été supprimé) et /config importer (configuration seule).

#v2.65.0 Défis de saison, suggestions à boutons, rôles de parrainage

  • Défis de saison (src/seasonChallenges.js) : une édition limitée ouverte peut se gagner en faisant vivre le serveur, pas seulement par évènement. Il faut cumuler des jours vivants dans la fenêtre de l'édition : au moins 20 messages écrits par au moins 3 membres différents (3 messages chacun ; les bots ne comptent pas). Objectif = 40 % de la durée de la fenêtre, 10 jours minimum (Noël : 24 jours, Nouvel An : 13). La progression est mémorisée par serveur (seasonChallenge), la carte gagnée l'est pour toujours et est annoncée (salon d'annonces d'activité, sinon d'évènements, sinon salon système). /pub-plus carte-site defis montre la progression. Réglage : /config → Activité → « Défis de saison » ; le module Activité doit être actif. La fenêtre reste la même que pour les évènements : une édition fermée ne peut plus être gagnée.
  • Suggestions (src/suggestions.js) : les messages de suggestion portent des boutons Accepter / Refuser réservés au staff (raison facultative dans un formulaire). Le résultat des votes 👍 / 👎 est figé et affiché avec le statut. /communaute suggestion continue de fonctionner (et sert pour les anciens messages).
  • Parrainage : nouveau réglage « Rôles de parrainage » (5 Ambassadeur = rôle donné à 5 membres invités encore présents). Un rôle n'est jamais retiré. /info permissions signale ces rôles s'ils sont trop hauts ou supprimés.
  • Rien à faire pour les évènements : le rappel avant le début et le bouton « Je participe » existaient déjà (v2.2x).

#v2.64.0 Diagnostic des permissions, assistant de premier lancement, statistiques

  • /info permissions (Gérer le serveur) : compare ce que le bot peut faire à ce que ta configuration lui demande (un module désactivé n'exige rien). Il liste les permissions manquantes avec le module qui les réclame, les rôles à donner qui sont trop hauts, supprimés ou gérés par une intégration, les salons réglés mais supprimés / du mauvais type / où le bot ne peut pas écrire, les salons privés qu'il ne voit pas, les modules et commandes désactivés, les commandes limitées à certains salons, et propose les corrections dans l'ordre. salon:#x vérifie un salon précis. Code : src/permCheck.js (calcul) et src/permReport.js (affichage). Il ne modifie rien.
  • Assistant de premier lancement (src/firstRun.js) : à l'arrivée du bot, un message dans le salon système (sinon le premier salon où il peut écrire) affiche l'état des permissions, la progression de la checklist et trois boutons : Configurer (ouvre /config), Vérifier les permissions, Modèles. Si aucun salon n'est utilisable, le propriétaire reçoit un seul message privé. Les boutons exigent « Gérer le serveur ».
  • Modèles (src/presets.js) : Communauté, Gaming, Support. Un modèle règle des modules, des seuils et des règles d'AutoMod ; il ne crée ni salon ni rôle. Aperçu puis confirmation obligatoires ; les changements sont dans /config → Historique et s'annulent un par un.
  • /info activite serveur : choix 7 / 14 / 30 jours, tendances face à la période précédente, solde arrivées/départs, heure de pointe et jour le plus actif, avertissement quand le suivi est trop récent. Le rapport hebdomadaire automatique (santé, classement) existait déjà et n'est pas dupliqué.
  • Limites : textes de ces fonctions en français uniquement ; pas encore de page « Permissions » sur le site.

#v2.63.1 Cartes drapeaux retirées

  • Les 197 cartes drapeaux de la v2.63.0 sont supprimées (catalogue, fichiers SVG du site, filtre et styles). Il reste 44 cartes : les 22 d'origine et les 22 éditions limitées 2026-2030 (règles d'exclusivité inchangées). Un serveur qui aurait déjà reçu un drapeau repasse simplement sur sa carte active précédente ou sur « Classique ».

#v2.63.0 Cartes drapeaux (un par pays, retirés en v2.63.1) et éditions limitées 2026-2030

  • 241 cartes de pub au lieu de 22 : les 22 cartes d'origine + 197 drapeaux + 22 éditions limitées. Le catalogue est généré par node scripts/gen-cards.js (à partir de src/data/siteCards.base.json) ; ne modifie pas siteCards.json à la main.
  • Drapeaux : un par État membre de l'ONU (193) + Vatican, Palestine, Taïwan et Kosovo. Pour en retirer un, enlève son code dans EXTRA (ou UN) de scripts/gen-cards.js et relance le script. Les drapeaux sont de vrais SVG (flags/<pays>.svg, bibliothèque MIT flag-icons), affichés en fond de la carte avec une étoffe qui ondule, car les emoji de drapeau ne s'affichent pas sous Windows. Seuls les drapeaux visibles à l'écran sont chargés.
  • Éditions limitées : Noël et Halloween de 2026 à 2030 ; Saint-Valentin, Pâques et Nouvel An de 2027 à 2030 (les éditions 2026 de ces trois fêtes sont déjà passées). Même décor que la carte de la saison, avec une teinte propre à chaque année et le millésime en filigrane. Ce sont les mêmes animations, pas 22 illustrations différentes.
  • Exclusivité : une édition ne peut être *donnée* (évènement, /pub-plus carte-pub give, panel owner) que pendant sa fenêtre : Noël du 1er nov. au 31 déc. ; Halloween du 1er oct. au 7 nov. ; Saint-Valentin du 25 janv. au 28 févr. ; Pâques du 15 mars au 30 avr. ; Nouvel An du 15 déc. au 15 janv. Passé ce délai, l'édition est refusée partout. Un serveur qui l'a gagnée la garde à vie. Retirer une carte reste toujours possible.
  • Commandes : la carte se choisit désormais par autocomplétion (/event-site demarrer, /pub-plus carte-pub give|retirer) : tape le nom d'un pays (français ou anglais), « drapeau », « édition » ou une année. Discord limite les listes de choix à 25, d'où ce changement. /pub-plus carte-site liste résume les drapeaux et éditions au lieu de tout lister.
  • Site : la page Évènements et l'outil « Cartes de pub » du dashboard ont des filtres (Toutes / Débloquées / Éditions limitées / Drapeaux / Autres), une recherche et « Afficher plus » (24 cartes à la fois). Une édition indique sa fenêtre (« Disponible jusqu'au… »). Le panel owner range les cartes par groupes.
  • Comment un serveur obtient ces cartes : comme avant, en gagnant un évènement (/event-site) ou par don du propriétaire. Rien n'est vendu avec les Atlas coins.
  • Annonces : la page Nouveautés lit l'API du bot en premier (le Gist ne sert plus que de secours si le bot est hors ligne), et l'onglet Annonces du panel owner affiche l'état de la diffusion vers le Gist.

#v2.62.0 Annonces publiées depuis le panel owner

  • Panel owner → onglet « Annonces » : publier, modifier et supprimer des annonces ou des nouveautés (4 types : Annonce, Nouveauté, Amélioration, Correctif ; titre 100 car., texte 4000 car., version facultative). Réservé aux propriétaires (les admins ne le voient pas). Suppression en deux clics. Les actions sont inscrites au journal du staff.
  • Site : nouvelle entrée de menu 📣 Annonces (#news/announce) et filtres (Tout / Nouveauté / Amélioration / Correctif / Annonce) sur la page Nouveautés. Les liens https:// écrits dans une annonce sont cliquables ; le reste du texte est échappé.
  • L'ancien onglet « Annonce » du panel s'appelle désormais « Bandeau » : c'est le message court affiché en haut du site (300 caractères, avec durée).
  • API : POST /api/staff/news (propriétaires) — {kind,title,body,version} pour publier, {action:'edit'|'delete',id,…} sinon. Lecture publique inchangée : GET /api/news.
  • Même stockage que /admin news : les deux se mélangent sans problème. Sur le site, la page publique lit le Gist (≈ 1 s après publication, nécessite GITHUB_TOKEN côté bot) ; sans Gist configuré dans js/config.js, elle lit l'API du bot.
  • Limite : une annonce est publiée sur le site seulement, elle n'est pas envoyée sur Discord (utilise /admin news avec un salon si tu veux aussi la poster dans un salon).

#v2.61.0 Onglet « Activité » du site (statistiques détaillées)

  • Site → ton serveur → 📈 Activité : période au choix (7, 14 ou 30 jours), comparaison avec la période précédente (▲/▼ en %), messages, vocal, membres actifs, arrivées, départs et solde, graphiques par jour (messages, membres actifs, arrivées, départs), messages par heure, carte des heures de pointe par jour de la semaine, top 10 des plus actifs, export CSV.
  • API : GET /api/guilds/:id/activity?days=7|14|30.
  • Historique : conservé 62 jours (au lieu de 40) pour comparer deux périodes de 30 jours. Au-delà de 40 jours, le détail par membre est supprimé (on garde les totaux et le nombre de membres actifs) : la base ne grossit donc presque pas.
  • Limites honnêtes : sur un serveur dont le suivi date de moins de 2 × la période, la comparaison est incomplète (un bandeau le dit) ; le nombre de membres actifs de la période précédente n'est pas disponible au-delà de 40 jours (affiché « pas de comparaison »). Les messages ne sont comptés qu'à partir de l'installation du suivi, et un message toutes les 4 secondes par membre au maximum (anti-spam).

#v2.60.0 Journal des modifications de config, FAQ avant ticket

  • Journal des modifications (site → ton serveur → Outils → 🕘 Historique) : qui a changé quoi, quand, et par où (site ou /config). Valeur avant → après, avec les noms de salons et de rôles. Bouton Annuler ce changement par ligne. - L'annulation refuse d'écraser une modification plus récente du même réglage (elle te le dit) ; les réglages security.* ne s'annulent que par le propriétaire du serveur ; une action qui touche plus de 25 réglages d'un coup est consultable mais pas annulable ; les URL de webhook, jetons et clés sont masqués et non annulables. - Conservation 90 jours, 300 entrées par serveur. Le journal ne suit que /config et le site : une commande slash qui modifie un réglage n'y apparaît pas.
  • FAQ avant ticket (/config → Tickets, ou le site) : active « FAQ avant d'ouvrir un ticket » et saisis des lignes question => réponse (25 max, \n = retour à la ligne). En cliquant sur le panneau, le membre voit un menu de questions ; il peut lire la réponse, cliquer ✅ Mon problème est résolu (aucun ticket) ou 🎫 Ouvrir un ticket quand même (questions du motif, puis création normale). Aucune IA : le membre choisit lui-même sa question. Les limites de tickets par membre s'appliquent toujours.

#v2.59.0 Page publique enrichie, évènements dans ton agenda

(/evenement avec inscription par boutons, rappel automatique et calendrier du site, ainsi que la page publique #serveur/<id> existaient déjà : cette version les complète.)

  • Règles sur la page publique (/config → Divers → Page publique) : un texte de 1500 caractères max, liens retirés automatiquement.
  • Prochains évènements sur la page publique (option, désactivée par défaut) : jusqu'à 6 évènements à venir, avec date, durée, description courte et nombre d'inscrits. Jamais de noms d'inscrits, de salon ni d'identifiant.
  • 📅 Ajouter à mon calendrier : fichier .ics (Google Agenda, Apple Calendrier, Outlook) depuis la page publique et depuis l'outil Évènements du dashboard.
  • 🔗 Partager : bouton de partage (menu de partage du téléphone, sinon lien copié).
  • Correctif : la présentation « pub seule » (sans page complète) n'affiche ni règles ni évènements.

#v2.58.0 Saisons d'économie et test à blanc de l'AutoMod

  • 🏆 Saisons (/config → Activité & quêtes) : un classement qui repart à zéro à chaque saison (7 à 90 jours), avec pièces pour le podium (réglables) et un minimum de points pour toucher une récompense. Les membres tapent /gains saison. - Points : 1 par message compté pour les niveaux (même délai anti-spam) + 1 par minute de vocal (≥ 2 personnes). Les bonus Atlas+ / boost ne comptent pas : tout le monde à armes égales. Demande le module Niveaux ; les pièces demandent le module Économie. - Sécurité : la saison est close et enregistrée avant le versement (jamais payée deux fois) ; si le module reste coupé plus de 7 jours après la fin, on repart à neuf sans payer une vieille saison. - Les quêtes du jour / de la semaine (messages, vocal) existaient déjà : /gains quetes.
  • 🧪 Test à blanc : /modo automod-test [règle] [jours] (permission « Gérer le serveur ») relit jusqu'à 7 jours de messages et montre, par règle, combien de messages et de membres auraient été touchés, avec des exemples et un verdict. Rien n'est supprimé ni sanctionné. - Règles rejouées : invitations, liens, liens piégés, majuscules, mentions, émojis, mots interdits, même si elles sont désactivées (avec leurs réglages actuels). Staff et rôles/salons ignorés sont exclus comme en vrai. - Non rejoués : spam et messages répétés (ils dépendent de la vitesse d'envoi en direct). - Limites : 2000 messages par salon, 20 000 au total, 120 s, un test à la fois, délai de 2 min entre deux tests. Le bot doit pouvoir lire l'historique des salons (sinon ils sont ignorés et signalés).

#v2.57.0 Notifications push (application installée)

  • Site → ⚙️ Paramètres → 🔔 Notifications : active les notifications sur l'appareil, choisis par serveur : 🚨 mode raid, 🎫 nouveau ticket, 🛰️ réseau de vigilance. Bouton de test inclus.
  • Installation de l'application : Android/PC (Chrome, Edge) → menu « Installer l'application ». iPhone/iPad (iOS 16.4+) → Safari, Partager, « Sur l'écran d'accueil », puis ouvre le site depuis l'icône (obligatoire pour les notifications sur iOS).
  • Sécurité et vie privée : réservé aux gestionnaires du serveur (Administrateur / Gérer le serveur), droit re-vérifié à chaque envoi ; texte minimal (type + nom du serveur, jamais de pseudo ni de message, car un écran verrouillé se lit) ; envoi uniquement vers de vrais services push (Google, Mozilla, Apple, Microsoft) ; 5 appareils maximum par compte ; anti-rafale (raid 1/min, ticket 8 s, vigilance 30 s par serveur).
  • Clés VAPID : générées automatiquement au premier lancement. Dépendance ajoutée : web-push → lance npm install après avoir remplacé les fichiers.
  • Limite connue : seuls les gestionnaires du serveur peuvent s'abonner (pas les simples modérateurs).

#v2.56.0 Bannissement automatique optionnel (réseau de vigilance)

  • /config → Arrivées : Bannissement automatique (réseau), désactivé par défaut, à activer serveur par serveur.
  • Ne compte que les signalements raid, arnaque, contenu illégal, venant d'au moins 3 serveurs différents (le minimum de 3 s'applique même si tu règles moins).
  • Jamais pour un bot, le propriétaire ou un administrateur ; si Atlas Bot n'a pas le droit de bannir, il envoie seulement l'alerte avec l'explication.
  • Le ban est annoncé dans le salon d'alertes avec un bouton Annuler (débannir) réservé à ceux qui ont « Bannir des membres ». Les serveurs à l'origine du signalement ne sont jamais nommés.
  • Un ban automatique ne devient pas un nouveau signalement (pas d'effet en chaîne). Un /unban classique retire toujours le signalement du serveur.
  • Le bot doit avoir la permission « Bannir des membres ».

#v2.55.0 Sauvegardes, journal d'erreurs, réseau de vigilance, site plus stable

  • Sauvegardes datées : un instantané de la base toutes les 6 h (28 conservés, les manuels sont gardés). Copie uniquement si la base est lisible (jamais d'écrasement par un fichier corrompu).
  • Restauration depuis le panel Owner, onglet Système : en deux étapes (confirmation), appliquée au prochain démarrage via le fichier RESTORE-AU-DEMARRAGE.txt, annulable avant.
  • Journal d'erreurs (data/errors.json, 100 entrées, répétitions comptées, jetons/webhooks/secrets masqués), visible dans l'onglet Système.
  • Réseau de vigilance (optionnel, alerte seulement) : /admin vigilance (signaler / retirer / vérifier) et page /config « Arrivées ». Rien n'est banni automatiquement : un staff est averti quand un membre signalé par au moins 2 serveurs différents rejoint. Seuls l'identifiant, la catégorie et la date sont stockés ; l'identité du serveur signalant n'est jamais révélée. Garde-fous : bot présent depuis 30 jours, 20 membres minimum, 20 signalements par jour et par serveur, retrait automatique au /unban, purge et blocage par le staff Atlas.
  • Site : texte français pré-rendu dans le HTML (décalage de mise en page à l'accueil mobile : 0,86 → 0,08 ; affichage principal 1,8 s → 0,6 s en CPU ralenti 4×), 0 violation axe (landmarks, titres, libellés de navigation).

#v2.54.0 Réseaux sociaux, parrainage, essai Atlas+

  • Réseaux sociaux (/config → 📡 Réseaux sociaux, et la même page dans le dashboard du site) : Atlas Bot publie dans un salon les nouvelles vidéos YouTube, les posts Bluesky, Reddit, Mastodon, les articles de n'importe quel flux RSS, et les lives Twitch. Un rôle peut être mentionné ; un salon séparé peut recevoir les lives. Le bouton « Vérifier les liens » teste chaque lien sans rien publier. Vérification toutes les 5 minutes ; l'existant n'est jamais republié ; 3 nouveautés maximum par lien et par passage ; un flux en panne déclenche un seul avertissement. - X (Twitter), Instagram, TikTok : ces réseaux n'ont pas d'API gratuite. Utilise un lien rss fourni par un pont RSS de ton choix. - Twitch : crée une application sur https://dev.twitch.tv/console et renseigne TWITCH_CLIENT_ID et TWITCH_CLIENT_SECRET dans le .env (voir .env.example). Sans eux, les lignes Twitch sont refusées avec un message clair. - Sécurité : aucune connexion vers un réseau privé, même via une redirection ; 1 Mo et 8 s maximum par lien.
  • Parrainage (/config → Divers) : le bot retrouve qui a invité chaque nouveau membre (compteurs d'utilisation des invitations), récompense l'inviteur en pièces du serveur, et /membre invitations montre les stats et le classement. Si l'attribution est ambiguë (deux arrivées au même instant), personne n'est crédité. Les comptes de moins de 3 jours comptent comme « suspects » et ne rapportent rien. Nécessite la permission « Gérer le serveur » pour le bot.
  • Essai Atlas+ : /premium essai donne 3 jours d'Atlas+, une seule fois par personne, aux comptes Discord de plus de 7 jours qui n'ont aucun grade.
  • /config : la page « Commandes » a rejoint « Général » (le menu Discord est limité à 25 pages).

#v2.53.0 100 commandes → 42 (60 places libres sur Discord) + badges de serveur donnables

  • Pourquoi : Discord limite un bot à 100 commandes slash et Atlas Bot les avait toutes utilisées. Les commandes peu utilisées sont maintenant regroupées en sous-commandes : /unban devient /modo unban. Il reste 58 places pour de nouvelles commandes.
  • Les commandes courantes ne changent pas : /ban /kick /timeout /warn /clear /rank /leaderboard /daily /work /balance /pay /ticket /giveaway /poll /help /ping /pub /bump /premium /config /embed /serveur…
  • Comment c'est fait : le code de chaque commande est inchangé. Les noms internes restent les mêmes (/config, le panneau web et /help marchent comme avant) ; seule la liste envoyée à Discord est regroupée. Les droits (ex. « Bannir des membres ») sont vérifiés à l'exécution pour chaque commande du groupe.
  • Tous les textes du bot et du site qui citent une commande ont été mis à jour (/modo unban, /gains peche…). /help affiche le chemin complet.
  • Panel Owner : donner / retirer un des 30 badges de serveur (trophées) à un serveur, en plus des cartes de pub et des badges de boutique (✅ = déjà possédé). Un badge retiré ne se rebloque pas tout seul.
GroupeAnciennes commandes
/jeux — Mini-jeux et divertissements/8ball → /jeux 8ball, /dice → /jeux dice, /choose → /jeux choose, /rps → /jeux rps, /ship → /jeux ship, /quiz → /jeux quiz, /coinflip → /jeux coinflip, /slots → /jeux slots
/gains — Gagner des pièces : pêche, mine, crime, vol, quêtes…/hebdo → /gains hebdo, /peche → /gains peche, /mine → /gains mine, /crime → /gains crime, /voler → /gains voler, /quetes → /gains quetes
/modo — Outils de modération (le reste : /ban /kick /timeout /warn /clear)/unban → /modo unban, /untimeout → /modo untimeout, /warnings → /modo warnings, /unwarn → /modo unwarn, /history → /modo history, /note → /modo note, /nick → /modo nick, /lock → /modo lock, /unlock → /modo unlock, /slowmode → /modo slowmode, /lockdown → /modo lockdown, /snipe → /modo snipe, /sticky → /modo sticky
/gestion — Rôles, quarantaine et gestion du vocal/role → /gestion role, /roletemp → /gestion roletemp, /quarantaine → /gestion quarantaine, /vocal → /gestion vocal, /mute-all → /gestion mute-all, /demute-all → /gestion demute-all
/membre — Anniversaires, rappels, AFK, vocaux privés, réputation, tags/birthday → /membre birthday, /remind → /membre remind, /afk → /membre afk, /voc → /membre voc, /rep → /membre rep, /tag → /membre tag, /report → /membre report
/outils — Réglages et petits outils du bot/ia-aide → /outils ia-aide, /bienvenue-fond → /outils bienvenue-fond, /bot-profil → /outils bot-profil, /avis-bot → /outils avis-bot, /support-lien → /outils support-lien, /conseils → /outils conseils, /sante → /outils sante, /statut-jeu → /outils statut-jeu
/pub-plus — Cartes, thèmes et gestion de l’annuaire Pub/pub-admin → /pub-plus pub-admin, /carte-site → /pub-plus carte-site, /themes-sites → /pub-plus themes-sites, /carte-pub → /pub-plus carte-pub
/communaute — Suggestions, sondages, candidatures, annonces, panneaux de rôles/suggest → /communaute suggest, /suggestion → /communaute suggestion, /sondage → /communaute sondage, /annonce → /communaute annonce, /rolepanel → /communaute rolepanel, /candidature → /communaute candidature
/info — Informations sur le serveur, le bot et l’activité/serverinfo → /info serverinfo, /botinfo → /info botinfo, /invite → /info invite, /activite → /info activite
/economie — Boutique, inventaire et administration de l’économie/shop → /economie shop, /inventory → /economie inventory, /eco → /economie eco
/admin — Administration : anti-raid, sécurité, temps, actualités/antiraid → /admin antiraid, /securite → /admin securite, /temps → /admin temps, /news → /admin news

#v2.52.0 Chaque catégorie est une page (site)

  • Menu latéral : 4 catégories (Découvrir, Mon serveur, Communauté, Boutiques), chacune ouvre sa page d'accueil #cat/<clé> avec des cartes vers ses pages.
  • Annuaire Pub : chaque catégorie a son URL #pub/<catégorie>, son titre d'onglet et un en-tête.
  • Dashboard : chaque catégorie et chaque outil a son URL #dashboard/<serveur>/<page> (outils : tool-<nom>), liens réels, bouton Précédent fonctionnel.
  • Panels Owner/Admin : chaque onglet a son URL #owner/<onglet> / #admin/<onglet>.
  • Titre d'onglet propre à chaque page. Le bot n'est pas modifié (seul le numéro de version change).

#v2.51.2 Diagnostic d'accès aux panels

  • Au démarrage, le bot affiche les propriétaires reconnus (OWNER_IDS, propriétaire de l'application). /api/staff/me renvoie un indice (not-listed / no-owner-ids) quand le compte n'est pas reconnu.
  • Site : page Compte → bloc « Panels staff » qui explique pourquoi les panels sont absents (ID à copier dans OWNER_IDS, session refusée 401, WEB_ORIGIN 403, bot injoignable). Un refus 401 sur la vérification du rôle ne déconnecte plus silencieusement.

#v2.51.0 Badges & trophées

  • 30 badges (8 communs, 10 rares, 8 épiques, 4 légendaires) débloqués automatiquement selon l'activité réelle du serveur : messages, vocal, modération, tickets, giveaways, sondages, niveaux, membres, ancienneté, pièces Atlas, cartes, évènements. Un badge débloqué est acquis définitivement ; « Titan d'Atlas » demande 20 autres badges.
  • Évaluation toutes les 15 min et à chaque consultation. Chaque serveur choisit jusqu'à 3 badges affichés sur sa fiche Annuaire (PUT /api/guilds/:id/trophies/pick) ; l'API publique /api/trophies donne le taux réel de serveurs qui ont chaque badge.
  • Site : section d'accueil « 30 badges à débloquer », page Badges (filtres par rareté, progression, choix des badges), médailles sur les cartes de pub. Le Gist de secours contient aussi le catalogue.
  • Correctif : cadre de la fenêtre Paramètres qui défilait avec le contenu (même correction pour les fenêtres du panel staff).

#v2.50.0 sécurité renforcée (API, panels owner/admin, site)

  • Origine des jetons vérifiée : l'API refuse désormais tout jeton Discord qui n'a pas été délivré à Atlas Bot (appel à /oauth2/@me) ou sans la portée identify. Avant, un jeton obtenu par n'importe quelle autre application Discord aurait été accepté. Variable optionnelle DISCORD_CLIENT_ID si l'identifiant de l'application n'est pas connu au démarrage.
  • API : IP fiable (en-têtes de proxy ignorés hors proxy de confiance), en-têtes de sécurité complets, blocage 15 min après 20 jetons refusés, JSON uniquement (415), clés __proto__ refusées, écritures refusées depuis une origine étrangère, méthodes/URL anormales refusées, délais anti-slowloris.
  • Panels : plafond horaire global sur les écritures staff (600/h) et plafonds par action sensible, recherche de profil limitée (30/min), alerte DM aux propriétaires (coins à tous, montant ≥ 100 000, grade illimité/> 1 an, équipe modifiée, nouveau réseau, accès refusés répétés).
  • Site : politique CSP sans unsafe-inline pour les scripts (empreintes SHA-256), plus aucun gestionnaire onclick inline, javascript: / data:text/html refusés dans tous les liens, liens de contexte de signalement limités à discord.com, anti-iframe, déconnexion automatique du panel staff après 30 min d'inactivité, fichiers _headers (Netlify / Cloudflare Pages) et .htaccess (Apache) avec les vrais en-têtes HTTP.

#v2.49.3 v2.49.3

  • Correctif : la fiche profil du panel (bannière Discord) plantait avec Invalid size provided: 600 ; taille ramenée à 512 (tailles valides : 16…4096 en puissances de 2).

#v2.49.2 Sons et bruitages supprimés du site

Les sons et bruitages des thèmes sont retirés : plus de bouton « Sons et bruitages », plus de volume, plus de moteur audio (themeaudio.js supprimé) ni de section « Sons » dans les Paramètres. Le réglage mémorisé atlas-audio est effacé du navigateur des visiteurs au chargement. Les animations des thèmes (décors, éclaboussures, profondeur) restent, avec leurs réglages.

#v2.49.1 Profil Discord dans les panels

À côté de chaque identifiant Discord des panels (équipe, « ajouté par », journal, grades), un bouton 👤 Profil ouvre une fenêtre : photo de profil, bannière, nom d'affichage, nom d'utilisateur, identifiant (avec bouton Copier), date de création du compte, badges Discord, rôle dans l'équipe (depuis quand, ajouté par qui), grade et serveurs possédés. Disponible pour les admins et les owners (GET /api/staff/user?id=). Seules des images https sont affichées.

#v2.49 Partenariats

  • Nouvelle page du site Partenariats (#partners) et un bandeau « Partenaires » en haut de la page Pub.
  • Panel owner → onglet Partenariats : ajouter, modifier, masquer/afficher, réordonner et supprimer des partenaires (30 max) : serveur Discord (invitation discord.gg/… ou discord.com/invite/… obligatoire), site web ou autre. Champs : nom, description (10–300), lien https://, emoji, image https:// facultative, étiquette (ex. « Officiel »).
  • Sécurité : seuls les liens https sont acceptés, une invitation Discord doit être une vraie invitation Discord, pas de doublons, texte toujours affiché comme du texte, liens en noopener noreferrer nofollow. Réservé aux owners ; chaque action est journalisée.
  • Les partenaires actifs sont servis par /api/partners, /api/ads et le Gist de secours ads.json.

#v2.48 Badges d'évènement et 7 cartes « jeux vidéo »

Badges d'évènement (ils ne s'achètent pas, on les gagne ; équipables avec /atlas-coins badge ou depuis la boutique Atlas) :

  • 🎟️ Participant : le serveur atteint l'objectif d'XP d'un évènement.
  • ⚡ Éclair : parmi les 3 premiers serveurs qualifiés d'un évènement.
  • 🏆 Vainqueur : tiré au sort à la fin d'un évènement (en plus de la carte).
  • 🎖️ Vétéran : qualifié à 3 évènements différents.

Le panel owner peut les donner ou retirer comme les autres badges. Ils s'affichent dans la boutique Atlas (section « Badges d'évènement ») et sur la page Évènements.

7 nouvelles cartes de pub (22 au total, à gagner pendant les évènements) : Monde de blocs, Station spatiale, Arcade rétro, Donjon, Course,

#v2.47 Panels owner/admin : Atlas coins et beaucoup de fonctions

Panel owner

  • Onglet Atlas coins : donner, retirer ou fixer le solde d'un serveur (par identifiant), cadeau à tous les serveurs (1 à 1000, double confirmation), stats (en circulation, gagnés, portefeuilles), 20 serveurs les plus riches, derniers mouvements.
  • Fiche serveur : fixer le solde, offrir ou retirer un boost XP ×2 ou une mise « à l'honneur » (1 à 720 h).
  • Onglet Annonce : bandeau affiché en haut du site pour tous (info / bonne nouvelle / attention, durée facultative, fermable par le visiteur). Servi par /api/announcement et par le Gist ads.json en secours.

Panels owner et admin

  • Onglet Pubs : toutes les pubs, filtre (visibles / masquées / cassées), recherche, masquage avec motif enregistré (ad.hidden = {by, reason, at}).
  • Onglet Recherche : un utilisateur Discord par identifiant (rôle d'équipe, grade, serveurs possédés).
  • Notes internes par serveur (30 max ; un admin ne supprime que les siennes).
  • Export CSV de la liste des serveurs, bouton Actualiser sur l'aperçu.
  • L'admin garde ses plafonds (200 coins par action, 1000 par jour) et ne voit pas les actions réservées aux owners.

Tout est journalisé dans le journal de l'équipe. Aucune nouvelle commande slash (le bot reste à 100/100).

#v2.46 Panels owner et admin

  • Site : #owner (panel owner) et #admin (panel admin), visibles dans la barre latérale seulement pour l'équipe. Les owners ont accès aux deux panels.
  • Équipe : propriétaires principaux (OWNER_IDS ou propriétaire de l'application Discord, non retirables depuis le site) ; owners et admins ajoutés/retirés par identifiant Discord depuis le panel owner. Les owners ajoutés n'obtiennent PAS les commandes Discord réservées au propriétaire (/premium, /event-site…), seulement le panel.
  • Panel admin : statistiques (serveurs, membres, ping, mémoire, pubs, grades, coins, thème, évènement, top 10), liste des serveurs (recherche, tri, pages), fiche serveur, masquer/réafficher une pub, ±coins (200 par action, 1000 par jour), journal réduit.
  • Panel owner : tout ce qui précède sans plafond + cartes de pub, badges, grades Atlas+/boosté (par ID Discord, durée ou permanent), thème du site (durée en jours), évènements (lancer, tirer au sort, annuler), gestion de l'équipe, journal complet.
  • Chaque action est revérifiée côté bot (/api/staff/*) et inscrite au journal (meta.staffLog, 200 dernières).
  • Sons : la musique des thèmes est supprimée ; il reste l'ambiance de fond et les bruitages (interrupteur unique + volume, désactivé par défaut).

#v2.45 Boutique Atlas, Atlas coins, sidebar, ambiance sonore

  • Atlas coins (monnaie des SERVEURS, src/atlasCoins.js, règles dans src/data/atlasShop.json) : - récompense quotidienne (10 + 2/jour de série jusqu'à 7 jours + jusqu'à 10 selon l'activité de la veille), réservée aux serveurs avec ≥ 20 messages sur 7 jours ; - +3 par bump (4 bumps récompensés par jour), +100 à la qualification d'un évènement (une fois par évènement).
  • Boutique (site #atlas-shop, dashboard « Atlas coins », /atlas-coins) : boost d'XP ×2 (24 h, cumulable 72 h, ne compte pas dans l'XP des évènements), bump instantané (1/jour), « À l'honneur » 24 h (5 places), badges à vie. Aucune carte de pub n'est vendue.
  • API : GET /api/atlas-shop, GET /api/guilds/<id>/coins, POST …/coins/claim|buy|badge (permission « Gérer le serveur », limitées).
  • Site : onglets remplacés par une barre latérale (réductible sur bureau, tiroir sur mobile) ; thèmes animés avec éclaboussure d'emojis au clic et profondeur à la souris ; ambiance et bruitages synthétisés par thème (WebAudio), désactivés par défaut (la musique a été retirée en v2.46).
  • Commandes : 100 (limite Discord atteinte).

#v2.44 `/carte-pub` : donner ou retirer une carte de pub

  • /carte-pub give carte:<carte> serveur:<ID> (propriétaire du bot) débloque une carte pour toujours sur un serveur où le bot est présent ; le serveur est prévenu dans son salon système (prevenir:false pour ne pas le prévenir).
  • /carte-pub retirer carte:<carte> serveur:<ID> retire la carte ; si elle était active, le serveur repasse sur « Classique » (qui ne se retire jamais).
  • Commandes : 100 (la limite de Discord : pour en ajouter, il faudra regrouper des commandes existantes).

#v2.43 Thèmes du site : `/themes-sites`

  • /themes-sites theme:<thème> (propriétaire du bot) change le thème du site pour tous les visiteurs : Atlas (défaut), Halloween, Noël, Saint-Valentin, Nouvel An, Pâques, Sakura, Été, Automne, Aurore boréale, Cyber, Galaxie, Lave, Océan, Or royal. Sans option : affiche le thème actuel.
  • jours:N : retour automatique au thème par défaut après N jours.
  • Chaque thème change la palette de tout le site et ajoute des décors exclusifs (citrouilles, fantômes et chauves-souris ; sapin, cadeaux, rennes, guirlande et neige ; cœurs et ballons ; œufs, tulipes et poussin ; poissons et bulles ; couronne et diamants…).
  • Le thème est publié avec la liste des pubs et dans GET /api/theme ; le site le revérifie toutes les 5 minutes et le mémorise pour s'afficher sans clignotement.
  • Aperçu sans rien changer pour les autres : ajouter ?theme=noel à l'adresse du site.
  • « Réduire les animations » (système) : les objets mobiles disparaissent, les décors fixes restent. Commandes : 98.

#v2.42 Évènements entièrement configurables

  • /event-site demarrer et /event-site modifier (évènement en cours) acceptent : nom, description (affichée sur le site), objectif, plafond par membre, jours (durée), gagnants, multiplicateur (XP ×2 à ×5), membres_min (taille minimale d'un serveur), auto (tirage automatique à la date de fin) et annonce (salon de l'annonce).
  • À la date de fin l'XP ne compte plus ; avec auto, le tirage se fait tout seul (félicitations dans les serveurs gagnants + annonce). Sans auto, un message prévient et tu lances /event-site tirer.
  • Baisser l'objectif qualifie tout de suite les serveurs qui l'ont dépassé ; le relever ne retire personne du tirage.
  • Le plafond par membre s'applique à l'XP après multiplicateur.
  • Cartes vivantes : l'activité du serveur (messages et membres actifs sur 7 jours, après 2 jours de suivi) règle l'intensité de la carte sur le site (vitesse et nombre de particules), avec une pastille Calme / Actif / Très actif / En feu, le nombre de membres actifs (arrondi) et la croissance.
  • Site : description, multiplicateur et date de fin affichés (page Évènements, bandeau, dashboard) ; cartes de pub plus réactives (lueur qui suit la souris).

#v2.41 Évènements de serveurs et cartes de pub animées

  • /event-site demarrer (propriétaire/Administrateur) : lance un évènement. Chaque serveur doit gagner 500 XP au total (objectif réglable) pour débloquer le tirage au sort. Tu choisis la carte de pub à gagner parmi 15.
  • /event-site statut, /event-site tirer (1 à 10 gagnants, tirage cryptographique, gagnants prévenus dans leur salon système), /event-site arreter.
  • Règles : l'XP compte seulement si le module Niveaux est actif ; plafond de 100 XP par membre (anti-triche, réglable, 0 = aucun) ; les cartes gagnées sont définitives.
  • /carte-site modifier|liste|evenement (Gérer le serveur) : changer sa carte de pub. Une seule carte active à la fois, et seulement parmi les cartes débloquées (aussi possible depuis le site : dashboard → Cartes de pub).
  • La carte s'affiche sur l'annuaire du site ; il faut une pub publiée (/pub set). Nouvelle page Évènements sur le site (progression, serveurs en tête, gagnants, collection).
  • Après mise à jour : redéployer les commandes (97 au total).

#v2.40 Salons vocaux temporaires : panneau de contrôle

Le fonctionnement : un membre rejoint le « salon créateur » → le bot crée un salon à son nom, l'y déplace et poste un panneau dans ce salon (le chat du vocal). Dès que le dernier membre part, le salon est supprimé (et nettoyé au redémarrage du bot).

Le panneau (propriétaire du salon, ou membre avec « Gérer les salons ») :

Bouton / menuEffet
✏️ Nomrenomme (Discord limite à 2 changements toutes les 10 min : le bot l'explique au lieu de bloquer)
👥 Placeslimite de 1 à 99, 0 = illimité
🔒 Verrouiller / 🔓personne de nouveau ne peut entrer ; le propriétaire garde l'accès
🙈 Masquer / 👁️le salon disparaît de la liste pour les autres ; les présents le gardent
🚪 Expulser · ⛔ Bannir · ✅ Autorisermenu de membres (jusqu'à 10 à la fois) ; propriétaire et modérateurs protégés
👑 Transférerdonne la propriété à un membre présent
🙋 Réclamerun membre présent prend le salon si le propriétaire est parti
🎚️ Qualité audio32 à 384 kbps selon le niveau de boost du serveur
♻️ Réinitialiserrétablit nom, places, qualité et les permissions de la catégorie
🗑️ Supprimeravec confirmation

/voc panneau renvoie le panneau (s'il a été supprimé ou n'a pas pu s'afficher). Les anciennes sous-commandes /voc nom|limite|verrouiller|deverrouiller|expulser|transferer marchent toujours.

Si la création échoue, le membre reçoit un message privé qui dit quoi réparer (« Gérer les salons », « Déplacer des membres », « Se connecter », catégorie pleine…). Il faut aussi que le bot puisse écrire dans le chat du salon vocal (permission « Envoyer des messages » sur la catégorie).

⚠️ Le lien d'invitation contient maintenant « Se connecter » : sur un serveur où le bot est déjà installé, accorde-lui cette permission à la main.

#v2.39 `/avis-bot` : les avis des utilisateurs arrivent sur ton serveur officiel

Pour les utilisateurs — /avis-bot avis:<ton avis> [note:1 à 5]. L'avis est publié dans le salon que tu as choisi, avec le pseudo de l'auteur, le nom de son serveur, sa note en étoiles et son ID.

Pour toi (propriétaire du bot) — règle le salon depuis le serveur officiel :

CommandeEffet
/serveur avis-salon salon:#avischoisit le salon des avis (le bot vérifie qu'il peut y écrire)
/serveur avis-salonaffiche le salon actuel et s'il est prêt
/serveur avis-salon retirer:Ouidésactive /avis-bot

Autre possibilité : AVIS_CHANNEL_ID=<id du salon> dans le .env (le réglage fait avec la commande passe avant). Aucune commande de plus n'est consommée sur les 100 de Discord : le réglage est dans /serveur (95 commandes au total).

Garde-fous : 10 à 1000 caractères · aucun lien (ni lien d'invitation, ni lien masqué [texte](url)) · aucune mention ne notifie qui que ce soit · un avis toutes les 12 h par personne · si le salon est supprimé ou inaccessible, l'utilisateur reçoit un message clair et son délai n'est pas consommé.

#v2.19 création de serveur par IA moins répétitive

Voir la section /serveur creer-ia ci-dessus (options style / taille, boutons « Autre proposition » et « Modifier »).

Documentation générée à partir d'Atlas Bot v2.69.0 : 106 commandes, 25 pages de réglages. Une erreur ? Dis-le sur le serveur de support.

Tape au moins 2 lettres. Entrée pour ouvrir, flèches pour naviguer, Échap pour fermer.