-
Notifications
You must be signed in to change notification settings - Fork 42
Ajout de variables #211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ElBaguetto
wants to merge
6
commits into
main
Choose a base branch
from
ajout-de-variables
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Ajout de variables #211
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
b9abc93
📝 Création de la page variables
ElBaguetto cb6b216
feat: add structure + basic variables
ElBaguetto ca7d218
feat: add variables
ElBaguetto bafd080
feat: add + rename some vars
ElBaguetto 2e785c0
fix: fix from review
ElBaguetto 95d1aee
Update docs/3.autres/6.variables.md
DraftProducts File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,322 @@ | ||
| --- | ||
| title: Variables | ||
| description: Le système de variables permet d'insérer dynamiquement des informations contextuelles dans vos messages. Ces variables suivent un format spécifique et peuvent être enrichies avec des paramètres et modificateurs pour personnaliser l'affichage. | ||
| navigation.icon: 'twemoji:dna' | ||
| contributors: ['elbaguetto'] | ||
| updatedAt: '2025-10-23' | ||
| --- | ||
|
|
||
| ## Syntaxe générale | ||
|
|
||
| - `{variable}` : Variable simple | ||
| - `{variable:paramètres}` : Variable avec paramètres | ||
| - `{variable?modifieur}` : Variable avec modificateur | ||
| - `{variable:paramètres?modifieur}` : Variable avec paramètres et modificateur | ||
|
|
||
| ## Paramètres | ||
|
|
||
| Les paramètres permettent d'affiner le comportement d'une variable en lui transmettant des informations complémentaires. Ils s'ajoutent après le nom de la variable, chacun étant précédé du symbole deux-points `:`. | ||
|
|
||
| Chaque paramètre suit la structure `nom=valeur`. Lorsque vous souhaitez utiliser plusieurs paramètres simultanément, ajoutez simplement un nouveau `:` suivi du paramètre suivant. | ||
|
|
||
| **Exemple :** | ||
|
|
||
| - `{level.rank:user_id=123456789012345678}` | ||
| - `{user.created_at:user_id=123456789012345678:format=DD MMMM YYYY}` | ||
|
|
||
| ## Modificateurs | ||
|
|
||
| Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajoutent après le nom de la variable ou après le ou les paramètres, précédés du symbole point d'interrogation `?`. | ||
|
|
||
| ::hint{ type="warning" } | ||
| Les modificateurs ne sont pas cumulables sur une même variable. | ||
| :: | ||
|
|
||
| | Modificateur | Description | Exemple | | ||
| |--------------|-------------|---------| | ||
| | `uppercase` | Texte en majuscules | `{user.username?uppercase}` → DRAFTBOT | | ||
| | `lowercase` | Texte en minuscules | `{server.name?lowercase}` → draftbot support | | ||
| | `capitalize` | Première lettre majuscule | `{user.username?capitalize}` → Draftbot | | ||
| | `ordinal` | Nombre ordinal | `{level.rank?ordinal}` → 3ème | | ||
| | `maxLength=N` | Limitation de longueur | `{suggest.title?maxLength=50}` | | ||
| | `formatNumber` | Format de nombre localisé | `{money?formatNumber}` → 1 234 | | ||
|
|
||
| ## Variables de base | ||
|
|
||
| ### Utilisateur | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{user}` | Mention de l'utilisateur | @draftbot | | ||
| | `{user.id}` | Identifiant de l'utilisateur | 318312854816161792 | | ||
| | `{user.username}` | Pseudo du compte | draftbot | | ||
| | `{user.globalname}` | Nom affiché global | DraftBot | | ||
| | `{user.nickname}` | Surnom sur le serveur | ❕DraftBot | | ||
| | `{user.tag}` | Tag (déprécié) | draftbot#0535 | | ||
ElBaguetto marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| | `{user.rolecount}` | Nombre de rôles | 2 | | ||
| | `{user.created_at}` | Date de création du compte | 28/05/2017 | | ||
| | `{user.joined_at}` | Date d'arrivée sur le serveur | 11/03/2018 | | ||
|
|
||
| **Paramètres :** | ||
| - `user_id` : Identifiant d'un utilisateur. | ||
| - `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`. | ||
|
|
||
| ### Serveur | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{server}` | Nom du serveur | DraftBot Support | | ||
| | `{server.id}` | Identifiant du serveur | 422112414964908042 | | ||
| | `{server.name}` | Nom du serveur | DraftBot Support | | ||
| | `{server.description}` | Description du serveur | Serveur officiel et Support de DraftBot | | ||
| | `{server.membercount}` | Nombre total de membres | 65536 | | ||
| | `{server.humancount}` | Nombre de membres humains | 65535 | | ||
| | `{server.botcount}` | Nombre de bots | 1 | | ||
| | `{server.rolecount}` | Nombre de rôles | 69 | | ||
| | `{server.channelcount}` | Nombre de salons | 20 | | ||
| | `{server.boosts.level}` | Niveau de boosts du serveur | 2 | | ||
| | `{server.boosts.count}` | Nombre de boosts du serveur | 27 | | ||
| | `{server.created_at}` | Date de création du serveur | 10/03/2018 | | ||
|
|
||
| **Paramètres :** | ||
| - `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`. | ||
|
|
||
| ### Salon | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{channel}` | Mention du salon | #bavardage➖🐱 | | ||
| | `{channel.id}` | Identifiant du salon | 700375095297835096 | | ||
| | `{channel.name}` | Nom du salon | bavardage➖🐱 | | ||
| | `{channel.created_at}` | Date de création | 16/04/2020 | | ||
| | `{channel.parent}` | Mention du salon parent | #▬▬▬ Communauté ▬▬▬ | | ||
| | `{channel.parent.id}` | ID du salon parent | 700370977019658332 | | ||
| | `{channel.parent.name}` | Nom du salon parent | ▬▬▬ Communauté ▬▬▬ | | ||
| | `{channel.parent.created_at}` | Date de création parent | 16/04/2020 | | ||
|
|
||
| **Paramètres :** | ||
| - `channel_id` : Identifiant d'un salon. | ||
| - `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`. | ||
|
|
||
| ### Rôle | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{role}` | Mention du rôle | @Equipe | | ||
| | `{role.id}` | ID du rôle | 698990778084491314 | | ||
| | `{role.name}` | Nom du rôle | Equipe | | ||
| | `{role.color}` | Couleur hexadécimale | #FD9A60 | | ||
| | `{role.position}` | Position du rôle | 5 | | ||
| | `{role.membercount}` | Nombre de membres | 13 | | ||
| | `{role.created_at}` | Date de création | 12/04/2020 | | ||
|
|
||
| **Paramètres :** | ||
| - `role_id` : Identifiant d'un rôle. | ||
| - `format` : Format d'affichage de la date (par défaut : `L`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY`. | ||
|
|
||
| ::hint{ type="warning" } | ||
| Le paramètre `role_id` est obligatoire. | ||
| :: | ||
|
|
||
| ### Temporalité | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{date}` | Date actuelle | 28/05/2017 | | ||
| | `{time}` | Heure actuelle | 11:01 | | ||
| | `{timestamp}` | Timestamp Discord | 1495962098 | | ||
|
|
||
| **Paramètres (date et time) :** | ||
| - `format` : Format d'affichage de la date ou de l'heure (par défaut : `L` ou `LT`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY` ou `hh:mm a`. La liste des différents formats est disponible sur la [documentation](https://day.js.org/docs/en/display/format) de la bibliothèque **dayjs**. | ||
|
|
||
| **Paramètres (timestamp) :** | ||
| - `style` : Style d'affichage du timestamp. Vous pouvez retrouver la liste complète sur la [documentation](https://discord.com/developers/docs/reference#message-formatting-timestamp-styles) de Discord. | ||
|
|
||
| ## Variables par modules | ||
|
|
||
| ### Économie | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{money}` | Argent | 1 234 | | ||
| | `{money.record}` | Record d'argent | 5 678 | | ||
| | `{money.rank}` | Position dans le classement | 3 | | ||
| | `{money.currency_icon}` | Icône de la devise | 💰 | | ||
| | `{money.next_user}` | Membre précédent dans le classement | @DraftBot | | ||
| | `{money.next_user.id}` | Identifiant du membre précédent dans le classement | 318312854816161792 | | ||
| | `{money.next_user.money}` | Quantité d'argent du membre précédent dans le classement | 2 500 | | ||
| | `{money.next_user.money_diff}` | Différence d'argent avec le membre précédent dans le classement | 2 500 | | ||
| | `{money.to_position:position=N}` | Argent nécessaire pour atteindre la position N dans le classement | 1 200 | | ||
|
|
||
| **Paramètres :** | ||
| - `user_id` : Identifiant d'un utilisateur. | ||
|
|
||
| ### Niveaux | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{level}` | Niveau | 25 | | ||
| | `{level.rank}` | Position dans le classement | 5 | | ||
| | `{xp}` | Expérience totale | 12 500 | | ||
| | `{xp.current_level}` | Expérience du niveau actuel | 250 | | ||
| | `{xp.next_level}` | Expérience nécessaire pour atteindre le niveau suivant | 750 | | ||
| | `{xp.to_level:level=N}` | Expérience nécessaire pour atteindre le niveau N | 15 000 | | ||
| | `{xp.next_user}` | Membre précédent dans le classement | @DraftBot | | ||
| | `{xp.next_user.id}` | Identifiant du membre précédent dans le classement | 318312854816161792 | | ||
| | `{xp.next_user.xp}` | Quantité d'expériene du membre précédent dans le classement | 2 500 | | ||
| | `{xp.next_user.xp_diff}` | Différence d'expérience avec le membre précédent dans le classement | 15 389 | | ||
| | `{xp.next_user.level}` | Niveau du membre précédent dans le classement | 2 500 | | ||
| | `{xp.next_user.level_diff}` | Différence de niveaux avec le membre précédent dans le classement | 2 | | ||
| | `{xp.to_position:position=N}` | Expérience nécessaire pour atteindre la position N dans le classement | 5,000 | | ||
|
|
||
| **Paramètres :** | ||
| - `user_id` : Identifiant d'un utilisateur. | ||
|
|
||
| ### Récompenses de niveaux | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{level.reward}` | Récompense reçue | Rôle VIP | | ||
| | `{level.reward.next_level}` | Niveaux avant la prochaine récompense | 5 | | ||
| | `{level.reward.next_xp}` | Expérience avant la prochaine récompense | 2 500 | | ||
|
|
||
| ::hint{ type="info" } | ||
| Les variables de [niveaux](#niveaux) sont aussi disponibles dans les messages de récompenses de niveaux. | ||
| :: | ||
|
|
||
| ### Tickets | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{ticket.number}` | Numéro de ticket | 42 | | ||
|
|
||
| ### Suggestions | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{suggest.title}` | Titre de la suggestion | Système de questionnaire | | ||
| | `{suggest.count}` | Nombre de suggestions en cours | 3 | | ||
| | `{suggest.max}` | Nombre maximum de suggestions | 5 | | ||
|
|
||
| ### Récompenses de suggestions | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{suggest.reward}` | Récompense reçue | 100 💰 | | ||
| | `{suggest.target.type}` | Type de statut | acceptées | | ||
| | `{suggest.target.count}` | Nombre de suggestions | 10 | | ||
|
|
||
| ### Commandes personnalisées | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{birthday.date}` | Date de naissance | 15 mars | | ||
| | `{birthday.next}` | Prochain anniversaire | Dans 2 mois | | ||
| | `{age}` | Âge de l'utilisateur | 25 ans | | ||
|
|
||
| **Paramètres :** | ||
| - `user_id` : Identifiant d'un utilisateur. | ||
|
|
||
| ::hint{ type="info" } | ||
| Les variables d'[économie](#economie) et de [niveaux](#niveaux) sont aussi disponibles dans les commandes personnalisées. | ||
| :: | ||
|
|
||
| ### Starboards | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{starboard.emoji}` | Emoji du starboard | ⭐ | | ||
| | `{starboard.emoji.count}` | Nombre de réactions | 15 | | ||
| | `{starboard.message.url}` | Lien du message | https://discord.com/... | | ||
|
|
||
| ### Signalements | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{report.target}` | Membre signalé | @draftman | | ||
| | `{report.target_message.url}` | Lien du message signalé | https://discord.com/... | | ||
| | `{report.reason}` | Motif du signalement | Spam | | ||
|
|
||
| ### Anniversaire | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{birthday.user}` | Membre(s) fêtant leur anniversaire | @John, @Jane | | ||
| | `{birthday.role}` | Rôle temporaire d'anniversaire | @Anniversaire | | ||
| | `{birthday.gifts}` | Récompenses données | 500 💰, Rôle VIP | | ||
|
|
||
| ### Statistiques | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{stats.count}` | Statistique du salon | 1 250 | | ||
|
|
||
| ::hint{ type="warning" } | ||
| Cette variable doit obligatoirement être présente dans le format du salon de statistiques. | ||
| :: | ||
|
|
||
| ### Salons vocaux temporaires | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{privateroom.index}` | Numérotation du salon | 5 | | ||
| | `{privateroom.random_word}` | Mot aléatoire prédéfini | trampoline | | ||
| | `{privateroom.custom_word}` | Mot aléatoire personnalisé | licorne | | ||
|
|
||
| ### Route de l'infini | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{infinite_road.number}` | Nombre indiqué | 4956 | | ||
| | `{infinite_road.discussion}` | Discussion du membre (s'il y en a une) | bientôt les 5k | | ||
|
|
||
| ### Récompenses route de l'infini | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{infinite_road.reward}` | Récompense gagnée lors du passage d'un palier | 5 000 💰 | | ||
|
|
||
| ## Variables de notifications sociales | ||
|
|
||
| ### YouTube | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{video.author}` | Nom de la chaîne | DraftBot | | ||
| | `{video.title}` | Titre de la vidéo | Comment utiliser DraftBot | | ||
| | `{video.url}` | Lien de la vidéo | https://youtube.com/... | | ||
|
|
||
| ### Twitch | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{stream.author}` | Nom de la chaîne | StreamerName | | ||
| | `{stream.title}` | Titre du live | Live de développement | | ||
| | `{stream.game}` | Jeu en live | Just Chatting | | ||
| | `{stream.url}` | Lien du live | https://twitch.tv/... | | ||
| | `{stream.start_at}` | Date de début | il y a 2 heures | | ||
| | `{stream.tags}` | Tags du live | français, développement | | ||
|
|
||
| **Paramètres (start_at) :** | ||
| - `format` : Format d'affichage de la date ou de l'heure (par défaut : `relative`). Accepte `relative` pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme `DD/MM/YYYY` ou `hh:mm a`. La liste des différents formats est disponible sur la [documentation](https://day.js.org/docs/en/display/format) de la bibliothèque **dayjs**. | ||
|
|
||
| **Paramètres (tags) :** | ||
|
|
||
| - `separator` : Caractères de séparation des différents tags du stream (par défaut : `, `) | ||
|
|
||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{post.subreddit}` | Nom du subreddit | r/discord | | ||
| | `{post.title}` | Titre du post | Question sur DraftBot | | ||
| | `{post.description}` | Description du post | Comment configurer... | | ||
| | `{post.url}` | Lien du post | https://reddit.com/... | | ||
|
|
||
| ### Flux RSS | ||
|
|
||
| | Variable | Description | Exemple | | ||
| |----------|-------------|---------| | ||
| | `{feed.name}` | Nom du flux | Blog DraftBot | | ||
| | `{feed.url}` | Lien du flux | https://draftbot.fr/... | | ||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.