+ {{ article.title.fr }} + {{ article.title.en }} +
+ + {# Abstract #} + {% if article.abstract %} ++ {{ article.abstract.fr }} + {{ article.abstract.en }} +
+ {% endif %} + + {# Meta: date + authors #} + +diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ba7e4df --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,161 @@ +# Moddy Docs — CLAUDE.md + +Documentation de référence pour les sessions Claude Code sur ce dépôt. + +## Stack technique + +- **Eleventy (11ty) v2** — SSG +- **Nunjucks** — templates HTML +- **Lit + TypeScript** — web components +- **@material/web** — composants Material Design 3 +- **esbuild** — bundler TypeScript +- **wireit** — orchestration du build +- **Vercel** — hébergement (vercel.json à la racine) + +## Structure du dépôt + +``` +/ +├── content/ ← Contenu (articles, auteurs, labels, légal) +│ ├── articles/ ← {id}/meta.json · fr.md · en.md · assets/ +│ ├── authors/ ← {discord-id}/meta.json +│ ├── labels/ ← {id}/meta.json +│ └── legal/ ← {id}/meta.json · fr.md · en.md +├── docs/ ← Documentation technique du projet +├── guide-syntaxe/ ← Guide syntaxe Moddy (référence) +├── site/ ← Projet Eleventy +│ ├── eleventy.config.cjs +│ ├── esbuild.config.mjs +│ ├── package.json +│ ├── src/ +│ │ ├── components/ ← Composants Lit custom +│ │ ├── hydration-entrypoints/ ← Entrypoints pour lit-island +│ │ ├── pages/ ← Scripts JS par page +│ │ ├── inline/ ← Scripts inlinés dans
+│ │ └── utils/ ← Utilitaires partagés +│ └── site/ ← Dossier d'entrée Eleventy +│ ├── _includes/ ← Layouts Nunjucks +│ ├── _data/ ← Données globales Eleventy +│ ├── css/ ← Feuilles de style +│ ├── images/ ← Assets statiques +│ ├── articles/ ← Templates de pagination articles +│ ├── collections/ ← Templates de pagination labels +│ ├── authors/ ← Templates de pagination auteurs +│ └── legal/ ← Templates pages légales +└── vercel.json ← Config Vercel (hébergement + redirections) +``` + +## URLs + +| Type | URL | +|------|-----| +| Article | `/articles/{article-id}` | +| Label/Collection | `/collections/{label-id}` | +| Auteur | `/authors/{author-id}` | +| Page légale | `/legal/{id}` | +| Raccourci | `/{id}` → redirige vers la bonne URL (vercel.json) | + +## Format du contenu + +### Articles (`content/articles/{id}/`) + +- `meta.json` — métadonnées (titre, auteurs, date, résumé, bannière, visibilité, labels) +- `fr.md` — contenu Markdown français +- `en.md` — contenu Markdown anglais +- `assets/` — assets spécifiques à l'article + +**Niveaux de visibilité :** +1. Indexation normale (apparaît partout) +2. Restreint (barre de recherche + pages label/auteur uniquement) +3. Lien direct uniquement (exclu de l'index, noindex meta) + +**Format `meta.json` :** +```json +{ + "id": "quick-start", + "title": { "fr": "...", "en": "..." }, + "authors": ["discord_id_1"], + "created_at": "2025-12-29", + "abstract": { "fr": "...", "en": "..." }, + "banner": null, + "visibility": 1, + "labels": ["documentation"] +} +``` + +### Auteurs (`content/authors/{discord-id}/`) + +- `meta.json` — profil auteur + +Lorsque `avatar`, `banner_url`, ou `avatar_decoration` vaut `"DISCORD"`, la valeur est auto-récupérée depuis `api.moddy.app/users/{discord_id}` au moment du build. + +**Format `meta.json` :** +```json +{ + "id": "123456789012345678", + "discord_id": "123456789012345678", + "username": "johndoe", + "avatar": "DISCORD", + "post": { "fr": "Product Manager", "en": "Product Manager" }, + "bio": { "fr": "...", "en": "..." }, + "banner_color": "#FF5733", + "links": [ + { "name": "Twitter", "url": "https://twitter.com/johndoe", "icon": "" } + ] +} +``` + +### Labels (`content/labels/{id}/`) + +- `meta.json` — nom bilingue et couleur hex + +**Format `meta.json` :** +```json +{ + "id": "documentation", + "name": { "fr": "Documentation", "en": "Documentation" }, + "color": "#4285F4" +} +``` + +### Légal (`content/legal/{id}/`) + +- `meta.json` — métadonnées +- `fr.md` — contenu français +- `en.md` — contenu anglais + +## i18n + +Langues supportées : `fr` (français) et `en` (anglais). Défaut : `fr`. + +La langue est détectée depuis le navigateur (`navigator.language`) et stockée dans `localStorage` sous la clé `moddy-docs-lang`. L'utilisateur peut changer via le sélecteur de langue dans la barre du haut. + +Le script `site/src/inline/apply-saved-lang.ts` est inliné dans `` et applique la langue **avant** le rendu du corps de page (pas de flash). + +Côté CSS : `[data-lang="fr"] .lang-en { display: none }` et vice versa. + +## Thème + +Le site utilise le thème dynamique Material Design 3. La couleur seed génère une palette M3 complète via `@material/material-color-utilities`. + +- **Modes** : Light / Dark / Auto +- **Mode neutre** : palette neutral prédéfinie (seed `#607D8B`), non personnalisée +- **Thèmes** : Moddy par défaut (`#ECAA2E`) + personnalisé + neutre +- Stocké dans `localStorage` sous la clé `material-theme` + +## Build + +```bash +cd site +npm install +npm run build:prod # Build de production +npm run dev # Serveur de développement +``` + +## Ajouter du contenu + +Voir `docs/CONTENT-GUIDE.md`. + +## Redirections Vercel + +Les URLs raccourcies `/{id}` sont configurées dans `vercel.json` à la racine. Ajouter une redirection pour chaque nouvel article, auteur ou label. diff --git a/content/articles/moderation-setup/en.md b/content/articles/moderation-setup/en.md new file mode 100644 index 0000000..6eff633 --- /dev/null +++ b/content/articles/moderation-setup/en.md @@ -0,0 +1,110 @@ +# Setting Up Auto-Moderation + +Moddy's auto-moderation allows you to protect your server from spam, inappropriate messages, and more. + +## Prerequisites + +- Moddy must be invited to your server +- You need the **Manage Server** permission +- Moddy needs **Timeout Members**, **Manage Messages**, and **Kick Members** permissions + +## Enabling Auto-Moderation + +To enable auto-moderation: + +``` +/automod enable +``` + +To disable it: + +``` +/automod disable +``` + +## Rule Configuration + +### Anti-Spam + +Anti-spam automatically blocks users who send too many messages in a short time. + +``` +/automod spam sensitivity:medium action:mute duration:5m +``` + +Available sensitivity levels: `low`, `medium`, `high`, `extreme` + +### Word Filter + +Add words or phrases to block: + +``` +/automod words add word:"bad-word" action:delete +``` + +Available actions: + +| Action | Description | +|--------|-------------| +| `delete` | Deletes the message | +| `warn` | Warns the user | +| `mute` | Mutes the user | +| `kick` | Kicks the user | +| `ban` | Bans the user | + +### Discord Invite Filter + +Automatically block Discord invites from other servers: + +``` +/automod invites enable action:delete +``` + +Add exceptions for partner servers: + +``` +/automod invites whitelist server-id:123456789 +``` + +## Moderation Logs + +Set up a channel to receive auto-moderation logs: + +``` +/logs setup type:automod channel:#mod-logs +``` + +## Test Mode + +Before enabling sanctions, test your configuration in observation mode: + +``` +/automod mode:observation +``` + +In observation mode, Moddy logs violations without applying sanctions. + +## Premium Features + +> These features require a Moddy Premium subscription. + +- **AI Anti-toxicity**: detects toxic messages using artificial intelligence +- **Malicious link detection**: blocks phishing and malware links +- **Point system**: automatic sanction point assignment +- **Extended history**: 90 days of moderation history + +## Troubleshooting + +**Moddy isn't sanctioning despite configuration?** + +1. Check that Moddy has the necessary permissions +2. Check that automod is enabled with `/automod status` +3. Make sure Moddy's role is above the roles of members to be sanctioned + +**Administrators are being sanctioned?** + +Add roles to exclude: + +``` +/automod exempt role:@Admin +``` diff --git a/content/articles/moderation-setup/fr.md b/content/articles/moderation-setup/fr.md new file mode 100644 index 0000000..68aa3fd --- /dev/null +++ b/content/articles/moderation-setup/fr.md @@ -0,0 +1,110 @@ +# Configurer la modération automatique + +La modération automatique de Moddy vous permet de protéger votre serveur contre le spam, les messages inappropriés et bien plus encore. + +## Prérequis + +- Moddy doit être invité sur votre serveur +- Vous devez avoir la permission **Gérer le serveur** +- Moddy doit avoir les permissions **Modérer les membres**, **Gérer les messages** et **Expulser des membres** + +## Activer la modération automatique + +Pour activer la modération automatique, utilisez la commande : + +``` +/automod enable +``` + +Pour la désactiver : + +``` +/automod disable +``` + +## Configuration des règles + +### Anti-spam + +L'anti-spam bloque automatiquement les utilisateurs qui envoient trop de messages en peu de temps. + +``` +/automod spam sensitivity:moyen action:mute duree:5m +``` + +Niveaux de sensibilité disponibles : `faible`, `moyen`, `eleve`, `extreme` + +### Filtre de mots + +Ajoutez des mots ou expressions à bloquer : + +``` +/automod words add mot:"mauvais-mot" action:delete +``` + +Les actions disponibles sont : + +| Action | Description | +|--------|-------------| +| `delete` | Supprime le message | +| `warn` | Avertit l'utilisateur | +| `mute` | Mute l'utilisateur | +| `kick` | Expulse l'utilisateur | +| `ban` | Bannit l'utilisateur | + +### Filtre d'invitations Discord + +Bloquez automatiquement les invitations Discord provenant d'autres serveurs : + +``` +/automod invites enable action:delete +``` + +Vous pouvez ajouter des exceptions pour vos serveurs partenaires : + +``` +/automod invites whitelist serveur-id:123456789 +``` + +## Logs de modération + +Configurez un salon pour recevoir les logs de modération automatique : + +``` +/logs setup type:automod salon:#logs-mod +``` + +## Mode test + +Avant d'activer les sanctions, testez votre configuration en mode observation : + +``` +/automod mode:observation +``` + +En mode observation, Moddy journalise les infractions sans appliquer de sanctions. + +## Fonctionnalités Premium + +> Ces fonctionnalités nécessitent un abonnement Moddy Premium. + +- **IA Anti-toxicité** : détecte les messages toxiques grâce à l'intelligence artificielle +- **Détection de liens malveillants** : bloque les liens de phishing et malware +- **Système de points** : attribution automatique de points de sanction +- **Historique étendu** : accès à 90 jours d'historique de modération + +## Dépannage + +**Moddy ne sanctionne pas malgré la configuration ?** + +1. Vérifiez que Moddy a les permissions nécessaires +2. Vérifiez que l'automod est activé avec `/automod status` +3. Assurez-vous que le rôle de Moddy est au-dessus des rôles des membres à sanctionner + +**Les administrateurs sont sanctionnés ?** + +Ajoutez les rôles à exclure avec : + +``` +/automod exempt role:@Admin +``` diff --git a/content/articles/moderation-setup/meta.json b/content/articles/moderation-setup/meta.json new file mode 100644 index 0000000..e7f5655 --- /dev/null +++ b/content/articles/moderation-setup/meta.json @@ -0,0 +1,16 @@ +{ + "id": "moderation-setup", + "title": { + "fr": "Configurer la modération automatique", + "en": "Setting Up Auto-Moderation" + }, + "authors": [], + "created_at": "2025-11-15", + "abstract": { + "fr": "Apprenez à configurer et personnaliser la modération automatique de Moddy pour protéger efficacement votre serveur Discord.", + "en": "Learn how to configure and customize Moddy's auto-moderation to effectively protect your Discord server." + }, + "banner": null, + "visibility": 1, + "labels": ["documentation", "moderation"] +} diff --git a/content/articles/premium-features/en.md b/content/articles/premium-features/en.md new file mode 100644 index 0000000..8c81b37 --- /dev/null +++ b/content/articles/premium-features/en.md @@ -0,0 +1,73 @@ +# Premium Features + +Moddy Premium unlocks advanced features for servers that want to go further. + +## Free vs Premium Comparison + +| Feature | Free | Premium | +|---------|------|----------| +| Reminders | 5 per user | Unlimited | +| Saved messages | 10 per user | 100 per user | +| Moderation history | 30 days | 90 days | +| Ticket categories | 3 | 10 | +| AI Anti-toxicity | ❌ | ✅ | +| Malicious link detection | ❌ | ✅ | +| Cross-server messages | 2 servers | Unlimited | +| Support | Standard | Priority | +| Premium badges | ❌ | ✅ | + +## Exclusive Features + +### AI Anti-Toxicity + +Artificial intelligence analyzes messages in real-time to detect: + +- Insults and hate speech +- Harassment and intimidation +- Sexually explicit content +- Radicalization + +Adjustable sensitivity from 1 to 10 to avoid false positives. + +### Premium Dashboard + +Access detailed statistics: + +- **Real-time activity charts** +- **Weekly reports** by email +- **Moderation trend analysis** +- **CSV export** of all data + +### Priority Support + +As a Premium subscriber, you benefit from: + +- Guaranteed response time < 4h +- Access to #premium-support channel on Discord +- Configuration assistance +- Access to beta features + +## Pricing + +Check current pricing at [moddy.app](https://moddy.app). + +## Activating Premium + +1. Go to [moddy.app](https://moddy.app) +2. Log in with Discord +3. Select your server +4. Choose your plan +5. Complete payment via Stripe + +Your server immediately benefits from Premium features. + +## Managing Your Subscription + +``` +/premium status +``` + +Displays your subscription information: +- Renewal date +- Enabled features +- Limit usage diff --git a/content/articles/premium-features/fr.md b/content/articles/premium-features/fr.md new file mode 100644 index 0000000..406de1c --- /dev/null +++ b/content/articles/premium-features/fr.md @@ -0,0 +1,73 @@ +# Fonctionnalités Premium + +Moddy Premium débloque des fonctionnalités avancées pour les serveurs qui souhaitent aller plus loin. + +## Comparaison Free vs Premium + +| Fonctionnalité | Gratuit | Premium | +|----------------|---------|----------| +| Rappels | 5 par utilisateur | Illimité | +| Messages sauvegardés | 10 par utilisateur | 100 par utilisateur | +| Historique de modération | 30 jours | 90 jours | +| Catégories de tickets | 3 | 10 | +| IA Anti-toxicité | ❌ | ✅ | +| Détection liens malveillants | ❌ | ✅ | +| Messages inter-serveurs | 2 serveurs | Illimité | +| Support | Standard | Prioritaire | +| Badges Premium | ❌ | ✅ | + +## Fonctionnalités exclusives + +### IA Anti-toxicité + +L'intelligence artificielle analyse les messages en temps réel pour détecter : + +- Insultes et discours haineux +- Harcèlement et intimidation +- Contenu sexuellement explicite +- Radicalisation + +Sensibilité ajustable de 1 à 10 pour éviter les faux positifs. + +### Tableau de bord Premium + +Accédez à des statistiques détaillées : + +- **Graphiques d'activité** en temps réel +- **Rapports hebdomadaires** par e-mail +- **Analyse des tendances** de modération +- **Export CSV** de toutes les données + +### Support Prioritaire + +En tant qu'abonné Premium, vous bénéficiez de : + +- Temps de réponse garantie < 4h +- Accès au salon #premium-support sur Discord +- Assistance à la configuration +- Accès aux fonctionnalités bêta + +## Tarifs + +Consultez les tarifs actuels sur [moddy.app](https://moddy.app). + +## Activer Premium + +1. Rendez-vous sur [moddy.app](https://moddy.app) +2. Connectez-vous avec Discord +3. Sélectionnez votre serveur +4. Choisissez votre formule +5. Complétez le paiement via Stripe + +Votre serveur bénéficie immédiatement des fonctionnalités Premium. + +## Gérer votre abonnement + +``` +/premium status +``` + +Affiche les informations de votre abonnement : +- Date de renouvellement +- Fonctionnalités activées +- Utilisation des limites diff --git a/content/articles/premium-features/meta.json b/content/articles/premium-features/meta.json new file mode 100644 index 0000000..e245d84 --- /dev/null +++ b/content/articles/premium-features/meta.json @@ -0,0 +1,16 @@ +{ + "id": "premium-features", + "title": { + "fr": "Fonctionnalités Premium", + "en": "Premium Features" + }, + "authors": [], + "created_at": "2025-10-01", + "abstract": { + "fr": "Découvrez toutes les fonctionnalités exclusives de Moddy Premium : IA, limites étendues, tableau de bord avancé et priorité au support.", + "en": "Discover all exclusive Moddy Premium features: AI, extended limits, advanced dashboard, and priority support." + }, + "banner": null, + "visibility": 1, + "labels": ["premium"] +} diff --git a/content/articles/quick-start/en.md b/content/articles/quick-start/en.md new file mode 100644 index 0000000..fd4f8d4 --- /dev/null +++ b/content/articles/quick-start/en.md @@ -0,0 +1,25 @@ +# Quick Start Guide + +> This document is under construction. 🚧 + +## Invite Moddy + +To get started with Moddy, invite it to your Discord server at [moddy.app](https://moddy.app). + +## Initial Setup + +Once Moddy is on your server, use `/setup` to configure the basic settings. + +## Available Modules + +Moddy offers several modules: + +- **Automatic Moderation** — detection and sanctioning of inappropriate behavior +- **Ticket System** — user support management +- **Role Management** — automatic role assignment and saving +- **Reminders** — scheduled personalized notifications +- **Cross-server Messages** — message broadcasting across multiple Discord servers + +## Need help? + +Join our [support server](https://moddy.app/support/) or send an email to [hello@moddy.app](mailto:hello@moddy.app). diff --git a/content/articles/quick-start/fr.md b/content/articles/quick-start/fr.md new file mode 100644 index 0000000..d16986c --- /dev/null +++ b/content/articles/quick-start/fr.md @@ -0,0 +1,25 @@ +# Guide de démarrage rapide + +> Ce document est en cours de construction. 🚧 + +## Inviter Moddy + +Pour commencer avec Moddy, invitez-le sur votre serveur Discord depuis [moddy.app](https://moddy.app). + +## Configuration initiale + +Une fois Moddy sur votre serveur, utilisez `/setup` pour configurer les paramètres de base. + +## Modules disponibles + +Moddy propose plusieurs modules : + +- **Modération automatique** — détection et sanction des comportements inappropriés +- **Système de tickets** — gestion du support utilisateur +- **Gestion des rôles** — attribution automatique et sauvegarde des rôles +- **Rappels** — notifications personnalisées planifiées +- **Messages inter-serveurs** — diffusion de messages sur plusieurs serveurs Discord + +## Besoin d'aide ? + +Rejoignez notre [serveur de support](https://moddy.app/support/) ou envoyez un email à [hello@moddy.app](mailto:hello@moddy.app). diff --git a/content/articles/quick-start/meta.json b/content/articles/quick-start/meta.json new file mode 100644 index 0000000..5027ba4 --- /dev/null +++ b/content/articles/quick-start/meta.json @@ -0,0 +1,16 @@ +{ + "id": "quick-start", + "title": { + "fr": "Guide de démarrage rapide", + "en": "Quick Start Guide" + }, + "authors": [], + "created_at": "2025-12-29", + "abstract": { + "fr": "Démarrez avec Moddy en quelques étapes simples.", + "en": "Get started with Moddy in a few simple steps." + }, + "banner": null, + "visibility": 1, + "labels": ["documentation"] +} diff --git a/content/articles/reminders/en.md b/content/articles/reminders/en.md new file mode 100644 index 0000000..b5c68cf --- /dev/null +++ b/content/articles/reminders/en.md @@ -0,0 +1,43 @@ +# Reminder System + +Moddy lets you create personalized reminders for yourself and your members. + +## Create a Reminder + +``` +/reminder create message:"Team meeting" in:2h +``` + +``` +/reminder create message:"Renew subscription" date:2026-01-01 time:09:00 +``` + +## Recurring Reminders + +> Requires Moddy Premium. + +``` +/reminder create message:"Weekly backup" recurrence:weekly day:monday time:08:00 +``` + +Available recurrences: `daily`, `weekly`, `monthly` + +## List Your Reminders + +``` +/reminder list +``` + +## Delete a Reminder + +``` +/reminder delete id:123 +``` + +## Server Reminders + +Admins can create reminders visible to the whole server: + +``` +/reminder server create message:"Planned maintenance" in:24h channel:#announcements +``` diff --git a/content/articles/reminders/fr.md b/content/articles/reminders/fr.md new file mode 100644 index 0000000..07b49e6 --- /dev/null +++ b/content/articles/reminders/fr.md @@ -0,0 +1,43 @@ +# Système de rappels + +Moddy vous permet de créer des rappels personnalisés pour vous et vos membres. + +## Créer un rappel + +``` +/reminder create message:"Réunion d'équipe" dans:2h +``` + +``` +/reminder create message:"Renouveler l'abonnement" date:2026-01-01 heure:09:00 +``` + +## Rappels récurrents + +> Nécessite Moddy Premium. + +``` +/reminder create message:"Backup hebdomadaire" récurrence:hebdomadaire jour:lundi heure:08:00 +``` + +Récurrences disponibles : `quotidien`, `hebdomadaire`, `mensuel` + +## Lister vos rappels + +``` +/reminder list +``` + +## Supprimer un rappel + +``` +/reminder delete id:123 +``` + +## Rappels de serveur + +Les administrateurs peuvent créer des rappels visibles par tout le serveur : + +``` +/reminder server create message:"Maintenance prévue" dans:24h salon:#annonces +``` diff --git a/content/articles/reminders/meta.json b/content/articles/reminders/meta.json new file mode 100644 index 0000000..42f8977 --- /dev/null +++ b/content/articles/reminders/meta.json @@ -0,0 +1,16 @@ +{ + "id": "reminders", + "title": { + "fr": "Système de rappels", + "en": "Reminder System" + }, + "authors": [], + "created_at": "2025-09-10", + "abstract": { + "fr": "Utilisez les rappels Moddy pour ne plus rien oublier : rappels ponctuels, récurrents et partagés avec votre serveur.", + "en": "Use Moddy reminders to never forget anything: one-time, recurring, and server-wide reminders." + }, + "banner": null, + "visibility": 2, + "labels": ["documentation"] +} diff --git a/content/articles/ticket-system/en.md b/content/articles/ticket-system/en.md new file mode 100644 index 0000000..a015d4c --- /dev/null +++ b/content/articles/ticket-system/en.md @@ -0,0 +1,97 @@ +# Ticket System + +Moddy's ticket system allows you to easily manage your members' support requests. + +## Creating a Ticket Panel + +A panel is a message with buttons to open a ticket. + +``` +/ticket panel create name:"Support" description:"Click a button to open a ticket." +``` + +### Adding Categories + +Each category corresponds to a type of request: + +``` +/ticket panel category add panel:Support name:"Bug" emoji:"🐛" color:red +/ticket panel category add panel:Support name:"Question" emoji:"❓" color:blue +/ticket panel category add panel:Support name:"Suggestion" emoji:"💡" color:green +``` + +### Sending the Panel + +``` +/ticket panel send panel:Support channel:#support +``` + +## Channel Configuration + +Configure where tickets will be created: + +``` +/ticket config category:"Open Tickets" +/ticket config archive:"Closed Tickets" +/ticket config logs:#ticket-logs +``` + +## Ticket Management + +### Staff Commands + +| Command | Description | +|---------|-------------| +| `/ticket close` | Closes the current ticket | +| `/ticket add @user` | Adds a member to the ticket | +| `/ticket remove @user` | Removes a member from the ticket | +| `/ticket assign @staff` | Assigns the ticket to a staff member | +| `/ticket priority high` | Sets the priority | +| `/ticket rename name` | Renames the ticket | + +### Transcripts + +Enable automatic transcripts to save conversations: + +``` +/ticket config transcripts:enable email:support@example.com +``` + +Transcripts are sent: +- By email (if configured) +- To the archive channel +- To the member who opened the ticket (DM) + +## Automatic Messages + +Customize automatically sent messages: + +``` +/ticket message opening text:"Hello {user}! Our team will respond within 24 hours." +/ticket message closing text:"Ticket closed. Thank you for contacting support!" +``` + +Available variables: `{user}`, `{ticket_id}`, `{date}`, `{staff}` + +## Staff Roles + +Define which roles can manage tickets: + +``` +/ticket staff add role:@Moderator +/ticket staff add role:@Support +``` + +## Statistics + +View your ticket system statistics: + +``` +/ticket stats +``` + +Results include: +- Tickets opened this month +- Average response time +- Tickets by category +- Most active staff members diff --git a/content/articles/ticket-system/fr.md b/content/articles/ticket-system/fr.md new file mode 100644 index 0000000..0648509 --- /dev/null +++ b/content/articles/ticket-system/fr.md @@ -0,0 +1,97 @@ +# Système de tickets + +Le système de tickets de Moddy vous permet de gérer facilement les demandes de support de vos membres. + +## Créer un panel de tickets + +Un panel est un message avec des boutons permettant d'ouvrir un ticket. + +``` +/ticket panel create nom:"Support" description:"Cliquez sur un bouton pour ouvrir un ticket." +``` + +### Ajouter des catégories + +Chaque catégorie correspond à un type de demande : + +``` +/ticket panel categorie add panel:Support nom:"Bug" emoji:"🐛" couleur:rouge +/ticket panel categorie add panel:Support nom:"Question" emoji:"❓" couleur:bleu +/ticket panel categorie add panel:Support nom:"Suggestion" emoji:"💡" couleur:vert +``` + +### Envoyer le panel + +``` +/ticket panel send panel:Support salon:#support +``` + +## Configuration des canaux + +Configurez où les tickets seront créés : + +``` +/ticket config categorie:"Tickets Ouverts" +/ticket config archive:"Tickets Fermés" +/ticket config logs:#logs-tickets +``` + +## Gestion des tickets + +### Commandes pour le staff + +| Commande | Description | +|----------|-------------| +| `/ticket close` | Ferme le ticket actuel | +| `/ticket add @user` | Ajoute un membre au ticket | +| `/ticket remove @user` | Retire un membre du ticket | +| `/ticket assign @staff` | Assigne le ticket à un membre du staff | +| `/ticket priority haute` | Définit la priorité | +| `/ticket rename nom` | Renomme le ticket | + +### Transcripts + +Activez les transcripts automatiques pour sauvegarder les conversations : + +``` +/ticket config transcripts:enable email:support@example.com +``` + +Les transcripts sont envoyés : +- Par e-mail (si configuré) +- Dans le salon d'archive +- Au membre qui a ouvert le ticket (DM) + +## Messages automatiques + +Personnalisez les messages envoyés automatiquement : + +``` +/ticket message ouverture texte:"Bonjour {user} ! Notre équipe vous répondra sous 24h." +/ticket message fermeture texte:"Ticket fermé. Merci d'avoir contacté le support !" +``` + +Variables disponibles : `{user}`, `{ticket_id}`, `{date}`, `{staff}` + +## Rôles du staff + +Définissez quels rôles peuvent gérer les tickets : + +``` +/ticket staff add role:@Modérateur +/ticket staff add role:@Support +``` + +## Statistiques + +Consultez les statistiques de votre système de tickets : + +``` +/ticket stats +``` + +Résultat : +- Tickets ouverts ce mois +- Temps de réponse moyen +- Tickets par catégorie +- Membres du staff les plus actifs diff --git a/content/articles/ticket-system/meta.json b/content/articles/ticket-system/meta.json new file mode 100644 index 0000000..5b0c597 --- /dev/null +++ b/content/articles/ticket-system/meta.json @@ -0,0 +1,16 @@ +{ + "id": "ticket-system", + "title": { + "fr": "Système de tickets", + "en": "Ticket System" + }, + "authors": [], + "created_at": "2025-11-20", + "abstract": { + "fr": "Mettez en place un système de support performant avec les tickets Moddy : panels personnalisés, catégories et transcripts automatiques.", + "en": "Set up a powerful support system with Moddy tickets: custom panels, categories, and automatic transcripts." + }, + "banner": null, + "visibility": 1, + "labels": ["documentation", "tickets"] +} diff --git a/content/articles/v1-changelog/en.md b/content/articles/v1-changelog/en.md new file mode 100644 index 0000000..5f6a474 --- /dev/null +++ b/content/articles/v1-changelog/en.md @@ -0,0 +1,74 @@ +# v1.0 — Moddy Changelog + +Welcome to **v1.0** of Moddy! This major update brings many improvements. + +## ✨ What's New + +### Overhauled Ticket System + +The ticket system has been completely redesigned: + +- **Customizable panels** with buttons and emojis +- **Multiple categories** per panel +- **Automatic transcripts** sent by email +- **Ticket assignment** to staff members +- **Priorities** (Low, Normal, High, Urgent) + +``` +/ticket panel create name:"Support" description:"Open a ticket here" +``` + +### Auto-Moderation v2 + +Auto-moderation has been completely rewritten: + +| Feature | Availability | +|---|---| +| Anti-spam | Everyone | +| Anti-flood | Everyone | +| Word filter | Everyone | +| Invite detection | Everyone | +| AI Anti-toxicity | Premium | +| Malicious link detection | Premium | + +### New Logging System + +Logs are now separated by category: + +- Moderation logs +- Member logs (join/leave) +- Message logs (edit/delete) +- Server logs (channels, roles) + +## 🔧 Improvements + +- **Performance**: response time reduced by 40% +- **Reminders**: recurrence support (daily, weekly, monthly) +- **Commands**: improved auto-completion +- **Dashboard**: complete admin panel redesign + +## 🐛 Bug Fixes + +- Fixed a bug where sanctions weren't saved on disconnect +- Fixed animated avatar display in embeds +- Fixed permission calculation for multiple roles +- Over 50 minor fixes + +## 🚨 Breaking Changes + +> These changes require action on your part. + +- `/warn` is now `/mod warn` — a `/warn` alias remains until v1.1 +- Log webhooks must be reconfigured with `/logs setup` + +## 📅 Coming Soon + +Here's what we're preparing for **v1.1**: + +- Discord Forum integration +- Advanced poll system +- Public API + +--- + +Thank you for using Moddy! For any questions, join our [support server](https://moddy.app/support/). diff --git a/content/articles/v1-changelog/fr.md b/content/articles/v1-changelog/fr.md new file mode 100644 index 0000000..dc51e5d --- /dev/null +++ b/content/articles/v1-changelog/fr.md @@ -0,0 +1,74 @@ +# v1.0 — Changelog Moddy + +Bienvenue dans la version **1.0** de Moddy ! Cette mise à jour majeure apporte de nombreuses améliorations. + +## ✨ Nouveautés + +### Système de tickets refondu + +Le système de tickets a été entièrement revu : + +- **Panels de tickets** personnalisables avec boutons et émoticons +- **Catégories** multiples par panel +- **Transcripts** automatiques envoyés par e-mail +- **Attribution** des tickets à des membres du staff +- **Priorités** (Basse, Normale, Haute, Urgente) + +``` +/ticket panel create nom:"Support" description:"Ouvrez un ticket ici" +``` + +### Modération automatique v2 + +La modération automatique a été entièrement réécrite : + +| Fonctionnalité | Disponibilité | +|---|---| +| Anti-spam | Tous | +| Anti-flood | Tous | +| Filtre de mots | Tous | +| Détection d'invitations | Tous | +| IA Anti-toxicité | Premium | +| Détection de liens malveillants | Premium | + +### Nouveau système de logs + +Les logs sont maintenant séparés par catégorie : + +- Logs de modération +- Logs de membres (join/leave) +- Logs de messages (edit/delete) +- Logs de serveur (channels, rôles) + +## 🔧 Améliorations + +- **Performances** : temps de réponse réduit de 40% +- **Rappels** : support des récurrences (quotidien, hebdomadaire, mensuel) +- **Commandes** : auto-complétion améliorée +- **Dashboard** : refonte complète du panneau d'administration + +## 🐛 Corrections + +- Correction du bug où les sanctions n'étaient pas enregistrées en cas de déconnexion +- Correction de l'affichage des avatars animés dans les embeds +- Correction du calcul des permissions pour les rôles multiples +- Plus de 50 corrections mineures + +## 🚨 Breaking Changes + +> Ces changements nécessitent une action de votre part. + +- La commande `/warn` est maintenant `/mod warn` — un alias `/warn` reste disponible jusqu'à la v1.1 +- Les webhooks de logs doivent être reconfigurés avec `/logs setup` + +## 📅 Prochainement + +Voici ce que nous préparons pour la **v1.1** : + +- Intégration Discord Forum +- Système de sondages avancés +- API publique + +--- + +Merci d'utiliser Moddy ! Pour toute question, rejoignez notre [serveur de support](https://moddy.app/support/). diff --git a/content/articles/v1-changelog/meta.json b/content/articles/v1-changelog/meta.json new file mode 100644 index 0000000..5452bd8 --- /dev/null +++ b/content/articles/v1-changelog/meta.json @@ -0,0 +1,16 @@ +{ + "id": "v1-changelog", + "title": { + "fr": "v1.0 — Changelog Moddy", + "en": "v1.0 — Moddy Changelog" + }, + "authors": [], + "created_at": "2025-12-01", + "abstract": { + "fr": "Découvrez toutes les nouveautés de la version 1.0 de Moddy : nouveau système de tickets, refonte de la modération et bien plus.", + "en": "Discover all the new features in Moddy v1.0: new ticket system, moderation overhaul, and much more." + }, + "banner": null, + "visibility": 1, + "labels": ["changelog"] +} diff --git a/content/labels/changelog/meta.json b/content/labels/changelog/meta.json new file mode 100644 index 0000000..fe03018 --- /dev/null +++ b/content/labels/changelog/meta.json @@ -0,0 +1,8 @@ +{ + "id": "changelog", + "name": { + "fr": "Changelog", + "en": "Changelog" + }, + "color": "#0F9D58" +} diff --git a/content/labels/documentation/meta.json b/content/labels/documentation/meta.json new file mode 100644 index 0000000..5dad5b9 --- /dev/null +++ b/content/labels/documentation/meta.json @@ -0,0 +1,8 @@ +{ + "id": "documentation", + "name": { + "fr": "Documentation", + "en": "Documentation" + }, + "color": "#4285F4" +} diff --git a/content/labels/legal/meta.json b/content/labels/legal/meta.json new file mode 100644 index 0000000..8401625 --- /dev/null +++ b/content/labels/legal/meta.json @@ -0,0 +1,8 @@ +{ + "id": "legal", + "name": { + "fr": "Légal", + "en": "Legal" + }, + "color": "#F4B400" +} diff --git a/content/labels/moderation/meta.json b/content/labels/moderation/meta.json new file mode 100644 index 0000000..2e56fc3 --- /dev/null +++ b/content/labels/moderation/meta.json @@ -0,0 +1,8 @@ +{ + "id": "moderation", + "name": { + "fr": "Modération", + "en": "Moderation" + }, + "color": "#EA4335" +} diff --git a/content/labels/premium/meta.json b/content/labels/premium/meta.json new file mode 100644 index 0000000..5f2140f --- /dev/null +++ b/content/labels/premium/meta.json @@ -0,0 +1,8 @@ +{ + "id": "premium", + "name": { + "fr": "Premium", + "en": "Premium" + }, + "color": "#FBBC04" +} diff --git a/content/labels/tickets/meta.json b/content/labels/tickets/meta.json new file mode 100644 index 0000000..e933494 --- /dev/null +++ b/content/labels/tickets/meta.json @@ -0,0 +1,8 @@ +{ + "id": "tickets", + "name": { + "fr": "Tickets", + "en": "Tickets" + }, + "color": "#9C27B0" +} diff --git a/content/legal/license/en.md b/content/legal/license/en.md new file mode 100644 index 0000000..9eac4ba --- /dev/null +++ b/content/legal/license/en.md @@ -0,0 +1,19 @@ +# License + +Moddy's source code is distributed under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)** license. + +This license allows you to: +- **Share** — copy and redistribute the code in any format +- **Adapt** — remix, transform, and build upon the code + +Under the following conditions: +- **Attribution** — you must credit the original work +- **Non-Commercial** — you may not use the code for commercial purposes without prior written authorization +- **ShareAlike** — if you modify the code, you must distribute your contributions under the same CC BY-NC-SA license + +For more details: [https://creativecommons.org/licenses/by-nc-sa/4.0/](https://creativecommons.org/licenses/by-nc-sa/4.0/) + +## Contact + +- **Email**: hello@moddy.app +- **Support**: [moddy.app/support](https://moddy.app/support) diff --git a/content/legal/license/fr.md b/content/legal/license/fr.md new file mode 100644 index 0000000..efa2074 --- /dev/null +++ b/content/legal/license/fr.md @@ -0,0 +1,19 @@ +# Licence + +Le code source de Moddy est distribué sous la licence **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)**. + +Cette licence vous permet de : +- **Partager** — copier et redistribuer le code dans tout format +- **Adapter** — remixer, transformer et développer à partir du code + +Sous les conditions suivantes : +- **Attribution** — vous devez créditer le travail original +- **Non-Commercial** — vous ne pouvez pas utiliser le code à des fins commerciales sans autorisation écrite préalable +- **ShareAlike** — si vous modifiez le code, vous devez distribuer vos contributions sous la même licence CC BY-NC-SA + +Pour plus de détails : [https://creativecommons.org/licenses/by-nc-sa/4.0/](https://creativecommons.org/licenses/by-nc-sa/4.0/) + +## Contact + +- **Email** : hello@moddy.app +- **Support** : [moddy.app/support](https://moddy.app/support) diff --git a/content/legal/license/meta.json b/content/legal/license/meta.json new file mode 100644 index 0000000..85a523a --- /dev/null +++ b/content/legal/license/meta.json @@ -0,0 +1,8 @@ +{ + "id": "license", + "title": { + "fr": "Licence", + "en": "License" + }, + "updated_at": "2025-12-29" +} diff --git a/content/legal/privacy/en.md b/content/legal/privacy/en.md new file mode 100644 index 0000000..1cf7600 --- /dev/null +++ b/content/legal/privacy/en.md @@ -0,0 +1,52 @@ +# Privacy Policy + +**Last updated: December 29, 2025** + +This Privacy Policy describes Moddy's practices regarding the collection, use, storage, and protection of personal data, in compliance with the General Data Protection Regulation (GDPR) and applicable data protection laws. + +## Data Controller + +**Moddy** + +For any requests or questions, please refer to section 12 "Contact" at the end of this document. + +## Personal Data Collected + +### Automatically Collected Data + +When using our services, we automatically collect: + +- **Discord identifiers**: user ID, server ID, channel ID +- **Discord profile information**: username, server name, avatars +- **Email addresses**: when provided for account creation or communications +- **Logging data**: error logs, technical information, command execution context +- **Usage data**: interactions with the bot, executed commands, system events + +### Data Collected Upon User Action + +Some features collect data only when you actively use them: + +- **Saved messages**: message content, metadata, attachments (URLs) +- **Custom reminders**: content, date, time and associated identifiers (maximum 10 per user) +- **Inter-server messages**: content, author, origin server, broadcast status +- **Saved Discord roles**: list of role identifiers (if module enabled) +- **Moderation cases**: sanctions, evidence, reasons, notes, complete history +- **Ticket transcripts**: customer support conversation records + +## Your Rights (GDPR) + +- **Right of access** — obtain a copy of your data +- **Right to rectification** — correct inaccurate data +- **Right to erasure** — request deletion of your data +- **Right to data portability** — receive your data in a machine-readable format + +## Contact + +- **Email**: hello@moddy.app +- **Support**: [moddy.app/support](https://moddy.app/support) + +--- + +> By using Moddy services, you acknowledge that you have read and accepted this Privacy Policy. + +**Effective date: December 29, 2025** diff --git a/content/legal/privacy/fr.md b/content/legal/privacy/fr.md new file mode 100644 index 0000000..27ff402 --- /dev/null +++ b/content/legal/privacy/fr.md @@ -0,0 +1,50 @@ +# Politique de confidentialité + +**Dernière mise à jour : 29 décembre 2025** + +Cette Politique de confidentialité décrit les pratiques de Moddy concernant la collecte, l'utilisation, le stockage et la protection des données personnelles, conformément au Règlement Général sur la Protection des Données (RGPD) et aux lois applicables. + +## Responsable du traitement + +**Moddy** + +Pour toute demande, référez-vous à la section « Contact » en fin de document. + +## Données personnelles collectées + +### Données collectées automatiquement + +Lors de l'utilisation de nos services, nous collectons automatiquement : + +- **Identifiants Discord** : ID utilisateur, ID serveur, ID salon +- **Informations de profil Discord** : nom d'utilisateur, nom du serveur, avatars +- **Données de journalisation** : logs d'erreurs, contexte d'exécution des commandes +- **Données d'utilisation** : interactions avec le bot, commandes exécutées + +### Données collectées sur action de l'utilisateur + +Certaines fonctionnalités collectent des données uniquement lors de votre utilisation active : + +- **Messages sauvegardés** : contenu, métadonnées, pièces jointes (URLs) +- **Rappels personnalisés** : contenu, date, heure (maximum 10 par utilisateur) +- **Messages inter-serveurs** : contenu, auteur, serveur d'origine +- **Dossiers de modération** : sanctions, preuves, raisons, historique complet +- **Transcripts de tickets** : enregistrements de conversations + +## Vos droits (RGPD) + +- **Droit d'accès** — obtenir une copie de vos données +- **Droit de rectification** — corriger des données inexactes +- **Droit à l'effacement** — demander la suppression de vos données +- **Droit à la portabilité** — recevoir vos données dans un format lisible par machine + +## Contact + +- **Email** : hello@moddy.app +- **Support** : [moddy.app/support](https://moddy.app/support) + +--- + +> En utilisant les services Moddy, vous reconnaissez avoir lu et accepté cette Politique de confidentialité. + +**Date d'effet : 29 décembre 2025** diff --git a/content/legal/privacy/meta.json b/content/legal/privacy/meta.json new file mode 100644 index 0000000..dd2a5dc --- /dev/null +++ b/content/legal/privacy/meta.json @@ -0,0 +1,8 @@ +{ + "id": "privacy", + "title": { + "fr": "Politique de confidentialité", + "en": "Privacy Policy" + }, + "updated_at": "2025-12-29" +} diff --git a/content/legal/tos/en.md b/content/legal/tos/en.md new file mode 100644 index 0000000..e64f379 --- /dev/null +++ b/content/legal/tos/en.md @@ -0,0 +1,50 @@ +# Terms of Service + +**Last updated: December 31, 2025** + +These Terms of Service ("ToS") govern the use of Moddy services, including the Discord bot, website, and all associated services. + +## Acceptance of Terms + +By using Moddy services, you unconditionally accept these ToS as well as our Privacy Policy. + +## Service Presentation + +**Moddy** is a Discord bot offering moderation, server management, customer support, and automation features. + +## Terms of Use + +### User obligations + +By using Moddy, you agree to: +- Comply with applicable laws and regulations +- Comply with Discord's terms of use +- Not infringe on third-party rights +- Not attempt to circumvent security measures + +### Prohibited uses + +It is strictly forbidden to use Moddy for illegal content, harassment, spam, fraud, or hacking. + +## Premium Services + +Moddy offers Premium subscriptions with advanced features. Payments are processed by Stripe. Subscriptions auto-renew. + +## Intellectual Property + +Moddy's source code is distributed under the **Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)** license. + +## Limitation of Liability + +Moddy cannot be held liable for indirect damages or service interruptions. + +## Contact + +- **Email**: hello@moddy.app +- **Support**: [moddy.app/support](https://moddy.app/support) + +--- + +> By using Moddy services, you acknowledge that you have read and accepted these Terms of Service. + +**Effective date: December 31, 2025** diff --git a/content/legal/tos/fr.md b/content/legal/tos/fr.md new file mode 100644 index 0000000..697239b --- /dev/null +++ b/content/legal/tos/fr.md @@ -0,0 +1,50 @@ +# Conditions Générales d'Utilisation + +**Dernière mise à jour : 31 décembre 2025** + +Ces Conditions Générales d'Utilisation (ci-après « CGU ») régissent l'utilisation des services Moddy, incluant le bot Discord, le site web et tous les services associés. + +## Acceptation des CGU + +En utilisant les services Moddy, vous acceptez sans réserve les présentes CGU ainsi que notre Politique de confidentialité. + +## Présentation du service + +**Moddy** est un bot Discord proposant des fonctionnalités de modération, gestion de serveur, support utilisateur et automatisation. + +## Conditions d'utilisation + +### Obligations de l'utilisateur + +En utilisant Moddy, vous vous engagez à : +- Respecter les lois et réglementations applicables +- Respecter les conditions d'utilisation de Discord +- Ne pas enfreindre les droits des tiers +- Ne pas tenter de contourner les mesures de sécurité + +### Utilisations interdites + +Il est strictement interdit d'utiliser Moddy pour du contenu illégal, du harcèlement, du spam, de la fraude ou du hacking. + +## Services Premium + +Moddy propose des abonnements Premium avec des fonctionnalités avancées. Les paiements sont traités par Stripe. Les abonnements se renouvellent automatiquement. + +## Propriété intellectuelle + +Le code source de Moddy est distribué sous la licence **Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)**. + +## Limitation de responsabilité + +Moddy ne peut être tenu responsable des dommages indirects ou des interruptions de service. + +## Contact + +- **Email** : hello@moddy.app +- **Support** : [moddy.app/support](https://moddy.app/support) + +--- + +> En utilisant les services Moddy, vous reconnaissez avoir lu et accepté les présentes CGU. + +**Date d'entrée en vigueur : 31 décembre 2025** diff --git a/content/legal/tos/meta.json b/content/legal/tos/meta.json new file mode 100644 index 0000000..b86263c --- /dev/null +++ b/content/legal/tos/meta.json @@ -0,0 +1,8 @@ +{ + "id": "tos", + "title": { + "fr": "Conditions Générales d'Utilisation", + "en": "Terms of Service" + }, + "updated_at": "2025-12-31" +} diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md new file mode 100644 index 0000000..bccd27e --- /dev/null +++ b/docs/ARCHITECTURE.md @@ -0,0 +1,61 @@ +# Architecture de Moddy Docs + +## Vue d'ensemble + +Moddy Docs est un site statique généré par **Eleventy (11ty) v2** avec des composants interactifs en **Lit** et des éléments UI **@material/web** (Material Design 3). + +## Flux de données + +``` +content/ (JSON + Markdown) + ↓ +site/site/_data/*.js (scripts Eleventy) + ↓ +site/site/**/*.njk (templates Nunjucks) + ↓ +site/_prod/ (HTML statique) + ↓ +Vercel (CDN) +``` + +## Composants Lit + +| Composant | Fichier | Rôle | +|-----------|---------|------| +| `language-switcher` | `src/components/language-switcher.ts` | Bascule fr/en | +| `docs-search` | `src/components/docs-search.ts` | Recherche plein texte | +| `article-card` | `src/components/article-card.ts` | Carte article | +| `theme-changer` | `src/components/theme-changer.ts` | Contrôle du thème | +| `top-app-bar` | `src/components/top-app-bar.ts` | Barre du haut | + +## Scripts inline (`src/inline/`) + +Ces scripts sont compilés en IIFE et injectés dans `` pour s'exécuter **avant** le rendu du body (évite les flash). + +| Script | Rôle | +|--------|------| +| `apply-saved-theme.ts` | Applique le thème M3 sauvegardé | +| `apply-saved-lang.ts` | Applique la langue sauvegardée | + +## Hydration + +Les composants Lit sont chargés à la demande via `+ {{ article.abstract.fr }} + {{ article.abstract.en }} +
+ {% endif %} + + {# Meta: date + authors #} + ++ {{ articlesForLabel | length }} + + {% if articlesForLabel | length == 1 %}article{% else %}articles{% endif %} + + + {% if articlesForLabel | length == 1 %}article{% else %}articles{% endif %} + +
++ Aucun article dans cette collection. + No articles in this collection. +
+ {% endif %} ++ + Mis à jour le {{ legalPage.updated_at | formatDate }} + Updated {{ legalPage.updated_at | formatDate }} +
+ {% endif %} ++ {{ cardArticle.abstract.fr }} + {{ cardArticle.abstract.en }} +
+ {% endif %} + + {# Footer: date + authors #} + +