From ce0a37b7e1c98c1861d2b80102bb7e00c7bc823d Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Fri, 10 Apr 2026 09:09:09 +0200 Subject: [PATCH] Remove summary fields from command specifications in various files for consistency and clarity. --- src/commands/administration/alladmins.rs | 1 - src/commands/administration/allbots.rs | 1 - src/commands/administration/bl.rs | 1 - src/commands/administration/blinfo.rs | 1 - src/commands/administration/botadmins.rs | 1 - src/commands/administration/clear_bl.rs | 1 - src/commands/administration/clear_owners.rs | 1 - src/commands/administration/discussion.rs | 1 - src/commands/administration/invite.rs | 1 - src/commands/administration/leave.rs | 1 - src/commands/administration/mainprefix.rs | 1 - src/commands/administration/mp.rs | 1 - src/commands/administration/owner.rs | 1 - src/commands/administration/prefix.rs | 1 - src/commands/administration/unbl.rs | 1 - src/commands/administration/unowner.rs | 1 - src/commands/bot/change.rs | 1 - src/commands/bot/changeall.rs | 1 - src/commands/bot/compet.rs | 1 - src/commands/bot/dnd.rs | 1 - src/commands/bot/idle.rs | 1 - src/commands/bot/invisible.rs | 1 - src/commands/bot/listen.rs | 1 - src/commands/bot/online.rs | 1 - src/commands/bot/playto.rs | 1 - src/commands/bot/remove_activity.rs | 1 - src/commands/bot/set.rs | 1 - src/commands/bot/shadowbot.rs | 1 - src/commands/bot/stream.rs | 1 - src/commands/bot/theme.rs | 1 - src/commands/bot/watch.rs | 1 - src/commands/command_contract.rs | 1 - src/commands/infos/banner.rs | 1 - src/commands/infos/boosters.rs | 1 - src/commands/infos/channel.rs | 1 - src/commands/infos/member.rs | 1 - src/commands/infos/pic.rs | 1 - src/commands/infos/ping.rs | 1 - src/commands/infos/role.rs | 1 - src/commands/infos/rolemembers.rs | 1 - src/commands/infos/server.rs | 1 - src/commands/infos/serverinfo.rs | 1 - src/commands/infos/showpics.rs | 1 - src/commands/infos/user.rs | 1 - src/commands/infos/vocinfo.rs | 1 - src/commands/logs/autoconfiglog.rs | 1 - src/commands/logs/boostembed.rs | 1 - src/commands/logs/boostlog.rs | 1 - src/commands/logs/join.rs | 1 - src/commands/logs/leave_settings.rs | 1 - src/commands/logs/messagelog.rs | 1 - src/commands/logs/modlog.rs | 1 - src/commands/logs/nolog.rs | 1 - src/commands/logs/raidlog.rs | 1 - src/commands/logs/rolelog.rs | 1 - src/commands/logs/set_boostembed.rs | 1 - src/commands/logs/set_modlogs.rs | 1 - src/commands/logs/viewlogs.rs | 1 - src/commands/logs/voicelog.rs | 1 - src/commands/moderation/ban.rs | 1 - src/commands/moderation/banlist.rs | 1 - src/commands/moderation/cleanup.rs | 1 - .../moderation/clear_all_sanctions.rs | 1 - src/commands/moderation/clear_messages.rs | 1 - src/commands/moderation/clear_sanctions.rs | 1 - src/commands/moderation/cmute.rs | 1 - src/commands/moderation/del_sanction.rs | 1 - src/commands/moderation/kick.rs | 1 - src/commands/moderation/mute.rs | 1 - src/commands/moderation/mutelist.rs | 1 - src/commands/moderation/renew.rs | 1 - src/commands/moderation/sanctions.rs | 1 - src/commands/moderation/tempban.rs | 1 - src/commands/moderation/tempcmute.rs | 1 - src/commands/moderation/tempmute.rs | 1 - src/commands/moderation/unban.rs | 1 - src/commands/moderation/unbanall.rs | 1 - src/commands/moderation/uncmute.rs | 1 - src/commands/moderation/unmute.rs | 1 - src/commands/moderation/unmuteall.rs | 1 - src/commands/moderation/warn.rs | 1 - src/commands/outils/autobackup.rs | 1 - src/commands/outils/autopublish.rs | 1 - src/commands/outils/autoreact.rs | 1 - src/commands/outils/backup.rs | 1 - src/commands/outils/button.rs | 1 - src/commands/outils/calc.rs | 1 - src/commands/outils/choose.rs | 1 - src/commands/outils/claim.rs | 1 - src/commands/outils/close.rs | 1 - src/commands/outils/create.rs | 1 - src/commands/outils/embed.rs | 1 - src/commands/outils/emoji.rs | 1 - src/commands/outils/end.rs | 1 - src/commands/outils/giveaway.rs | 1 - src/commands/outils/loading.rs | 1 - src/commands/outils/newsticker.rs | 1 - src/commands/outils/rename.rs | 1 - src/commands/outils/reroll.rs | 1 - src/commands/outils/say.rs | 1 - src/commands/outils/snipe.rs | 1 - src/commands/outils/suggestion.rs | 1 - src/commands/outils/ticket.rs | 1 - src/commands/outils/ticket_member.rs | 1 - src/commands/outils/tickets.rs | 1 - src/commands/permissions/alias.rs | 1 - src/commands/permissions/allperms.rs | 1 - src/commands/permissions/clear_perms.rs | 1 - src/commands/permissions/del.rs | 1 - src/commands/permissions/help.rs | 215 ++++++++++++++---- src/commands/permissions/helpalias.rs | 1 - src/commands/permissions/helpsetting.rs | 1 - src/commands/permissions/helptype.rs | 1 - src/commands/permissions/perms.rs | 1 - src/commands/roles/addrole.rs | 1 - src/commands/roles/delrole.rs | 1 - src/commands/roles/derank.rs | 1 - src/commands/roles/massiverole.rs | 1 - src/commands/roles/rolemenu.rs | 1 - src/commands/roles/sync.rs | 1 - src/commands/roles/temprole.rs | 1 - src/commands/roles/unmassiverole.rs | 1 - src/commands/roles/untemprole.rs | 1 - src/commands/salons_vocal/bringall.rs | 1 - src/commands/salons_vocal/hide.rs | 1 - src/commands/salons_vocal/hideall.rs | 1 - src/commands/salons_vocal/lock.rs | 1 - src/commands/salons_vocal/lockall.rs | 1 - src/commands/salons_vocal/slowmode.rs | 1 - src/commands/salons_vocal/tempvoc.rs | 1 - src/commands/salons_vocal/tempvoc_cmd.rs | 1 - src/commands/salons_vocal/unhide.rs | 1 - src/commands/salons_vocal/unhideall.rs | 1 - src/commands/salons_vocal/unlock.rs | 1 - src/commands/salons_vocal/unlockall.rs | 1 - src/commands/salons_vocal/voicekick.rs | 1 - src/commands/salons_vocal/voicemove.rs | 1 - 137 files changed, 170 insertions(+), 181 deletions(-) diff --git a/src/commands/administration/alladmins.rs b/src/commands/administration/alladmins.rs index b3c8924..638c98c 100644 --- a/src/commands/administration/alladmins.rs +++ b/src/commands/administration/alladmins.rs @@ -139,7 +139,6 @@ impl crate::commands::command_contract::CommandSpec for AlladminsCommand { name: "alladmins", category: "administration", params: "aucun", - summary: "Liste les administrateurs du serveur", description: "Affiche les membres qui possedent des droits administrateur sur le serveur.", examples: &["+alladmins", "+as", "+help alladmins"], default_aliases: &["aad"], diff --git a/src/commands/administration/allbots.rs b/src/commands/administration/allbots.rs index 755ad9f..c5a0f06 100644 --- a/src/commands/administration/allbots.rs +++ b/src/commands/administration/allbots.rs @@ -122,7 +122,6 @@ impl crate::commands::command_contract::CommandSpec for AllbotsCommand { name: "allbots", category: "administration", params: "aucun", - summary: "Liste tous les bots du serveur", description: "Affiche la liste des membres bots presents sur le serveur courant.", examples: &["+allbots", "+as", "+help allbots"], default_aliases: &["abt"], diff --git a/src/commands/administration/bl.rs b/src/commands/administration/bl.rs index ddb66b5..e03ebb4 100644 --- a/src/commands/administration/bl.rs +++ b/src/commands/administration/bl.rs @@ -81,7 +81,6 @@ impl crate::commands::command_contract::CommandSpec for BlCommand { name: "bl", category: "administration", params: "[<@membre/ID> [raison...]]", - summary: "Gere la blacklist globale", description: "Affiche la blacklist ou ajoute un utilisateur a la blacklist globale du bot.", examples: &["+bl", "+help bl"], default_aliases: &["bls"], diff --git a/src/commands/administration/blinfo.rs b/src/commands/administration/blinfo.rs index d8f7ab0..ff75ecb 100644 --- a/src/commands/administration/blinfo.rs +++ b/src/commands/administration/blinfo.rs @@ -86,7 +86,6 @@ impl crate::commands::command_contract::CommandSpec for BlinfoCommand { name: "blinfo", category: "administration", params: "<@membre/ID>", - summary: "Affiche les details blacklist", description: "Affiche les details de blacklist pour un utilisateur donne.", examples: &["+blinfo", "+bo", "+help blinfo"], default_aliases: &["bli"], diff --git a/src/commands/administration/botadmins.rs b/src/commands/administration/botadmins.rs index bf53f81..61e8a3a 100644 --- a/src/commands/administration/botadmins.rs +++ b/src/commands/administration/botadmins.rs @@ -138,7 +138,6 @@ impl crate::commands::command_contract::CommandSpec for BotadminsCommand { name: "botadmins", category: "administration", params: "aucun", - summary: "Liste les admins du bot", description: "Affiche les utilisateurs ayant des droits admin sur le bot.", examples: &["+botadmins", "+bs", "+help botadmins"], default_aliases: &["bad"], diff --git a/src/commands/administration/clear_bl.rs b/src/commands/administration/clear_bl.rs index 1559f1b..4347d91 100644 --- a/src/commands/administration/clear_bl.rs +++ b/src/commands/administration/clear_bl.rs @@ -42,7 +42,6 @@ impl crate::commands::command_contract::CommandSpec for ClearBlCommand { name: "clear_bl", category: "administration", params: "aucun", - summary: "Vide la blacklist globale", description: "Supprime toutes les entrees de la blacklist globale.", examples: &["+clear bl", "+cl", "+help clear bl"], default_aliases: &["cbl"], diff --git a/src/commands/administration/clear_owners.rs b/src/commands/administration/clear_owners.rs index e1a9630..eb2d2bb 100644 --- a/src/commands/administration/clear_owners.rs +++ b/src/commands/administration/clear_owners.rs @@ -42,7 +42,6 @@ impl crate::commands::command_contract::CommandSpec for ClearOwnersCommand { name: "clear_owners", category: "administration", params: "aucun", - summary: "Vide la liste des owners", description: "Supprime tous les owners supplementaires en base de donnees.", examples: &["+clear owners", "+cs", "+help clear owners"], default_aliases: &["cro"], diff --git a/src/commands/administration/discussion.rs b/src/commands/administration/discussion.rs index 0075990..05ab2b2 100644 --- a/src/commands/administration/discussion.rs +++ b/src/commands/administration/discussion.rs @@ -66,7 +66,6 @@ impl crate::commands::command_contract::CommandSpec for DiscussionCommand { name: "discussion", category: "administration", params: " ", - summary: "Diffuse un message serveur", description: "Envoie un message de discussion sur un serveur cible.", examples: &["+discussion", "+dn", "+help discussion"], default_aliases: &["dsc"], diff --git a/src/commands/administration/invite.rs b/src/commands/administration/invite.rs index 3ed3fc8..8d2a29f 100644 --- a/src/commands/administration/invite.rs +++ b/src/commands/administration/invite.rs @@ -73,7 +73,6 @@ impl crate::commands::command_contract::CommandSpec for InviteCommand { name: "invite", category: "administration", params: "", - summary: "Cree une invitation serveur", description: "Cree une invitation temporaire sur un serveur cible accessible par le bot.", examples: &["+invite", "+ie", "+help invite"], default_aliases: &["ivt"], diff --git a/src/commands/administration/leave.rs b/src/commands/administration/leave.rs index 05339f8..6cf4a4f 100644 --- a/src/commands/administration/leave.rs +++ b/src/commands/administration/leave.rs @@ -37,7 +37,6 @@ impl crate::commands::command_contract::CommandSpec for LeaveCommand { name: "leave", category: "administration", params: "[ID_serveur/index]", - summary: "Fait quitter un serveur", description: "Force le bot a quitter un serveur cible ou le serveur courant.", examples: &["+leave", "+le", "+help leave"], default_aliases: &["lvg"], diff --git a/src/commands/administration/mainprefix.rs b/src/commands/administration/mainprefix.rs index 19d3ebe..fecd77f 100644 --- a/src/commands/administration/mainprefix.rs +++ b/src/commands/administration/mainprefix.rs @@ -51,7 +51,6 @@ impl crate::commands::command_contract::CommandSpec for MainprefixCommand { name: "mainprefix", category: "administration", params: "", - summary: "Change le prefixe global", description: "Definit le prefixe principal utilise par le bot sur tous les serveurs.", examples: &["+mainprefix", "+mx", "+help mainprefix"], default_aliases: &["mpx"], diff --git a/src/commands/administration/mp.rs b/src/commands/administration/mp.rs index a0897f3..453d64e 100644 --- a/src/commands/administration/mp.rs +++ b/src/commands/administration/mp.rs @@ -463,7 +463,6 @@ impl crate::commands::command_contract::CommandSpec for MpCommand { name: "mp", category: "administration", params: "settings [on|off] | sent [page] | delete | <@membre/ID> ", - summary: "Gere lenvoi de messages prives", description: "Permet de configurer, envoyer, lister et supprimer des messages prives envoyes.", examples: &["+mp", "+help mp"], default_aliases: &["dmsg"], diff --git a/src/commands/administration/owner.rs b/src/commands/administration/owner.rs index 0de360d..4485423 100644 --- a/src/commands/administration/owner.rs +++ b/src/commands/administration/owner.rs @@ -48,7 +48,6 @@ impl crate::commands::command_contract::CommandSpec for OwnerCommand { name: "owner", category: "administration", params: "aucun", - summary: "Liste les owners du bot", description: "Affiche l owner application et les owners ajoutes en base.", examples: &["+owner", "+or", "+help owner"], default_aliases: &["own"], diff --git a/src/commands/administration/prefix.rs b/src/commands/administration/prefix.rs index cd8e5ac..563023f 100644 --- a/src/commands/administration/prefix.rs +++ b/src/commands/administration/prefix.rs @@ -60,7 +60,6 @@ impl crate::commands::command_contract::CommandSpec for PrefixCommand { name: "prefix", category: "administration", params: "", - summary: "Change le prefixe serveur", description: "Definit le prefixe du serveur courant.", examples: &["+prefix", "+px", "+help prefix"], default_aliases: &["pfx"], diff --git a/src/commands/administration/unbl.rs b/src/commands/administration/unbl.rs index b8404d2..21599bd 100644 --- a/src/commands/administration/unbl.rs +++ b/src/commands/administration/unbl.rs @@ -68,7 +68,6 @@ impl crate::commands::command_contract::CommandSpec for UnblCommand { name: "unbl", category: "administration", params: "<@membre/ID>", - summary: "Retire un utilisateur blacklist", description: "Retire un utilisateur de la blacklist globale du bot.", examples: &["+unbl", "+ul", "+help unbl"], default_aliases: &["unb"], diff --git a/src/commands/administration/unowner.rs b/src/commands/administration/unowner.rs index 5313442..0e3b728 100644 --- a/src/commands/administration/unowner.rs +++ b/src/commands/administration/unowner.rs @@ -77,7 +77,6 @@ impl crate::commands::command_contract::CommandSpec for UnownerCommand { name: "unowner", category: "administration", params: "<@membre/ID>", - summary: "Retire un owner du bot", description: "Retire un utilisateur de la liste des owners supplementaires du bot.", examples: &["+unowner", "+ur", "+help unowner"], default_aliases: &["uow"], diff --git a/src/commands/bot/change.rs b/src/commands/bot/change.rs index 946c5b9..cb6045a 100644 --- a/src/commands/bot/change.rs +++ b/src/commands/bot/change.rs @@ -80,7 +80,6 @@ impl crate::commands::command_contract::CommandSpec for ChangeCommand { name: "change", category: "bot", params: " | reset", - summary: "Change un niveau de permission", description: "Definit le niveau ACL requis pour une commande ou reinitialise les overrides.", examples: &["+change", "+ce", "+help change"], default_aliases: &["chg"], diff --git a/src/commands/bot/changeall.rs b/src/commands/bot/changeall.rs index 57251b0..74cbb4b 100644 --- a/src/commands/bot/changeall.rs +++ b/src/commands/bot/changeall.rs @@ -83,7 +83,6 @@ impl crate::commands::command_contract::CommandSpec for ChangeallCommand { name: "changeall", category: "bot", params: " ", - summary: "Change des permissions en masse", description: "Remplace en masse un niveau ACL source par un niveau ACL cible.", examples: &["+changeall", "+cl", "+help changeall"], default_aliases: &["cga"], diff --git a/src/commands/bot/compet.rs b/src/commands/bot/compet.rs index 9c13132..a18b301 100644 --- a/src/commands/bot/compet.rs +++ b/src/commands/bot/compet.rs @@ -90,7 +90,6 @@ impl crate::commands::command_contract::CommandSpec for CompetCommand { name: "compet", category: "bot", params: "", - summary: "Definit une activite competing", description: "Configure la rotation des messages d activite en mode competing.", examples: &["+compet", "+ct", "+help compet"], default_aliases: &["cpt"], diff --git a/src/commands/bot/dnd.rs b/src/commands/bot/dnd.rs index ff3cfe3..e32f536 100644 --- a/src/commands/bot/dnd.rs +++ b/src/commands/bot/dnd.rs @@ -34,7 +34,6 @@ impl crate::commands::command_contract::CommandSpec for DndCommand { name: "dnd", category: "bot", params: "aucun", - summary: "Passe le bot en dnd", description: "Change le statut du bot en do not disturb et sauvegarde ce statut.", examples: &["+dnd", "+dd", "+help dnd"], default_aliases: &["dnm"], diff --git a/src/commands/bot/idle.rs b/src/commands/bot/idle.rs index 6241af8..ac1cd3a 100644 --- a/src/commands/bot/idle.rs +++ b/src/commands/bot/idle.rs @@ -34,7 +34,6 @@ impl crate::commands::command_contract::CommandSpec for IdleCommand { name: "idle", category: "bot", params: "aucun", - summary: "Passe le bot en idle", description: "Change le statut du bot en idle et sauvegarde ce statut.", examples: &["+idle", "+ie", "+help idle"], default_aliases: &["idl"], diff --git a/src/commands/bot/invisible.rs b/src/commands/bot/invisible.rs index 1ff9a05..5d31896 100644 --- a/src/commands/bot/invisible.rs +++ b/src/commands/bot/invisible.rs @@ -34,7 +34,6 @@ impl crate::commands::command_contract::CommandSpec for InvisibleCommand { name: "invisible", category: "bot", params: "aucun", - summary: "Passe le bot en invisible", description: "Change le statut du bot en invisible et sauvegarde ce statut.", examples: &["+invisible", "+ie", "+help invisible"], default_aliases: &["ivs"], diff --git a/src/commands/bot/listen.rs b/src/commands/bot/listen.rs index 1321c5d..ae53bab 100644 --- a/src/commands/bot/listen.rs +++ b/src/commands/bot/listen.rs @@ -90,7 +90,6 @@ impl crate::commands::command_contract::CommandSpec for ListenCommand { name: "listen", category: "bot", params: "", - summary: "Definit une activite listening", description: "Configure la rotation des messages d activite en mode listening.", examples: &["+listen", "+ln", "+help listen"], default_aliases: &["lsn"], diff --git a/src/commands/bot/online.rs b/src/commands/bot/online.rs index 75dd66d..fa5404d 100644 --- a/src/commands/bot/online.rs +++ b/src/commands/bot/online.rs @@ -34,7 +34,6 @@ impl crate::commands::command_contract::CommandSpec for OnlineCommand { name: "online", category: "bot", params: "aucun", - summary: "Passe le bot en online", description: "Change le statut du bot en online et sauvegarde ce statut.", examples: &["+online", "+oe", "+help online"], default_aliases: &["onl"], diff --git a/src/commands/bot/playto.rs b/src/commands/bot/playto.rs index 717c1e8..4e0be60 100644 --- a/src/commands/bot/playto.rs +++ b/src/commands/bot/playto.rs @@ -90,7 +90,6 @@ impl crate::commands::command_contract::CommandSpec for PlaytoCommand { name: "playto", category: "bot", params: "", - summary: "Definit une activite playing", description: "Configure la rotation des messages d activite en mode playing.", examples: &["+playto", "+po", "+help playto"], default_aliases: &["ply"], diff --git a/src/commands/bot/remove_activity.rs b/src/commands/bot/remove_activity.rs index f716f07..5f5b7cc 100644 --- a/src/commands/bot/remove_activity.rs +++ b/src/commands/bot/remove_activity.rs @@ -37,7 +37,6 @@ impl crate::commands::command_contract::CommandSpec for RemoveActivityCommand { name: "remove_activity", category: "bot", params: "aucun", - summary: "Supprime lactivite du bot", description: "Arrete la rotation d activite et retire lactivite courante du bot.", examples: &["+remove activity", "+ry", "+help remove activity"], default_aliases: &["rma"], diff --git a/src/commands/bot/set.rs b/src/commands/bot/set.rs index 2368a0b..a9f3eb7 100644 --- a/src/commands/bot/set.rs +++ b/src/commands/bot/set.rs @@ -324,7 +324,6 @@ impl crate::commands::command_contract::CommandSpec for SetCommand { name: "set", category: "bot", params: "name | pic | banner | profil ;; ;; | perm ...", - summary: "Configure le profil du bot", description: "Modifie le nom, lavatar, la banniere ou des options avancees via les sous commandes.", examples: &["+set", "+st", "+help set"], default_aliases: &["cfg"], diff --git a/src/commands/bot/shadowbot.rs b/src/commands/bot/shadowbot.rs index f79a7d4..49294a5 100644 --- a/src/commands/bot/shadowbot.rs +++ b/src/commands/bot/shadowbot.rs @@ -25,7 +25,6 @@ impl crate::commands::command_contract::CommandSpec for ShadowbotCommand { name: "shadowbot", category: "bot", params: "aucun", - summary: "Affiche les infos du bot", description: "Affiche les informations globales et letat du bot.", examples: &["+shadowbot", "+st", "+help shadowbot"], default_aliases: &["sbt"], diff --git a/src/commands/bot/stream.rs b/src/commands/bot/stream.rs index 3fe692c..2493ffe 100644 --- a/src/commands/bot/stream.rs +++ b/src/commands/bot/stream.rs @@ -90,7 +90,6 @@ impl crate::commands::command_contract::CommandSpec for StreamCommand { name: "stream", category: "bot", params: "", - summary: "Definit une activite streaming", description: "Configure la rotation des messages d activite en mode streaming.", examples: &["+stream", "+sm", "+help stream"], default_aliases: &["stm"], diff --git a/src/commands/bot/theme.rs b/src/commands/bot/theme.rs index fda1ed0..c6a8b3a 100644 --- a/src/commands/bot/theme.rs +++ b/src/commands/bot/theme.rs @@ -53,7 +53,6 @@ impl crate::commands::command_contract::CommandSpec for ThemeCommand { name: "theme", category: "bot", params: "", - summary: "Definit la couleur du theme", description: "Met a jour la couleur principale des embeds du bot.", examples: &["+theme", "+te", "+help theme"], default_aliases: &["thm"], diff --git a/src/commands/bot/watch.rs b/src/commands/bot/watch.rs index 766ab0d..726b89e 100644 --- a/src/commands/bot/watch.rs +++ b/src/commands/bot/watch.rs @@ -90,7 +90,6 @@ impl crate::commands::command_contract::CommandSpec for WatchCommand { name: "watch", category: "bot", params: "", - summary: "Definit une activite watching", description: "Configure la rotation des messages d activite en mode watching.", examples: &["+watch", "+wh", "+help watch"], default_aliases: &["wtc"], diff --git a/src/commands/command_contract.rs b/src/commands/command_contract.rs index e74b345..a6b0d2c 100644 --- a/src/commands/command_contract.rs +++ b/src/commands/command_contract.rs @@ -5,7 +5,6 @@ pub struct CommandMetadata { pub allow_in_dm: bool, pub default_permission: u8, pub params: &'static str, - pub summary: &'static str, pub description: &'static str, pub examples: &'static [&'static str], pub default_aliases: &'static [&'static str], diff --git a/src/commands/infos/banner.rs b/src/commands/infos/banner.rs index b82ec6f..2452dae 100644 --- a/src/commands/infos/banner.rs +++ b/src/commands/infos/banner.rs @@ -67,7 +67,6 @@ impl crate::commands::command_contract::CommandSpec for BannerCommand { name: "banner", category: "infos", params: "<@membre/ID>", - summary: "Affiche la banniere utilisateur", description: "Affiche la banniere de profil dun utilisateur cible ou de lauteur.", examples: &["+banner", "+br", "+help banner"], default_aliases: &["bnr"], diff --git a/src/commands/infos/boosters.rs b/src/commands/infos/boosters.rs index e4faad5..4b33649 100644 --- a/src/commands/infos/boosters.rs +++ b/src/commands/infos/boosters.rs @@ -134,7 +134,6 @@ impl crate::commands::command_contract::CommandSpec for BoostersCommand { name: "boosters", category: "infos", params: "aucun", - summary: "Liste les boosters du serveur", description: "Affiche les membres qui boostent actuellement le serveur.", examples: &["+boosters", "+bs", "+help boosters"], default_aliases: &["bst"], diff --git a/src/commands/infos/channel.rs b/src/commands/infos/channel.rs index 51ceee9..f7c80d2 100644 --- a/src/commands/infos/channel.rs +++ b/src/commands/infos/channel.rs @@ -101,7 +101,6 @@ impl crate::commands::command_contract::CommandSpec for ChannelCommand { name: "channel", category: "infos", params: "<#salon/ID>", - summary: "Affiche les details dun salon", description: "Affiche les informations utiles dun salon texte ou vocal cible.", examples: &["+channel", "+cl", "+help channel"], default_aliases: &["chl"], diff --git a/src/commands/infos/member.rs b/src/commands/infos/member.rs index 051318f..52d60b0 100644 --- a/src/commands/infos/member.rs +++ b/src/commands/infos/member.rs @@ -80,7 +80,6 @@ impl crate::commands::command_contract::CommandSpec for MemberCommand { name: "member", category: "infos", params: "<@membre/ID>", - summary: "Affiche le profil membre", description: "Affiche les informations dun membre dans le serveur courant.", examples: &["+member", "+mr", "+help member"], default_aliases: &["mbr"], diff --git a/src/commands/infos/pic.rs b/src/commands/infos/pic.rs index 8364c7f..d8bd062 100644 --- a/src/commands/infos/pic.rs +++ b/src/commands/infos/pic.rs @@ -67,7 +67,6 @@ impl crate::commands::command_contract::CommandSpec for PicCommand { name: "pic", category: "infos", params: "<@membre/ID>", - summary: "Affiche la photo de profil", description: "Affiche la photo de profil dun utilisateur cible ou de lauteur.", examples: &["+pic", "+pc", "+help pic"], default_aliases: &["pfp"], diff --git a/src/commands/infos/ping.rs b/src/commands/infos/ping.rs index b3efda5..00c70a3 100644 --- a/src/commands/infos/ping.rs +++ b/src/commands/infos/ping.rs @@ -53,7 +53,6 @@ impl crate::commands::command_contract::CommandSpec for PingCommand { name: "ping", category: "infos", params: "aucun", - summary: "Mesure la latence du bot", description: "Affiche le temps de reponse du bot et met a jour un embed avec la latence calculee.", examples: &["+ping", "+pg", "+help ping"], default_aliases: &["pg"], diff --git a/src/commands/infos/role.rs b/src/commands/infos/role.rs index 7c88772..1c2b7ab 100644 --- a/src/commands/infos/role.rs +++ b/src/commands/infos/role.rs @@ -95,7 +95,6 @@ impl crate::commands::command_contract::CommandSpec for RoleCommand { name: "role", category: "infos", params: "<@&rôle/ID>", - summary: "Affiche les details dun role", description: "Affiche les informations utiles dun role cible.", examples: &["+role", "+re", "+help role"], default_aliases: &["rol"], diff --git a/src/commands/infos/rolemembers.rs b/src/commands/infos/rolemembers.rs index 3beb9df..e90cb5b 100644 --- a/src/commands/infos/rolemembers.rs +++ b/src/commands/infos/rolemembers.rs @@ -89,7 +89,6 @@ impl crate::commands::command_contract::CommandSpec for RolemembersCommand { name: "rolemembers", category: "infos", params: "<@&rôle/ID>", - summary: "Liste les membres dun role", description: "Affiche les membres associes a un role donne.", examples: &["+rolemembers", "+rs", "+help rolemembers"], default_aliases: &["rmb"], diff --git a/src/commands/infos/server.rs b/src/commands/infos/server.rs index 03e6783..b8ad475 100644 --- a/src/commands/infos/server.rs +++ b/src/commands/infos/server.rs @@ -160,7 +160,6 @@ impl crate::commands::command_contract::CommandSpec for ServerCommand { name: "server", category: "infos", params: "pic | banner | list", - summary: "Affiche et gere le serveur", description: "Affiche licone ou la banniere du serveur, ou liste les serveurs du bot selon la sous commande.", examples: &["+server", "+sr", "+help server"], default_aliases: &["srv"], diff --git a/src/commands/infos/serverinfo.rs b/src/commands/infos/serverinfo.rs index ea5c87b..86c3031 100644 --- a/src/commands/infos/serverinfo.rs +++ b/src/commands/infos/serverinfo.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for ServerinfoCommand { name: "serverinfo", category: "infos", params: "[ID_serveur]", - summary: "Affiche les infos dun serveur", description: "Affiche les informations principales dun serveur comme nom, id et statistiques.", examples: &["+serverinfo", "+so", "+help serverinfo"], default_aliases: &["svi"], diff --git a/src/commands/infos/showpics.rs b/src/commands/infos/showpics.rs index 5b2af14..6af68f5 100644 --- a/src/commands/infos/showpics.rs +++ b/src/commands/infos/showpics.rs @@ -64,7 +64,6 @@ impl crate::commands::command_contract::CommandSpec for ShowpicsCommand { name: "showpics", category: "infos", params: "[nombre 1-5]", - summary: "Affiche des photos de profil", description: "Affiche jusqua 5 avatars de membres du serveur.", examples: &["+show pics", "+help showpics"], default_aliases: &[], diff --git a/src/commands/infos/user.rs b/src/commands/infos/user.rs index 0fc7936..dc3ef89 100644 --- a/src/commands/infos/user.rs +++ b/src/commands/infos/user.rs @@ -67,7 +67,6 @@ impl crate::commands::command_contract::CommandSpec for UserCommand { name: "user", category: "infos", params: "<@membre/ID>", - summary: "Affiche le profil utilisateur", description: "Affiche les informations principales dun utilisateur cible.", examples: &["+user", "+ur", "+help user"], default_aliases: &["usr"], diff --git a/src/commands/infos/vocinfo.rs b/src/commands/infos/vocinfo.rs index be2b4d1..c728a43 100644 --- a/src/commands/infos/vocinfo.rs +++ b/src/commands/infos/vocinfo.rs @@ -71,7 +71,6 @@ impl crate::commands::command_contract::CommandSpec for VocinfoCommand { name: "vocinfo", category: "infos", params: "[ID_salon_vocal]", - summary: "Affiche les infos vocales", description: "Affiche les informations dun salon vocal cible ou du salon vocal courant.", examples: &["+vocinfo", "+vo", "+help vocinfo"], default_aliases: &["vci"], diff --git a/src/commands/logs/autoconfiglog.rs b/src/commands/logs/autoconfiglog.rs index 02c044e..2682399 100644 --- a/src/commands/logs/autoconfiglog.rs +++ b/src/commands/logs/autoconfiglog.rs @@ -56,7 +56,6 @@ impl crate::commands::command_contract::CommandSpec for AutoconfiglogCommand { name: "autoconfiglog", category: "logs", params: "aucun", - summary: "Cree tous les salons de logs", description: "Cree automatiquement les salons de logs et les configure.", examples: &["+autoconfiglog"], default_aliases: &["acl"], diff --git a/src/commands/logs/boostembed.rs b/src/commands/logs/boostembed.rs index 7005170..48ea010 100644 --- a/src/commands/logs/boostembed.rs +++ b/src/commands/logs/boostembed.rs @@ -680,7 +680,6 @@ impl crate::commands::command_contract::CommandSpec for BoostembedCommand { name: "boostembed", category: "logs", params: "[on|off|test|settings]", - summary: "Configure l embed boost avec panneau interactif", description: "Ouvre un panneau avec composants pour paramétrer l'embed boost et le salon où il est envoyé.", examples: &["+boostembed", "+boostembed settings", "+boostembed test"], default_aliases: &["bembed"], diff --git a/src/commands/logs/boostlog.rs b/src/commands/logs/boostlog.rs index e4950c3..95f30b2 100644 --- a/src/commands/logs/boostlog.rs +++ b/src/commands/logs/boostlog.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for BoostlogCommand { name: "boostlog", category: "logs", params: "", - summary: "Active les logs de boosts", description: "Active ou desactive les logs de boosts.", examples: &["+boostlog on #logs", "+boostlog off"], default_aliases: &["blog"], diff --git a/src/commands/logs/join.rs b/src/commands/logs/join.rs index fa756ca..a59d2ad 100644 --- a/src/commands/logs/join.rs +++ b/src/commands/logs/join.rs @@ -128,7 +128,6 @@ impl crate::commands::command_contract::CommandSpec for JoinCommand { name: "join", category: "logs", params: "settings [on/off] [salon] [message]", - summary: "Parametre les actions de join", description: "Permet de configurer les actions quand un membre rejoint.", examples: &[ "+join settings", diff --git a/src/commands/logs/leave_settings.rs b/src/commands/logs/leave_settings.rs index aa56372..fd62bfd 100644 --- a/src/commands/logs/leave_settings.rs +++ b/src/commands/logs/leave_settings.rs @@ -129,7 +129,6 @@ impl crate::commands::command_contract::CommandSpec for LeaveSettingsCommand { name: "leave_settings", category: "logs", params: "settings [on/off] [salon] [message]", - summary: "Parametre les actions de leave", description: "Configure les actions a executer quand un membre quitte le serveur.", examples: &[ "+leave settings", diff --git a/src/commands/logs/messagelog.rs b/src/commands/logs/messagelog.rs index 2302a07..d4e139e 100644 --- a/src/commands/logs/messagelog.rs +++ b/src/commands/logs/messagelog.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for MessagelogCommand { name: "messagelog", category: "logs", params: "", - summary: "Active les logs de messages", description: "Active ou desactive les logs des messages supprimes et edites.", examples: &["+messagelog on #logs", "+messagelog off"], default_aliases: &["msglog"], diff --git a/src/commands/logs/modlog.rs b/src/commands/logs/modlog.rs index 168a9cd..6a159f9 100644 --- a/src/commands/logs/modlog.rs +++ b/src/commands/logs/modlog.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for ModlogCommand { name: "modlog", category: "logs", params: "", - summary: "Active les logs de moderation", description: "Active ou desactive les logs de moderation dans un salon cible.", examples: &["+modlog on #logs", "+modlog off"], default_aliases: &["mlog"], diff --git a/src/commands/logs/nolog.rs b/src/commands/logs/nolog.rs index f7c1379..7c34f76 100644 --- a/src/commands/logs/nolog.rs +++ b/src/commands/logs/nolog.rs @@ -112,7 +112,6 @@ impl crate::commands::command_contract::CommandSpec for NologCommand { name: "nolog", category: "logs", params: " [salon] [message|voice|all]", - summary: "Exclut des salons des logs", description: "Desactive ou reactive les logs message/voice pour certains salons.", examples: &["+nolog add #secret all", "+nolog del #secret message"], default_aliases: &["nlg"], diff --git a/src/commands/logs/raidlog.rs b/src/commands/logs/raidlog.rs index 2c5207d..106f643 100644 --- a/src/commands/logs/raidlog.rs +++ b/src/commands/logs/raidlog.rs @@ -55,7 +55,6 @@ impl crate::commands::command_contract::CommandSpec for RaidlogCommand { name: "raidlog", category: "logs", params: "[salon]|off", - summary: "Active les logs antiraid", description: "Active les logs antiraid dans un salon ou les desactive.", examples: &["+raidlog #logs", "+raidlog off"], default_aliases: &["rdlog"], diff --git a/src/commands/logs/rolelog.rs b/src/commands/logs/rolelog.rs index 15a6e56..975d328 100644 --- a/src/commands/logs/rolelog.rs +++ b/src/commands/logs/rolelog.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for RolelogCommand { name: "rolelog", category: "logs", params: "", - summary: "Active les logs de roles", description: "Active ou desactive les logs des roles.", examples: &["+rolelog on #logs", "+rolelog off"], default_aliases: &["rlog"], diff --git a/src/commands/logs/set_boostembed.rs b/src/commands/logs/set_boostembed.rs index 2ee69b3..ebb1111 100644 --- a/src/commands/logs/set_boostembed.rs +++ b/src/commands/logs/set_boostembed.rs @@ -102,7 +102,6 @@ impl crate::commands::command_contract::CommandSpec for SetBoostembedCommand { name: "set_boostembed", category: "logs", params: " ", - summary: "Parametre l embed de boost", description: "Configure le titre, la description et la couleur de l embed boost.", examples: &[ "+set boostembed title Merci", diff --git a/src/commands/logs/set_modlogs.rs b/src/commands/logs/set_modlogs.rs index 4219c20..84b2f0e 100644 --- a/src/commands/logs/set_modlogs.rs +++ b/src/commands/logs/set_modlogs.rs @@ -115,7 +115,6 @@ impl crate::commands::command_contract::CommandSpec for SetModlogsCommand { name: "set_modlogs", category: "logs", params: "[event on/off]", - summary: "Parametre les evenements de modlogs", description: "Affiche ou modifie les evenements qui apparaissent dans les logs de moderation.", examples: &["+set modlogs", "+set modlogs warn off"], default_aliases: &["smodlog"], diff --git a/src/commands/logs/viewlogs.rs b/src/commands/logs/viewlogs.rs index 5889979..7207c86 100644 --- a/src/commands/logs/viewlogs.rs +++ b/src/commands/logs/viewlogs.rs @@ -253,7 +253,6 @@ impl crate::commands::command_contract::CommandSpec for ViewLogsCommand { name: "viewlogs", category: "logs", params: "[page]", - summary: "Affiche les logs d'audit du serveur", description: "Affiche les derniers logs d'audit du serveur avec pagination. Les logs incluent tous les événements (modération, messages, rôles, salons, etc.)", examples: &["+viewlogs", "+viewlogs 2"], default_aliases: &["vlogs", "audit"], diff --git a/src/commands/logs/voicelog.rs b/src/commands/logs/voicelog.rs index 9c3ca17..61fddb5 100644 --- a/src/commands/logs/voicelog.rs +++ b/src/commands/logs/voicelog.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for VoicelogCommand { name: "voicelog", category: "logs", params: "", - summary: "Active les logs vocaux", description: "Active ou desactive les logs de l activite vocale.", examples: &["+voicelog on #logs", "+voicelog off"], default_aliases: &["vlog"], diff --git a/src/commands/moderation/ban.rs b/src/commands/moderation/ban.rs index 6fa7604..084af66 100644 --- a/src/commands/moderation/ban.rs +++ b/src/commands/moderation/ban.rs @@ -64,7 +64,6 @@ impl crate::commands::command_contract::CommandSpec for BanCommand { name: "ban", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Bannit un membre", description: "Ban un ou plusieurs membres.", examples: &["+ban @User"], default_aliases: &["b"], diff --git a/src/commands/moderation/banlist.rs b/src/commands/moderation/banlist.rs index 24e2d51..fea74cc 100644 --- a/src/commands/moderation/banlist.rs +++ b/src/commands/moderation/banlist.rs @@ -40,7 +40,6 @@ impl crate::commands::command_contract::CommandSpec for BanlistCommand { name: "banlist", category: "moderation", params: "aucun", - summary: "Liste les bans", description: "Affiche la liste des bannissements en cours.", examples: &["+banlist"], default_aliases: &["bls"], diff --git a/src/commands/moderation/cleanup.rs b/src/commands/moderation/cleanup.rs index 7438747..04d295c 100644 --- a/src/commands/moderation/cleanup.rs +++ b/src/commands/moderation/cleanup.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for CleanupCommand { name: "cleanup", category: "moderation", params: "", - summary: "Vide un salon vocal", description: "Deconnecte tous les utilisateurs presents dans un salon vocal cible.", examples: &["+cleanup #General"], default_aliases: &["vclean", "vcleanup"], diff --git a/src/commands/moderation/clear_all_sanctions.rs b/src/commands/moderation/clear_all_sanctions.rs index 90aa6de..4b28951 100644 --- a/src/commands/moderation/clear_all_sanctions.rs +++ b/src/commands/moderation/clear_all_sanctions.rs @@ -56,7 +56,6 @@ impl crate::commands::command_contract::CommandSpec for ClearAllSanctionsCommand name: "clear_all_sanctions", category: "moderation", params: "aucun", - summary: "Supprime toutes les sanctions du serveur", description: "Efface toutes les sanctions de tous les membres du serveur.", examples: &["+clear all sanctions"], default_aliases: &["casanctions"], diff --git a/src/commands/moderation/clear_messages.rs b/src/commands/moderation/clear_messages.rs index bde27b8..fa141c5 100644 --- a/src/commands/moderation/clear_messages.rs +++ b/src/commands/moderation/clear_messages.rs @@ -57,7 +57,6 @@ impl crate::commands::command_contract::CommandSpec for ClearMessagesCommand { name: "clear_messages", category: "moderation", params: " [@membre/ID]", - summary: "Supprime des messages dans le salon", description: "Supprime un nombre de messages, optionnellement filtres par membre.", examples: &["+clear 20", "+clear 20 @User"], default_aliases: &["purge"], diff --git a/src/commands/moderation/clear_sanctions.rs b/src/commands/moderation/clear_sanctions.rs index 230c614..dce5891 100644 --- a/src/commands/moderation/clear_sanctions.rs +++ b/src/commands/moderation/clear_sanctions.rs @@ -66,7 +66,6 @@ impl crate::commands::command_contract::CommandSpec for ClearSanctionsCommand { name: "clear_sanctions", category: "moderation", params: "<@membre/ID>", - summary: "Supprime toutes les sanctions d un membre", description: "Efface completement les sanctions d un membre cible.", examples: &["+clear sanctions @User"], default_aliases: &["csanctions"], diff --git a/src/commands/moderation/cmute.rs b/src/commands/moderation/cmute.rs index 8f6e404..4c02afb 100644 --- a/src/commands/moderation/cmute.rs +++ b/src/commands/moderation/cmute.rs @@ -60,7 +60,6 @@ impl crate::commands::command_contract::CommandSpec for CmuteCommand { name: "cmute", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Mute salon", description: "Mute un membre sur le salon courant.", examples: &["+cmute @User"], default_aliases: &["cm"], diff --git a/src/commands/moderation/del_sanction.rs b/src/commands/moderation/del_sanction.rs index 8ff5469..dfef325 100644 --- a/src/commands/moderation/del_sanction.rs +++ b/src/commands/moderation/del_sanction.rs @@ -88,7 +88,6 @@ impl crate::commands::command_contract::CommandSpec for DelSanctionCommand { name: "del_sanction", category: "moderation", params: "<@membre/ID> ", - summary: "Supprime une sanction d un membre", description: "Supprime une sanction specifique dans l historique d un membre.", examples: &["+del sanction @User 1"], default_aliases: &["delsanction"], diff --git a/src/commands/moderation/kick.rs b/src/commands/moderation/kick.rs index ebf8a50..303858d 100644 --- a/src/commands/moderation/kick.rs +++ b/src/commands/moderation/kick.rs @@ -64,7 +64,6 @@ impl crate::commands::command_contract::CommandSpec for KickCommand { name: "kick", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Expulse un membre", description: "Kick un ou plusieurs membres.", examples: &["+kick @User"], default_aliases: &["k"], diff --git a/src/commands/moderation/mute.rs b/src/commands/moderation/mute.rs index 9a167fb..67d8c57 100644 --- a/src/commands/moderation/mute.rs +++ b/src/commands/moderation/mute.rs @@ -60,7 +60,6 @@ impl crate::commands::command_contract::CommandSpec for MuteCommand { name: "mute", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Mute un membre", description: "Applique un mute a un ou plusieurs membres.", examples: &["+mute @User abus"], default_aliases: &["tmute"], diff --git a/src/commands/moderation/mutelist.rs b/src/commands/moderation/mutelist.rs index d5e47a3..3db1a6b 100644 --- a/src/commands/moderation/mutelist.rs +++ b/src/commands/moderation/mutelist.rs @@ -65,7 +65,6 @@ impl crate::commands::command_contract::CommandSpec for MutelistCommand { name: "mutelist", category: "moderation", params: "aucun", - summary: "Liste les mutes", description: "Affiche tous les mutes en cours.", examples: &["+mutelist"], default_aliases: &["ml"], diff --git a/src/commands/moderation/renew.rs b/src/commands/moderation/renew.rs index b016d52..4977da6 100644 --- a/src/commands/moderation/renew.rs +++ b/src/commands/moderation/renew.rs @@ -57,7 +57,6 @@ impl crate::commands::command_contract::CommandSpec for RenewCommand { name: "renew", category: "moderation", params: "[salon]", - summary: "Recree un salon textuel", description: "Supprime puis recree un salon textuel en conservant les options principales.", examples: &["+renew", "+renew #general"], default_aliases: &["nuke", "rebuildch"], diff --git a/src/commands/moderation/sanctions.rs b/src/commands/moderation/sanctions.rs index b1dd87b..4f053d0 100644 --- a/src/commands/moderation/sanctions.rs +++ b/src/commands/moderation/sanctions.rs @@ -104,7 +104,6 @@ impl crate::commands::command_contract::CommandSpec for SanctionsCommand { name: "sanctions", category: "moderation", params: "<@membre/ID>", - summary: "Affiche les sanctions d un membre", description: "Liste l historique des sanctions d un membre.", examples: &["+sanctions @User"], default_aliases: &["sanct"], diff --git a/src/commands/moderation/tempban.rs b/src/commands/moderation/tempban.rs index d74fa7f..624d1cc 100644 --- a/src/commands/moderation/tempban.rs +++ b/src/commands/moderation/tempban.rs @@ -75,7 +75,6 @@ impl crate::commands::command_contract::CommandSpec for TempbanCommand { name: "tempban", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Ban temporaire", description: "Ban temporairement un ou plusieurs membres.", examples: &["+tempban @User 1d"], default_aliases: &["tb"], diff --git a/src/commands/moderation/tempcmute.rs b/src/commands/moderation/tempcmute.rs index 2145273..9c7e160 100644 --- a/src/commands/moderation/tempcmute.rs +++ b/src/commands/moderation/tempcmute.rs @@ -69,7 +69,6 @@ impl crate::commands::command_contract::CommandSpec for TempcmuteCommand { name: "tempcmute", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Mute salon temporaire", description: "Mute temporaire sur le salon courant.", examples: &["+tempcmute @User 5m"], default_aliases: &["tcm"], diff --git a/src/commands/moderation/tempmute.rs b/src/commands/moderation/tempmute.rs index 31c3e21..65bea86 100644 --- a/src/commands/moderation/tempmute.rs +++ b/src/commands/moderation/tempmute.rs @@ -69,7 +69,6 @@ impl crate::commands::command_contract::CommandSpec for TempmuteCommand { name: "tempmute", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Mute temporaire", description: "Mute un ou plusieurs membres pour une duree donnee.", examples: &["+tempmute @User 10m"], default_aliases: &["tm"], diff --git a/src/commands/moderation/unban.rs b/src/commands/moderation/unban.rs index 098d8dc..110aab7 100644 --- a/src/commands/moderation/unban.rs +++ b/src/commands/moderation/unban.rs @@ -43,7 +43,6 @@ impl crate::commands::command_contract::CommandSpec for UnbanCommand { name: "unban", category: "moderation", params: "<@membre/ID[,..]>", - summary: "Retire un ban", description: "Unban un ou plusieurs membres.", examples: &["+unban @User"], default_aliases: &["ub"], diff --git a/src/commands/moderation/unbanall.rs b/src/commands/moderation/unbanall.rs index 838f941..20921ae 100644 --- a/src/commands/moderation/unbanall.rs +++ b/src/commands/moderation/unbanall.rs @@ -41,7 +41,6 @@ impl crate::commands::command_contract::CommandSpec for UnbanAllCommand { name: "unbanall", category: "moderation", params: "aucun", - summary: "Retire tous les bannissements", description: "Supprime tous les bans du serveur cible.", examples: &["+unbanall"], default_aliases: &["uball", "clearbans"], diff --git a/src/commands/moderation/uncmute.rs b/src/commands/moderation/uncmute.rs index 8120d97..1885eb6 100644 --- a/src/commands/moderation/uncmute.rs +++ b/src/commands/moderation/uncmute.rs @@ -57,7 +57,6 @@ impl crate::commands::command_contract::CommandSpec for UncmuteCommand { name: "uncmute", category: "moderation", params: "<@membre/ID[,..]>", - summary: "Retire un cmute", description: "Met fin au mute salon.", examples: &["+uncmute @User"], default_aliases: &["ucm"], diff --git a/src/commands/moderation/unmute.rs b/src/commands/moderation/unmute.rs index 94785fe..b714434 100644 --- a/src/commands/moderation/unmute.rs +++ b/src/commands/moderation/unmute.rs @@ -56,7 +56,6 @@ impl crate::commands::command_contract::CommandSpec for UnmuteCommand { name: "unmute", category: "moderation", params: "<@membre/ID[,..]>", - summary: "Retire un mute", description: "Met fin au mute d un ou plusieurs membres.", examples: &["+unmute @User"], default_aliases: &["um"], diff --git a/src/commands/moderation/unmuteall.rs b/src/commands/moderation/unmuteall.rs index 30956a8..a1103e6 100644 --- a/src/commands/moderation/unmuteall.rs +++ b/src/commands/moderation/unmuteall.rs @@ -71,7 +71,6 @@ impl crate::commands::command_contract::CommandSpec for UnmuteallCommand { name: "unmuteall", category: "moderation", params: "aucun", - summary: "Retire tous les mutes", description: "Supprime tous les mutes en cours.", examples: &["+unmuteall"], default_aliases: &["uma"], diff --git a/src/commands/moderation/warn.rs b/src/commands/moderation/warn.rs index cff255a..33000c2 100644 --- a/src/commands/moderation/warn.rs +++ b/src/commands/moderation/warn.rs @@ -56,7 +56,6 @@ impl crate::commands::command_contract::CommandSpec for WarnCommand { name: "warn", category: "moderation", params: "<@membre/ID[,..]> [raison]", - summary: "Donne un warn", description: "Ajoute un warn a un ou plusieurs membres.", examples: &["+warn @User spam"], default_aliases: &["avert"], diff --git a/src/commands/outils/autobackup.rs b/src/commands/outils/autobackup.rs index b7b2e38..c992271 100644 --- a/src/commands/outils/autobackup.rs +++ b/src/commands/outils/autobackup.rs @@ -76,7 +76,6 @@ impl crate::commands::command_contract::CommandSpec for AutoBackupCommand { name: "autobackup", category: "outils", params: " ", - summary: "Configure les backups automatiques", description: "Definit l'intervalle en jours des backups automatiques.", examples: &["+autobackup serveur 3", "+autobackup emoji 7"], default_aliases: &["abkp"], diff --git a/src/commands/outils/autopublish.rs b/src/commands/outils/autopublish.rs index 7d15720..a2b02f7 100644 --- a/src/commands/outils/autopublish.rs +++ b/src/commands/outils/autopublish.rs @@ -120,7 +120,6 @@ impl crate::commands::command_contract::CommandSpec for AutopublishCommand { name: "autopublish", category: "outils", params: "on|off [#canal]", - summary: "Configure lautopublish", description: "Affiche, active ou desactive la publication automatique des annonces.", examples: &[ "+autopublish", diff --git a/src/commands/outils/autoreact.rs b/src/commands/outils/autoreact.rs index 29994ce..44cd469 100644 --- a/src/commands/outils/autoreact.rs +++ b/src/commands/outils/autoreact.rs @@ -146,7 +146,6 @@ impl crate::commands::command_contract::CommandSpec for AutoReactCommand { name: "autoreact", category: "outils", params: " | list", - summary: "Configure les reactions automatiques", description: "Ajoute, retire et liste les reactions automatiquement appliquees aux messages d'un salon.", examples: &["+autoreact add #general 😀", "+autoreact list"], default_aliases: &["ar", "reactauto"], diff --git a/src/commands/outils/backup.rs b/src/commands/outils/backup.rs index f884c4e..1075727 100644 --- a/src/commands/outils/backup.rs +++ b/src/commands/outils/backup.rs @@ -166,7 +166,6 @@ impl crate::commands::command_contract::CommandSpec for BackupCommand { name: "backup", category: "outils", params: " | list/delete/load", - summary: "Gere les backups serveur et emojis", description: "Cree, liste, supprime et recharge des backups serveur ou emojis.", examples: &[ "+backup serveur prod_1", diff --git a/src/commands/outils/button.rs b/src/commands/outils/button.rs index 7b7ed6e..1103d57 100644 --- a/src/commands/outils/button.rs +++ b/src/commands/outils/button.rs @@ -46,7 +46,6 @@ impl crate::commands::command_contract::CommandSpec for ButtonCommand { name: "button", category: "outils", params: " ", - summary: "Gere des boutons decoratifs", description: "Ajoute ou supprime un bouton de decoration personnalise sur un message du bot.", examples: &[ "+button add https://example.com", diff --git a/src/commands/outils/calc.rs b/src/commands/outils/calc.rs index 20bbba6..e879426 100644 --- a/src/commands/outils/calc.rs +++ b/src/commands/outils/calc.rs @@ -97,7 +97,6 @@ impl crate::commands::command_contract::CommandSpec for CalcCommand { name: "calc", category: "outils", params: "", - summary: "Calcule une expression", description: "Evalue une expression numerique simple et renvoie le resultat.", examples: &["+calc", "+cc", "+help calc"], default_aliases: &["clc"], diff --git a/src/commands/outils/choose.rs b/src/commands/outils/choose.rs index 157b793..f513be0 100644 --- a/src/commands/outils/choose.rs +++ b/src/commands/outils/choose.rs @@ -76,7 +76,6 @@ impl crate::commands::command_contract::CommandSpec for ChooseCommand { name: "choose", category: "outils", params: "", - summary: "Tire une option au hasard", description: "Lance un tirage au sort instantane parmi les options donnees.", examples: &["+choose rouge | bleu | vert"], default_aliases: &["pick", "random"], diff --git a/src/commands/outils/claim.rs b/src/commands/outils/claim.rs index 1d938a2..4aea76f 100644 --- a/src/commands/outils/claim.rs +++ b/src/commands/outils/claim.rs @@ -77,7 +77,6 @@ impl crate::commands::command_contract::CommandSpec for ClaimCommand { name: "claim", category: "outils", params: "aucun", - summary: "Revendique un ticket", description: "Assigne le ticket courant au moderateur qui execute la commande.", examples: &["+claim", "+help claim"], default_aliases: &[], diff --git a/src/commands/outils/close.rs b/src/commands/outils/close.rs index 59847a9..0f25d8f 100644 --- a/src/commands/outils/close.rs +++ b/src/commands/outils/close.rs @@ -84,7 +84,6 @@ impl crate::commands::command_contract::CommandSpec for CloseCommand { name: "close", category: "outils", params: "[raison...]", - summary: "Ferme un ticket", description: "Ferme le ticket courant et enregistre optionnellement une raison.", examples: &["+close", "+close Raison", "+help close"], default_aliases: &[], diff --git a/src/commands/outils/create.rs b/src/commands/outils/create.rs index fef37ee..b8173c6 100644 --- a/src/commands/outils/create.rs +++ b/src/commands/outils/create.rs @@ -92,7 +92,6 @@ impl crate::commands::command_contract::CommandSpec for CreateCommand { name: "create", category: "outils", params: "[emoji/url] [nom]", - summary: "Cree un emoji custom", description: "Cree un emoji custom a partir d'une image, d'un lien ou d'un emoji nitro.", examples: &[ "+create <:blob:123456789012345678> blobcopy", diff --git a/src/commands/outils/embed.rs b/src/commands/outils/embed.rs index d58e7cd..32b7fc1 100644 --- a/src/commands/outils/embed.rs +++ b/src/commands/outils/embed.rs @@ -71,7 +71,6 @@ impl crate::commands::command_contract::CommandSpec for EmbedCommand { name: "embed", category: "outils", params: "title | description (v1)", - summary: "Ouvre le generateur d'embed", description: "Affiche un generateur d'embed interactif version rapide.", examples: &["+embed"], default_aliases: &["emb"], diff --git a/src/commands/outils/emoji.rs b/src/commands/outils/emoji.rs index 7068f89..60e40e3 100644 --- a/src/commands/outils/emoji.rs +++ b/src/commands/outils/emoji.rs @@ -86,7 +86,6 @@ impl crate::commands::command_contract::CommandSpec for EmojiCommand { name: "emoji", category: "outils", params: "", - summary: "Affiche les infos dun emoji", description: "Affiche les details dun emoji fourni.", examples: &["+emoji", "+ei", "+help emoji"], default_aliases: &["emj"], diff --git a/src/commands/outils/end.rs b/src/commands/outils/end.rs index 97c9037..accdd05 100644 --- a/src/commands/outils/end.rs +++ b/src/commands/outils/end.rs @@ -105,7 +105,6 @@ impl crate::commands::command_contract::CommandSpec for EndCommand { name: "end", category: "outils", params: "giveaway ", - summary: "Termine un giveaway par ID", description: "Permet de stopper instantanement un giveaway avec l'identifiant du message.", examples: &["+end giveaway 123456789012345678"], default_aliases: &["gend"], diff --git a/src/commands/outils/giveaway.rs b/src/commands/outils/giveaway.rs index 414625e..503754c 100644 --- a/src/commands/outils/giveaway.rs +++ b/src/commands/outils/giveaway.rs @@ -48,7 +48,6 @@ impl crate::commands::command_contract::CommandSpec for GiveawayCommand { name: "giveaway", category: "outils", params: "aucun", - summary: "Ouvre un menu de creation de giveaway", description: "Affiche une interface rapide pour initier un giveaway depuis le salon courant.", examples: &["+giveaway"], default_aliases: &["gstart", "gw"], diff --git a/src/commands/outils/loading.rs b/src/commands/outils/loading.rs index 404f6e8..551d4f0 100644 --- a/src/commands/outils/loading.rs +++ b/src/commands/outils/loading.rs @@ -102,7 +102,6 @@ impl crate::commands::command_contract::CommandSpec for LoadingCommand { name: "loading", category: "outils", params: " ", - summary: "Affiche une barre de chargement", description: "Anime une barre de progression avec la duree et le texte fournis.", examples: &["+loading 10s Traitement en cours"], default_aliases: &["loadbar", "bar"], diff --git a/src/commands/outils/newsticker.rs b/src/commands/outils/newsticker.rs index 91a0659..38abd22 100644 --- a/src/commands/outils/newsticker.rs +++ b/src/commands/outils/newsticker.rs @@ -26,7 +26,6 @@ impl crate::commands::command_contract::CommandSpec for NewStickerCommand { name: "newsticker", category: "outils", params: "[nom]", - summary: "Cree un sticker serveur", description: "Cree un nouveau sticker a partir d'un sticker ou fichier repondu.", examples: &["+newsticker cool_pack"], default_aliases: &["stcreate", "nst"], diff --git a/src/commands/outils/rename.rs b/src/commands/outils/rename.rs index e5a39af..979ab41 100644 --- a/src/commands/outils/rename.rs +++ b/src/commands/outils/rename.rs @@ -132,7 +132,6 @@ impl crate::commands::command_contract::CommandSpec for RenameCommand { name: "rename", category: "outils", params: "", - summary: "Renomme le ticket courant", description: "Renomme le salon du ticket et met a jour son titre en base.", examples: &["+rename support-client", "+help rename"], default_aliases: &[], diff --git a/src/commands/outils/reroll.rs b/src/commands/outils/reroll.rs index 122ad9e..95860dd 100644 --- a/src/commands/outils/reroll.rs +++ b/src/commands/outils/reroll.rs @@ -61,7 +61,6 @@ impl crate::commands::command_contract::CommandSpec for RerollCommand { name: "reroll", category: "outils", params: "aucun (en reponse a un message)", - summary: "Relance un tirage giveaway", description: "Choisit un nouveau gagnant depuis le message cible.", examples: &["+reroll"], default_aliases: &["rro", "greroll"], diff --git a/src/commands/outils/say.rs b/src/commands/outils/say.rs index 1c2227f..eaf5f69 100644 --- a/src/commands/outils/say.rs +++ b/src/commands/outils/say.rs @@ -30,7 +30,6 @@ impl crate::commands::command_contract::CommandSpec for SayCommand { name: "say", category: "outils", params: "", - summary: "Fait parler le bot", description: "Envoie un message brut dans le salon courant via le bot.", examples: &["+say", "+sy", "+help say"], default_aliases: &["sym"], diff --git a/src/commands/outils/snipe.rs b/src/commands/outils/snipe.rs index a73c05e..0971839 100644 --- a/src/commands/outils/snipe.rs +++ b/src/commands/outils/snipe.rs @@ -72,7 +72,6 @@ impl crate::commands::command_contract::CommandSpec for SnipeCommand { name: "snipe", category: "outils", params: "[index]", - summary: "Recupere un message supprime", description: "Affiche le dernier message supprime dans le salon ou un index de messages supprimes.", examples: &["+snipe", "+se", "+help snipe"], default_aliases: &["snp"], diff --git a/src/commands/outils/suggestion.rs b/src/commands/outils/suggestion.rs index b8d7871..0ab28e2 100644 --- a/src/commands/outils/suggestion.rs +++ b/src/commands/outils/suggestion.rs @@ -506,7 +506,6 @@ impl crate::commands::command_contract::CommandSpec for SuggestionCommand { name: "suggestion", category: "outils", params: " | settings", - summary: "Publie ou configure les suggestions", description: "Publie une suggestion utilisateur ou ouvre le panneau de configuration.", examples: &[ "+suggestion Ameliorer le salon", diff --git a/src/commands/outils/ticket.rs b/src/commands/outils/ticket.rs index 8b1facf..9343583 100644 --- a/src/commands/outils/ticket.rs +++ b/src/commands/outils/ticket.rs @@ -451,7 +451,6 @@ impl crate::commands::command_contract::CommandSpec for TicketCommand { name: "ticket", category: "outils", params: "settings", - summary: "Ouvre la gestion des tickets", description: "Affiche le menu de configuration du systeme de tickets.", examples: &["+ticket", "+help ticket"], default_aliases: &[], diff --git a/src/commands/outils/ticket_member.rs b/src/commands/outils/ticket_member.rs index fc07557..2d8182c 100644 --- a/src/commands/outils/ticket_member.rs +++ b/src/commands/outils/ticket_member.rs @@ -160,7 +160,6 @@ impl crate::commands::command_contract::CommandSpec for TicketMemberCommand { name: "add", category: "outils", params: "<@membre/ID>", - summary: "Ajoute un membre au ticket", description: "Ajoute un membre supplementaire au ticket courant via +add.", examples: &["+add @User", "+help add"], default_aliases: &[], diff --git a/src/commands/outils/tickets.rs b/src/commands/outils/tickets.rs index e7c453e..4647e56 100644 --- a/src/commands/outils/tickets.rs +++ b/src/commands/outils/tickets.rs @@ -76,7 +76,6 @@ impl crate::commands::command_contract::CommandSpec for TicketsCommand { name: "tickets", category: "outils", params: "[page]", - summary: "Liste les tickets", description: "Affiche les tickets du serveur avec pagination.", examples: &["+tickets", "+tickets 2", "+help tickets"], default_aliases: &[], diff --git a/src/commands/permissions/alias.rs b/src/commands/permissions/alias.rs index 315c625..bbfc1d4 100644 --- a/src/commands/permissions/alias.rs +++ b/src/commands/permissions/alias.rs @@ -126,7 +126,6 @@ impl crate::commands::command_contract::CommandSpec for AliasCommand { name: "alias", category: "permissions", params: " | remove | list", - summary: "Gere les aliases personnalises", description: "Liste, ajoute ou supprime des aliases de commandes stockes en base.", examples: &["+alias", "+as", "+help alias"], default_aliases: &["als"], diff --git a/src/commands/permissions/allperms.rs b/src/commands/permissions/allperms.rs index 6b2c530..942010f 100644 --- a/src/commands/permissions/allperms.rs +++ b/src/commands/permissions/allperms.rs @@ -127,7 +127,6 @@ impl crate::commands::command_contract::CommandSpec for AllpermsCommand { name: "allperms", category: "permissions", params: "[page]", - summary: "Liste les ACL de toutes commandes", description: "Affiche le niveau ACL requis pour chaque commande avec pagination.", examples: &["+allperms", "+as", "+help allperms"], default_aliases: &["apm"], diff --git a/src/commands/permissions/clear_perms.rs b/src/commands/permissions/clear_perms.rs index 3c9c564..4f3b43d 100644 --- a/src/commands/permissions/clear_perms.rs +++ b/src/commands/permissions/clear_perms.rs @@ -38,7 +38,6 @@ impl crate::commands::command_contract::CommandSpec for ClearPermsCommand { name: "clear_perms", category: "permissions", params: "aucun", - summary: "Vide toutes les permissions scope", description: "Supprime toutes les permissions ACL configurees en base.", examples: &["+clear perms", "+cs", "+help clear perms"], default_aliases: &["cpm"], diff --git a/src/commands/permissions/del.rs b/src/commands/permissions/del.rs index 4e6f484..1384243 100644 --- a/src/commands/permissions/del.rs +++ b/src/commands/permissions/del.rs @@ -59,7 +59,6 @@ impl crate::commands::command_contract::CommandSpec for DelCommand { name: "del", category: "permissions", params: "perm <@&rôle/@membre/ID>", - summary: "Supprime des permissions scope", description: "Supprime les permissions ACL associees a un role ou utilisateur.", examples: &["+del", "+dl", "+help del"], default_aliases: &["dlp"], diff --git a/src/commands/permissions/help.rs b/src/commands/permissions/help.rs index 0d891d5..5f70247 100644 --- a/src/commands/permissions/help.rs +++ b/src/commands/permissions/help.rs @@ -57,12 +57,21 @@ struct CommandDoc { allow_in_dm: bool, default_permission: u8, params: &'static str, - summary: &'static str, description: &'static str, examples: &'static [&'static str], alias_source_key: Option<&'static str>, } +#[derive(Clone)] +struct HelpViewPage { + category_index: usize, + category_title: &'static str, + category_description: &'static str, + section_index: usize, + section_total: usize, + commands_block: String, +} + #[derive(Clone, Copy)] struct HelpState { layout: HelpLayout, @@ -327,7 +336,6 @@ fn command_doc(key: &str) -> Option { allow_in_dm: meta.allow_in_dm, default_permission: meta.default_permission, params: meta.params, - summary: meta.summary, description: meta.description, examples: if meta.examples.is_empty() { HELP_FALLBACK_EXAMPLES @@ -486,32 +494,40 @@ fn help_page_content( for meta in commands { let label = meta.name.replace('_', " "); - let summary = meta.summary; let alias_key = meta.name; - let permission = if perms_enabled { - format!(" {}", format_permission_level(meta.default_permission)) + let params = if meta.params.trim().is_empty() { + "aucun" } else { - String::new() + meta.params + }; + let permission = if perms_enabled { + format_permission_level(meta.default_permission) + } else { + "désactivée".to_string() + }; + let aliases_text = if aliases_enabled { + alias_map + .get(alias_key) + .filter(|aliases| !aliases.is_empty()) + .map(|aliases| { + aliases + .iter() + .map(|alias| format!("`{}`", alias)) + .collect::>() + .join(", ") + }) + .unwrap_or_else(|| "aucun".to_string()) + } else { + "désactivés".to_string() }; - if aliases_enabled { - if let Some(aliases) = alias_map.get(alias_key) { - if aliases.is_empty() { - lines.push(format!("`+{}`{} - {}", label, permission, summary)); - } else { - lines.push(format!( - "`+{}`{} - {} · alias: `{}`", - label, - permission, - summary, - aliases.join("`, `") - )); - } - continue; - } - } + let first_line = format!( + "`+{}` · args: `{}` · perm: `{}` · aliases: {}", + label, params, permission, aliases_text + ); + let second_line = meta.description; - lines.push(format!("`+{}`{} - {}", label, permission, summary)); + lines.push(format!("{}\n{}", first_line, second_line)); } if lines.is_empty() { @@ -521,18 +537,107 @@ fn help_page_content( lines } +fn paginate_blocks(blocks: &[String], max_chars: usize) -> Vec { + let mut pages = Vec::new(); + let mut current = String::new(); + + for block in blocks { + let block_len = block.chars().count(); + + if current.is_empty() { + if block_len > max_chars { + pages.push(truncate_text(block, max_chars)); + } else { + current = block.clone(); + } + continue; + } + + let separator = "\n\n"; + let next_len = current.chars().count() + separator.chars().count() + block_len; + if next_len > max_chars { + pages.push(current); + if block_len > max_chars { + pages.push(truncate_text(block, max_chars)); + current = String::new(); + } else { + current = block.clone(); + } + } else { + current.push_str(separator); + current.push_str(block); + } + } + + if !current.is_empty() { + pages.push(current); + } + + if pages.is_empty() { + pages.push("Aucune commande dans cette catégorie.".to_string()); + } + + pages +} + +fn build_help_view_pages( + state: &HelpState, + alias_map: &BTreeMap>, +) -> Vec { + const MAX_COMMANDS_BLOCK_CHARS: usize = 3600; + + let mut out = Vec::new(); + + for (category_index, page) in HELP_PAGES.iter().enumerate() { + let blocks = help_page_content(page, alias_map, state.aliases_enabled, state.perms_enabled); + let sections = paginate_blocks(&blocks, MAX_COMMANDS_BLOCK_CHARS); + let section_total = sections.len(); + + for (section_index, commands_block) in sections.into_iter().enumerate() { + out.push(HelpViewPage { + category_index, + category_title: page.title, + category_description: page.description, + section_index, + section_total, + commands_block, + }); + } + } + + out +} + +fn first_view_page_for_category(view_pages: &[HelpViewPage], category_index: usize) -> usize { + view_pages + .iter() + .position(|entry| entry.category_index == category_index) + .unwrap_or(0) +} + fn build_help_embed( page_index: usize, state: &HelpState, - alias_map: &BTreeMap>, + view_pages: &[HelpViewPage], ) -> CreateEmbed { - let page = &HELP_PAGES[page_index]; - let lines = help_page_content(page, alias_map, state.aliases_enabled, state.perms_enabled); + let safe_page_index = page_index.min(view_pages.len().saturating_sub(1)); + let view = &view_pages[safe_page_index]; + + let title = if view.section_total > 1 { + format!( + "Aide · {} {}/{}", + view.category_title, + view.section_index + 1, + view.section_total + ) + } else { + format!("Aide · {}", view.category_title) + }; let header = format!( "Page {}/{} · mode `{}` · aliases {} · perms {}\n{}", - page_index + 1, - HELP_PAGES.len(), + safe_page_index + 1, + view_pages.len(), state.layout.as_str(), if state.aliases_enabled { "activés" @@ -544,23 +649,28 @@ fn build_help_embed( } else { "désactivées" }, - page.description, + view.category_description, ); let commands_intro = "\n\n**Commandes**\n"; let available = 4096usize .saturating_sub(header.chars().count()) .saturating_sub(commands_intro.chars().count()); - let commands_block = truncate_text(&lines.join("\n"), available); + let commands_block = truncate_text(&view.commands_block, available); CreateEmbed::new() - .title(format!("Aide · {}", page.title)) + .title(title) .description(format!("{}{}{}", header, commands_intro, commands_block)) .color(0x5865F2) } -fn help_components(owner_id: UserId, page_index: usize, state: &HelpState) -> Vec { - let total = HELP_PAGES.len().max(1); +fn help_components( + owner_id: UserId, + page_index: usize, + state: &HelpState, + view_pages: &[HelpViewPage], +) -> Vec { + let total = view_pages.len().max(1); let prev_page = page_index.saturating_sub(1); let next_page = (page_index + 1).min(total - 1); let custom_prev = format!("help:nav:{}:{}", owner_id.get(), prev_page); @@ -590,7 +700,18 @@ fn help_components(owner_id: UserId, page_index: usize, state: &HelpState) -> Ve .iter() .enumerate() .map(|(index, page)| { - CreateSelectMenuOption::new(page.title, index.to_string()) + let count = view_pages + .iter() + .filter(|entry| entry.category_index == index) + .count() + .max(1); + let title = if count > 1 { + format!("{} ({})", page.title, count) + } else { + page.title.to_string() + }; + + CreateSelectMenuOption::new(title, index.to_string()) .description(truncate_text(page.description, 100)) }) .collect::>(); @@ -632,8 +753,9 @@ pub async fn register_slash_help(ctx: &Context) { pub async fn handle_help_slash(ctx: &Context, command: &CommandInteraction) { let state = current_help_state(ctx).await; let alias_map = aliases_map(ctx).await; - let embed = build_help_embed(0, &state, &alias_map); - let components = help_components(command.user.id, 0, &state); + let view_pages = build_help_view_pages(&state, &alias_map); + let embed = build_help_embed(0, &state, &view_pages); + let components = help_components(command.user.id, 0, &state, &view_pages); let _ = command .create_response( @@ -681,21 +803,23 @@ pub async fn handle_help_component(ctx: &Context, component: &ComponentInteracti let state = current_help_state(ctx).await; let alias_map = aliases_map(ctx).await; + let view_pages = build_help_view_pages(&state, &alias_map); let page_index = match kind { - "nav" => page.unwrap_or(0).min(HELP_PAGES.len().saturating_sub(1)), + "nav" => page.unwrap_or(0).min(view_pages.len().saturating_sub(1)), "select" => match &component.data.kind { ComponentInteractionDataKind::StringSelect { values } => values .first() .and_then(|value| value.parse::().ok()) + .map(|category_index| first_view_page_for_category(&view_pages, category_index)) .unwrap_or(0) - .min(HELP_PAGES.len().saturating_sub(1)), + .min(view_pages.len().saturating_sub(1)), _ => 0, }, _ => 0, }; - let embed = build_help_embed(page_index, &state, &alias_map); - let components = help_components(component.user.id, page_index, &state); + let embed = build_help_embed(page_index, &state, &view_pages); + let components = help_components(component.user.id, page_index, &state, &view_pages); let _ = component .create_response( @@ -782,7 +906,6 @@ pub async fn handle_help(ctx: &Context, msg: &Message, args: &[&str]) { if doc.allow_in_dm { "Oui" } else { "Non" }, true, ) - .field("Résumé", doc.summary, false) .field("Exemples", truncate_text(&examples, 1024), false); if state.perms_enabled { @@ -804,14 +927,17 @@ pub async fn handle_help(ctx: &Context, msg: &Message, args: &[&str]) { } } - let page_index = args + let category_index = args .first() .and_then(|input| help_page_from_input(input)) .unwrap_or(0) .min(HELP_PAGES.len().saturating_sub(1)); - let embed = build_help_embed(page_index, &state, &alias_map); - let components = help_components(msg.author.id, page_index, &state); + let view_pages = build_help_view_pages(&state, &alias_map); + let page_index = first_view_page_for_category(&view_pages, category_index); + + let embed = build_help_embed(page_index, &state, &view_pages); + let components = help_components(msg.author.id, page_index, &state, &view_pages); let _ = msg .channel_id @@ -830,7 +956,6 @@ impl crate::commands::command_contract::CommandSpec for HelpCommand { name: "help", category: "permissions", params: "[commande|page]", - summary: "Affiche laide des commandes", description: "Affiche les pages daide du bot ou la fiche detaillee dune commande avec parametres, aliases et exemples.", examples: &["+help", "+hp", "+help help"], default_aliases: &["hp"], diff --git a/src/commands/permissions/helpalias.rs b/src/commands/permissions/helpalias.rs index bce9add..e6900bd 100644 --- a/src/commands/permissions/helpalias.rs +++ b/src/commands/permissions/helpalias.rs @@ -70,7 +70,6 @@ impl crate::commands::command_contract::CommandSpec for HelpaliasCommand { name: "helpalias", category: "permissions", params: "", - summary: "Active ou coupe les aliases help", description: "Active ou desactive laffichage des aliases dans laide.", examples: &["+helpalias", "+hs", "+help helpalias"], default_aliases: &["hal"], diff --git a/src/commands/permissions/helpsetting.rs b/src/commands/permissions/helpsetting.rs index fcb5230..279fd81 100644 --- a/src/commands/permissions/helpsetting.rs +++ b/src/commands/permissions/helpsetting.rs @@ -398,7 +398,6 @@ impl crate::commands::command_contract::CommandSpec for HelpsettingCommand { name: "helpsetting", category: "permissions", params: "[type|aliases|perms] [value]", - summary: "Configure l'affichage du système d'aide", description: "Permet de configurer le mode d'affichage, l'affichage des alias et l'affichage des permissions du système d'aide.", examples: &[ "+helpsetting", diff --git a/src/commands/permissions/helptype.rs b/src/commands/permissions/helptype.rs index ecf0b38..e8dded9 100644 --- a/src/commands/permissions/helptype.rs +++ b/src/commands/permissions/helptype.rs @@ -67,7 +67,6 @@ impl crate::commands::command_contract::CommandSpec for HelptypeCommand { name: "helptype", category: "permissions", params: "", - summary: "Change le mode daffichage help", description: "Definit le mode daffichage de laide entre button, select et hybrid.", examples: &["+helptype", "+he", "+help helptype"], default_aliases: &["htp"], diff --git a/src/commands/permissions/perms.rs b/src/commands/permissions/perms.rs index 7bfe542..3222383 100644 --- a/src/commands/permissions/perms.rs +++ b/src/commands/permissions/perms.rs @@ -70,7 +70,6 @@ impl crate::commands::command_contract::CommandSpec for PermsCommand { name: "perms", category: "permissions", params: "aucun", - summary: "Affiche les permissions ACL", description: "Affiche les permissions ACL configurees par role ou scope.", examples: &["+perms", "+ps", "+help perms"], default_aliases: &["prm"], diff --git a/src/commands/roles/addrole.rs b/src/commands/roles/addrole.rs index a812c61..ebd38e8 100644 --- a/src/commands/roles/addrole.rs +++ b/src/commands/roles/addrole.rs @@ -53,7 +53,6 @@ impl crate::commands::command_contract::CommandSpec for AddroleCommand { name: "addrole", category: "roles", params: "<@membre/ID[,..]> <@role/ID>", - summary: "Ajoute un role", description: "Ajoute un role a un ou plusieurs membres.", examples: &["+addrole @User @Membre"], default_aliases: &["ar"], diff --git a/src/commands/roles/delrole.rs b/src/commands/roles/delrole.rs index d5bbc91..05bfbf2 100644 --- a/src/commands/roles/delrole.rs +++ b/src/commands/roles/delrole.rs @@ -53,7 +53,6 @@ impl crate::commands::command_contract::CommandSpec for DelroleCommand { name: "delrole", category: "roles", params: "<@membre/ID[,..]> <@role/ID>", - summary: "Retire un role", description: "Retire un role a un ou plusieurs membres.", examples: &["+delrole @User @Membre"], default_aliases: &["dr"], diff --git a/src/commands/roles/derank.rs b/src/commands/roles/derank.rs index f819524..73ab339 100644 --- a/src/commands/roles/derank.rs +++ b/src/commands/roles/derank.rs @@ -54,7 +54,6 @@ impl crate::commands::command_contract::CommandSpec for DerankCommand { name: "derank", category: "roles", params: "<@membre/ID[,..]>", - summary: "Retire tous les roles", description: "Retire tous les roles gerables d un membre.", examples: &["+derank @User"], default_aliases: &["drk"], diff --git a/src/commands/roles/massiverole.rs b/src/commands/roles/massiverole.rs index 45339ce..f8c36d0 100644 --- a/src/commands/roles/massiverole.rs +++ b/src/commands/roles/massiverole.rs @@ -64,7 +64,6 @@ impl crate::commands::command_contract::CommandSpec for MassiveRoleCommand { name: "massiverole", category: "roles", params: " [role_filtre]", - summary: "Ajoute un role en masse", description: "Ajoute un role a tous les membres ou a ceux qui ont deja un role filtre.", examples: &["+massiverole @VIP", "+massiverole @VIP @Membres"], default_aliases: &["mrole", "mr"], diff --git a/src/commands/roles/rolemenu.rs b/src/commands/roles/rolemenu.rs index e99ef2f..8e0d959 100644 --- a/src/commands/roles/rolemenu.rs +++ b/src/commands/roles/rolemenu.rs @@ -583,7 +583,6 @@ impl crate::commands::command_contract::CommandSpec for RolemenuCommand { name: "rolemenu", category: "roles", params: "[message_id]", - summary: "Cree ou modifie un menu de roles", description: "Ouvre un panneau interactif (boutons + modales) pour construire un embed de roles et des boutons auto-roles.", examples: &[ "+rolemenu", diff --git a/src/commands/roles/sync.rs b/src/commands/roles/sync.rs index c3ecb45..b499cc2 100644 --- a/src/commands/roles/sync.rs +++ b/src/commands/roles/sync.rs @@ -81,7 +81,6 @@ impl crate::commands::command_contract::CommandSpec for SyncCommand { name: "sync", category: "roles", params: "", - summary: "Synchronise les permissions", description: "Synchronise les permissions d'un salon avec sa categorie, ou tous les salons avec all.", examples: &["+sync all", "+sync #general"], default_aliases: &["chsync"], diff --git a/src/commands/roles/temprole.rs b/src/commands/roles/temprole.rs index e1b4a69..01ba29a 100644 --- a/src/commands/roles/temprole.rs +++ b/src/commands/roles/temprole.rs @@ -119,7 +119,6 @@ impl crate::commands::command_contract::CommandSpec for TempRoleCommand { name: "temprole", category: "roles", params: " ", - summary: "Ajoute un role temporaire", description: "Attribue un role a un membre pour une duree donnee puis le retire automatiquement.", examples: &["+temprole @User @VIP 2h"], default_aliases: &["trole", "tmprole"], diff --git a/src/commands/roles/unmassiverole.rs b/src/commands/roles/unmassiverole.rs index d9830de..0a85f37 100644 --- a/src/commands/roles/unmassiverole.rs +++ b/src/commands/roles/unmassiverole.rs @@ -64,7 +64,6 @@ impl crate::commands::command_contract::CommandSpec for UnMassiveRoleCommand { name: "unmassiverole", category: "roles", params: " [role_filtre]", - summary: "Retire un role en masse", description: "Retire un role a tous les membres ou a ceux qui ont un role filtre.", examples: &["+unmassiverole @VIP", "+unmassiverole @VIP @Membres"], default_aliases: &["umrole", "umr"], diff --git a/src/commands/roles/untemprole.rs b/src/commands/roles/untemprole.rs index 622b9f4..be54ce7 100644 --- a/src/commands/roles/untemprole.rs +++ b/src/commands/roles/untemprole.rs @@ -76,7 +76,6 @@ impl crate::commands::command_contract::CommandSpec for UnTempRoleCommand { name: "untemprole", category: "roles", params: " ", - summary: "Retire un role temporaire", description: "Retire immediatement un role temporaire et desactive son expiration.", examples: &["+untemprole @User @VIP"], default_aliases: &["untrole", "deltrole"], diff --git a/src/commands/salons_vocal/bringall.rs b/src/commands/salons_vocal/bringall.rs index 07aead2..9455361 100644 --- a/src/commands/salons_vocal/bringall.rs +++ b/src/commands/salons_vocal/bringall.rs @@ -68,7 +68,6 @@ impl crate::commands::command_contract::CommandSpec for BringAllCommand { name: "bringall", category: "salons_vocal", params: "[salon_vocal_destination]", - summary: "Rassemble tous les vocaux", description: "Deplace tous les membres actuellement en vocal vers un salon cible.", examples: &["+bringall #Event", "+bringall"], default_aliases: &["ball", "vbring"], diff --git a/src/commands/salons_vocal/hide.rs b/src/commands/salons_vocal/hide.rs index ac99034..4ef338b 100644 --- a/src/commands/salons_vocal/hide.rs +++ b/src/commands/salons_vocal/hide.rs @@ -39,7 +39,6 @@ impl crate::commands::command_contract::CommandSpec for HideCommand { name: "hide", category: "salons_vocal", params: "[salon]", - summary: "Cache un salon", description: "Retire la visibilite d un salon.", examples: &["+hide", "+hide #general"], default_aliases: &["hd"], diff --git a/src/commands/salons_vocal/hideall.rs b/src/commands/salons_vocal/hideall.rs index 4eb039b..c2c95e5 100644 --- a/src/commands/salons_vocal/hideall.rs +++ b/src/commands/salons_vocal/hideall.rs @@ -40,7 +40,6 @@ impl crate::commands::command_contract::CommandSpec for HideallCommand { name: "hideall", category: "salons_vocal", params: "aucun", - summary: "Cache tous les salons", description: "Retire la visibilite de tous les salons.", examples: &["+hideall"], default_aliases: &["hda"], diff --git a/src/commands/salons_vocal/lock.rs b/src/commands/salons_vocal/lock.rs index 2f97324..2c3a878 100644 --- a/src/commands/salons_vocal/lock.rs +++ b/src/commands/salons_vocal/lock.rs @@ -39,7 +39,6 @@ impl crate::commands::command_contract::CommandSpec for LockCommand { name: "lock", category: "salons_vocal", params: "[salon]", - summary: "Ferme un salon", description: "Verrouille un salon texte ou vocal.", examples: &["+lock", "+lock #general"], default_aliases: &["lk"], diff --git a/src/commands/salons_vocal/lockall.rs b/src/commands/salons_vocal/lockall.rs index d10eccc..ba8c25c 100644 --- a/src/commands/salons_vocal/lockall.rs +++ b/src/commands/salons_vocal/lockall.rs @@ -38,7 +38,6 @@ impl crate::commands::command_contract::CommandSpec for LockallCommand { name: "lockall", category: "salons_vocal", params: "aucun", - summary: "Ferme tous les salons", description: "Verrouille tous les salons du serveur.", examples: &["+lockall"], default_aliases: &["lka"], diff --git a/src/commands/salons_vocal/slowmode.rs b/src/commands/salons_vocal/slowmode.rs index 31e0a82..fd96c55 100644 --- a/src/commands/salons_vocal/slowmode.rs +++ b/src/commands/salons_vocal/slowmode.rs @@ -116,7 +116,6 @@ impl crate::commands::command_contract::CommandSpec for SlowmodeCommand { name: "slowmode", category: "salons_vocal", params: " [salon]", - summary: "Change le mode lent d'un salon", description: "Modifie la duree du mode lent sur un salon texte (maximum 6 heures).", examples: &["+slowmode 10s", "+slowmode 2m #general", "+slowmode off"], default_aliases: &["sm"], diff --git a/src/commands/salons_vocal/tempvoc.rs b/src/commands/salons_vocal/tempvoc.rs index 095f64f..de863a8 100644 --- a/src/commands/salons_vocal/tempvoc.rs +++ b/src/commands/salons_vocal/tempvoc.rs @@ -450,7 +450,6 @@ impl crate::commands::command_contract::CommandSpec for TempvocCommand { name: "tempvoc", category: "salons_vocal", params: "[cmd]", - summary: "Configure les vocaux temporaires", description: "Affiche le menu de configuration du systeme de vocaux temporaires.", examples: &["+tempvoc", "+tempvoc cmd", "+help tempvoc"], default_aliases: &[], diff --git a/src/commands/salons_vocal/tempvoc_cmd.rs b/src/commands/salons_vocal/tempvoc_cmd.rs index 7ca414d..b98c0ee 100644 --- a/src/commands/salons_vocal/tempvoc_cmd.rs +++ b/src/commands/salons_vocal/tempvoc_cmd.rs @@ -25,7 +25,6 @@ impl crate::commands::command_contract::CommandSpec for TempvocCmdCommand { name: "tempvoc_cmd", category: "salons_vocal", params: "aucun", - summary: "Affiche laide tempvoc", description: "Affiche un rappel des commandes et du fonctionnement de tempvoc.", examples: &["+tempvoc cmd", "+help tempvoc_cmd"], default_aliases: &[], diff --git a/src/commands/salons_vocal/unhide.rs b/src/commands/salons_vocal/unhide.rs index 12878ae..8da792b 100644 --- a/src/commands/salons_vocal/unhide.rs +++ b/src/commands/salons_vocal/unhide.rs @@ -39,7 +39,6 @@ impl crate::commands::command_contract::CommandSpec for UnhideCommand { name: "unhide", category: "salons_vocal", params: "[salon]", - summary: "Affiche un salon", description: "Rend a nouveau visible un salon.", examples: &["+unhide", "+unhide #general"], default_aliases: &["uhd"], diff --git a/src/commands/salons_vocal/unhideall.rs b/src/commands/salons_vocal/unhideall.rs index 003c918..3d2b029 100644 --- a/src/commands/salons_vocal/unhideall.rs +++ b/src/commands/salons_vocal/unhideall.rs @@ -40,7 +40,6 @@ impl crate::commands::command_contract::CommandSpec for UnhideallCommand { name: "unhideall", category: "salons_vocal", params: "aucun", - summary: "Affiche tous les salons", description: "Rend visibles tous les salons du serveur.", examples: &["+unhideall"], default_aliases: &["uhda"], diff --git a/src/commands/salons_vocal/unlock.rs b/src/commands/salons_vocal/unlock.rs index 27b4cbe..28de477 100644 --- a/src/commands/salons_vocal/unlock.rs +++ b/src/commands/salons_vocal/unlock.rs @@ -39,7 +39,6 @@ impl crate::commands::command_contract::CommandSpec for UnlockCommand { name: "unlock", category: "salons_vocal", params: "[salon]", - summary: "Ouvre un salon", description: "Deverrouille un salon texte ou vocal.", examples: &["+unlock", "+unlock #general"], default_aliases: &["ulk"], diff --git a/src/commands/salons_vocal/unlockall.rs b/src/commands/salons_vocal/unlockall.rs index 9ab7d98..c4ac957 100644 --- a/src/commands/salons_vocal/unlockall.rs +++ b/src/commands/salons_vocal/unlockall.rs @@ -38,7 +38,6 @@ impl crate::commands::command_contract::CommandSpec for UnlockallCommand { name: "unlockall", category: "salons_vocal", params: "aucun", - summary: "Ouvre tous les salons", description: "Deverrouille tous les salons du serveur.", examples: &["+unlockall"], default_aliases: &["ulka"], diff --git a/src/commands/salons_vocal/voicekick.rs b/src/commands/salons_vocal/voicekick.rs index 62f1b1e..e31a0fc 100644 --- a/src/commands/salons_vocal/voicekick.rs +++ b/src/commands/salons_vocal/voicekick.rs @@ -43,7 +43,6 @@ impl crate::commands::command_contract::CommandSpec for VoiceKickCommand { name: "voicekick", category: "salons_vocal", params: "", - summary: "Deconnecte des membres du vocal", description: "Deconnecte un ou plusieurs membres de leur salon vocal actuel.", examples: &["+voicekick @User", "+voicekick @U1 @U2"], default_aliases: &["vk", "vdisconnect"], diff --git a/src/commands/salons_vocal/voicemove.rs b/src/commands/salons_vocal/voicemove.rs index f330ce2..e44de70 100644 --- a/src/commands/salons_vocal/voicemove.rs +++ b/src/commands/salons_vocal/voicemove.rs @@ -68,7 +68,6 @@ impl crate::commands::command_contract::CommandSpec for VoiceMoveCommand { name: "voicemove", category: "salons_vocal", params: " ", - summary: "Deplace les membres vocaux", description: "Deplace tous les membres d'un salon vocal vers un autre salon.", examples: &["+voicemove #General #Event"], default_aliases: &["vmove", "vmoveall"],