From 920ddfa1723301ef568417a0d904b47c6722f5fe Mon Sep 17 00:00:00 2001 From: Mow910 Date: Sun, 25 Jan 2026 19:07:13 +0100 Subject: [PATCH] =?UTF-8?q?Supprime=20les=20fichiers=20CSS=20obsol=C3=A8te?= =?UTF-8?q?s=20et=20met=20=C3=A0=20jour=20les=20templates=20HTML=20pour=20?= =?UTF-8?q?une=20interface=20utilisateur=20am=C3=A9lior=C3=A9e.=20Les=20mo?= =?UTF-8?q?difications=20incluent=20la=20refonte=20des=20pages=20de=20conf?= =?UTF-8?q?iguration,=20d'alerte=20live,=20de=20mod=C3=A9ration,=20et=20d'?= =?UTF-8?q?aide=20Twitch,=20avec=20une=20mise=20en=20page=20responsive=20e?= =?UTF-8?q?t=20des=20styles=20modernis=C3=A9s.=20Les=20anciennes=20feuille?= =?UTF-8?q?s=20de=20style=20MVP.css=20et=20style.css=20ont=20=C3=A9t=C3=A9?= =?UTF-8?q?=20supprim=C3=A9es=20au=20profit=20d'une=20int=C3=A9gration=20d?= =?UTF-8?q?e=20Tailwind=20CSS.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/static/css/mvp.css | 603 --------------------------- webapp/static/css/style.css | 19 - webapp/templates/commandes.html | 146 ++++--- webapp/templates/configurations.html | 457 ++++++++++---------- webapp/templates/humeurs.html | 65 +-- webapp/templates/index.html | 118 +++++- webapp/templates/live-alert.html | 197 ++++++--- webapp/templates/moderation.html | 256 +++++++----- webapp/templates/protondb.html | 165 +++++--- webapp/templates/template.html | 229 ++++++++-- webapp/templates/twitch-aide.html | 111 +++-- 11 files changed, 1171 insertions(+), 1195 deletions(-) delete mode 100644 webapp/static/css/mvp.css delete mode 100644 webapp/static/css/style.css diff --git a/webapp/static/css/mvp.css b/webapp/static/css/mvp.css deleted file mode 100644 index 3c3d2b6..0000000 --- a/webapp/static/css/mvp.css +++ /dev/null @@ -1,603 +0,0 @@ -/* MVP.css v1.17.2 - https://github.com/andybrewer/mvp */ - -:root { - --active-brightness: 0.85; - --border-radius: 5px; - --box-shadow: 2px 2px 10px; - --color-accent: #118bee15; - --color-bg: #fff; - --color-bg-secondary: #e9e9e9; - --color-link: #118bee; - --color-secondary: #920de9; - --color-secondary-accent: #920de90b; - --color-shadow: #f4f4f4; - --color-table: #118bee; - --color-text: #000; - --color-text-secondary: #999; - --color-scrollbar: #cacae8; - --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - --hover-brightness: 1.2; - --justify-important: center; - --justify-normal: left; - --line-height: 1.5; - --width-card: 285px; - --width-card-medium: 460px; - --width-card-wide: 800px; - --width-content: 1080px; -} - -@media (prefers-color-scheme: dark) { - :root[color-mode="user"] { - --color-accent: #0097fc4f; - --color-bg: #333; - --color-bg-secondary: #555; - --color-link: #0097fc; - --color-secondary: #e20de9; - --color-secondary-accent: #e20de94f; - --color-shadow: #bbbbbb20; - --color-table: #0097fc; - --color-text: #f7f7f7; - --color-text-secondary: #aaa; - } -} - -html { - scroll-behavior: smooth; -} - -@media (prefers-reduced-motion: reduce) { - html { - scroll-behavior: auto; - } -} - -/* Layout */ -article aside { - background: var(--color-secondary-accent); - border-left: 4px solid var(--color-secondary); - padding: 0.01rem 0.8rem; -} - -body { - background: var(--color-bg); - color: var(--color-text); - font-family: var(--font-family); - line-height: var(--line-height); - margin: 0; - overflow-x: hidden; - padding: 0; -} - -footer, -header, -main { - margin: 0 auto; - max-width: var(--width-content); - /* padding: 3rem 1rem; */ - padding: 1rem 1rem; -} - -hr { - background-color: var(--color-bg-secondary); - border: none; - height: 1px; - margin: 4rem 0; - width: 100%; -} - -section { - display: flex; - flex-wrap: wrap; - justify-content: var(--justify-important); -} - -section img, -article img { - max-width: 100%; -} - -section pre { - overflow: auto; -} - -section aside { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - margin: 1rem; - padding: 1.25rem; - width: var(--width-card); -} - -section aside:hover { - box-shadow: var(--box-shadow) var(--color-bg-secondary); -} - -[hidden] { - display: none; -} - -/* Headers */ -article header, -div header, -main header { - padding-top: 0; -} - -header { - text-align: var(--justify-important); -} - -header a b, -header a em, -header a i, -header a strong { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -/* header nav img { - margin: 1rem 0; -} */ - -section header { - padding-top: 0; - width: 100%; -} - -/* Nav */ -nav { - align-items: center; - display: flex; - font-weight: bold; - justify-content: space-between; - /* margin-bottom: 7rem; */ -} - -nav ul { - list-style: none; - padding: 0; -} - -nav ul li { - display: inline-block; - margin: 0 0.5rem; - position: relative; - text-align: left; -} - -/* Nav Dropdown */ -nav ul li:hover ul { - display: block; -} - -nav ul li ul { - background: var(--color-bg); - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - display: none; - height: auto; - left: -2px; - padding: 0.5rem 1rem; - position: absolute; - top: 1.7rem; - white-space: nowrap; - width: auto; - z-index: 1; -} - -nav ul li ul::before { - /* fill gap above to make mousing over them easier */ - content: ""; - position: absolute; - left: 0; - right: 0; - top: -0.5rem; - height: 0.5rem; -} - -nav ul li ul li, -nav ul li ul li a { - display: block; -} - -/* Nav for Mobile */ -@media (max-width: 768px) { - nav { - flex-wrap: wrap; - } - - nav ul li { - width: calc(100% - 1em); - } - - nav ul li ul { - border: none; - box-shadow: none; - display: block; - position: static; - } -} - -/* Typography */ -code, -samp { - background-color: var(--color-accent); - border-radius: var(--border-radius); - color: var(--color-text); - display: inline-block; - margin: 0 0.1rem; - padding: 0 0.5rem; -} - -details { - margin: 1.3rem 0; -} - -details summary { - font-weight: bold; - cursor: pointer; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: var(--line-height); - text-wrap: balance; -} - -mark { - padding: 0.1rem; -} - -ol li, -ul li { - padding: 0.2rem 0; -} - -p { - margin: 0.75rem 0; - padding: 0; - width: 100%; -} - -pre { - margin: 1rem 0; - max-width: var(--width-card-wide); - padding: 1rem 0; -} - -pre code, -pre samp { - display: block; - max-width: var(--width-card-wide); - padding: 0.5rem 2rem; - white-space: pre-wrap; -} - -small { - color: var(--color-text-secondary); -} - -sup { - background-color: var(--color-secondary); - border-radius: var(--border-radius); - color: var(--color-bg); - font-size: xx-small; - font-weight: bold; - margin: 0.2rem; - padding: 0.2rem 0.3rem; - position: relative; - top: -2px; -} - -/* Links */ -a { - color: var(--color-link); - display: inline-block; - font-weight: bold; - text-decoration: underline; -} - -a:hover { - filter: brightness(var(--hover-brightness)); -} - -a:active { - filter: brightness(var(--active-brightness)); -} - -a b, -a em, -a i, -a strong, -button, -input[type="submit"] { - border-radius: var(--border-radius); - display: inline-block; - font-size: medium; - font-weight: bold; - line-height: var(--line-height); - margin: 0.5rem 0; - padding: 1rem 2rem; -} - -button, -input[type="submit"] { - font-family: var(--font-family); -} - -button:hover, -input[type="submit"]:hover { - cursor: pointer; - filter: brightness(var(--hover-brightness)); -} - -button:active, -input[type="submit"]:active { - filter: brightness(var(--active-brightness)); -} - -a b, -a strong, -button, -input[type="submit"] { - background-color: var(--color-link); - border: 2px solid var(--color-link); - color: var(--color-bg); -} - -a em, -a i { - border: 2px solid var(--color-link); - border-radius: var(--border-radius); - color: var(--color-link); - display: inline-block; - padding: 1rem 2rem; -} - -article aside a { - color: var(--color-secondary); -} - -/* Images */ -figure { - margin: 0; - padding: 0; -} - -figure img { - max-width: 100%; -} - -figure figcaption { - color: var(--color-text-secondary); -} - -/* Forms */ -button:disabled, -input:disabled { - background: var(--color-bg-secondary); - border-color: var(--color-bg-secondary); - color: var(--color-text-secondary); - cursor: not-allowed; -} - -button[disabled]:hover, -input[type="submit"][disabled]:hover { - filter: none; -} - -form { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - display: block; - max-width: var(--width-card-wide); - min-width: var(--width-card); - padding: 1.5rem; - text-align: var(--justify-normal); -} - -form header { - margin: 1.5rem 0; - padding: 1.5rem 0; -} - -input, -label, -select, -textarea { - display: block; - font-size: inherit; - max-width: var(--width-card-wide); -} - -input[type="checkbox"], -input[type="radio"] { - display: inline-block; -} - -input[type="checkbox"]+label, -input[type="radio"]+label { - display: inline-block; - font-weight: normal; - position: relative; - top: 1px; -} - -input[type="range"] { - padding: 0.4rem 0; -} - -input, -select, -textarea { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - margin-bottom: 1rem; - padding: 0.4rem 0.8rem; -} - -input[type="text"], -input[type="password"], -input[type="email"], -textarea { - width: calc(100% - 1.6rem); -} - -input[readonly], -textarea[readonly] { - background-color: var(--color-bg-secondary); -} - -label { - font-weight: bold; - margin-bottom: 0.2rem; -} - -/* Popups */ -dialog { - max-width: 90%; - max-height: 85dvh; - margin: auto; - padding-block: 0; - padding-inline: 20px; - border: 1px solid var(--color-bg-secondary); - border-radius: 0.5rem; - overscroll-behavior: contain; - scroll-behavior: smooth; - scrollbar-width: none; - /* Hide scrollbar for Firefox */ - -ms-overflow-style: none; - /* Hide scrollbar for IE and Edge */ - scrollbar-color: transparent transparent; - animation: bottom-to-top 0.25s ease-in-out forwards; -} - -dialog::-webkit-scrollbar { - width: 0; - display: none; -} - -dialog::-webkit-scrollbar-track { - background: transparent; -} - -dialog::-webkit-scrollbar-thumb { - background-color: transparent; -} - -@media (min-width: 650px) { - dialog { - max-width: 39rem; - } -} - -dialog::backdrop { - background-color: rgba(0, 0, 0, 0.5); -} - -@keyframes bottom-to-top { - 0% { - opacity: 0; - transform: translateY(10%); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -dialog hr { - margin-block: 1rem; -} - -/* Tables */ -table { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - border-spacing: 0; - display: inline-block; - max-width: 100%; - overflow-x: auto; - padding: 0; - white-space: nowrap; -} - -table td, -table th, -table tr { - padding: 0.4rem 0.8rem; - text-align: var(--justify-important); -} - -table thead { - background-color: var(--color-table); - border-collapse: collapse; - border-radius: var(--border-radius); - color: var(--color-bg); - margin: 0; - padding: 0; -} - -table thead tr:first-child th:first-child { - border-top-left-radius: var(--border-radius); -} - -table thead tr:first-child th:last-child { - border-top-right-radius: var(--border-radius); -} - -table thead th:first-child, -table tr td:first-child { - text-align: var(--justify-normal); -} - -table tr:nth-child(even) { - background-color: var(--color-accent); -} - -/* Quotes */ -blockquote { - display: block; - font-size: x-large; - line-height: var(--line-height); - margin: 1rem auto; - max-width: var(--width-card-medium); - padding: 1.5rem 1rem; - text-align: var(--justify-important); -} - -blockquote footer { - color: var(--color-text-secondary); - display: block; - font-size: small; - line-height: var(--line-height); - padding: 1.5rem 0; -} - -/* Scrollbars */ -* { - scrollbar-width: thin; - scrollbar-color: var(--color-scrollbar) transparent; -} - -*::-webkit-scrollbar { - width: 5px; - height: 5px; -} - -*::-webkit-scrollbar-track { - background: transparent; -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-scrollbar); - border-radius: 10px; -} \ No newline at end of file diff --git a/webapp/static/css/style.css b/webapp/static/css/style.css deleted file mode 100644 index 25a3d21..0000000 --- a/webapp/static/css/style.css +++ /dev/null @@ -1,19 +0,0 @@ -header nav img { - border-radius: 50%; -} - -table th, -table td { - text-align: left; - vertical-align: top; - overflow: hidden; - white-space: normal; -} - -table.live-alert tr td:last-child { - white-space: nowrap; -} - -a.icon { - text-decoration: none; -} \ No newline at end of file diff --git a/webapp/templates/commandes.html b/webapp/templates/commandes.html index 77568d8..8fb7afe 100644 --- a/webapp/templates/commandes.html +++ b/webapp/templates/commandes.html @@ -1,55 +1,101 @@ {% extends "template.html" %} {% block content %} -

Commandes de Mamie

-

Gérez les commandes personnalisées du bot. Ces commandes peuvent être activées sur Discord et/ou Twitch selon vos besoins.

- - - - - - - - - - - - {% for commande in commandes %} - - - - - - - - {% endfor %} - -
CommandeRéponseDiscordTwitchActions
{{ commande.trigger }}{{ commande.response }} - - {{ '✅' if commande.discord_enable else '❌' }} - - - - {{ '✅' if commande.twitch_enable else '❌' }} - - - Supprimer -
+
+

Commandes

+

+ Gérez les commandes personnalisées du bot. Ces commandes peuvent être activées sur Discord et/ou Twitch. +

+
-

Ajouter une commande

-
- - - - -
- - +
+
+ + + + + + + + + + + + {% for commande in commandes %} + + + + + + + + {% else %} + + + + {% endfor %} + +
CommandeRéponseDiscordTwitchActions
+ {{ commande.trigger }} + +
{{ commande.response }}
+
+ + {% if commande.discord_enable %} + + {% else %} + + {% endif %} + + + + {% if commande.twitch_enable %} + + {% else %} + + {% endif %} + + + + Supprimer + +
+ Aucune commande configurée +
-
- - -
- - -{% endblock %} \ No newline at end of file +
+ +
+

Ajouter une commande

+ +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ +
+
+
+{% endblock %} diff --git a/webapp/templates/configurations.html b/webapp/templates/configurations.html index 40cf0bf..264b983 100644 --- a/webapp/templates/configurations.html +++ b/webapp/templates/configurations.html @@ -1,240 +1,251 @@ {% extends "template.html" %} {% block content %} -

Configuration de Mamie

-

Configurez les tokens Discord, les notifications Humble Bundle et l'API Twitch.

+
+

Configurations

+

+ Paramètres Discord, Twitch et Humble Bundle. +

+
-

Discord

-
-
- API Discord - - - Nécessite un redémarrage après modification -
- -
- Messages de bienvenue - - - - - - - - - Syntaxes disponibles :
- • {member.mention} - Mentionne l'utilisateur (@NomUtilisateur)
- • {member.name} - Nom d'utilisateur (sans mention)
- • {member.display_name} - Surnom sur le serveur
- • {member.id} - ID de l'utilisateur
- • {server.name} - Nom du serveur
- • {server.member_count} - Nombre total de membres
- • <#ID_DU_CHANNEL> - Mentionne un salon (ex: <#123456789012345678>) -
-
- -
- Messages de départ - - - - - - - - - Syntaxes disponibles :
- • {member.mention} - Mentionne l'utilisateur (@NomUtilisateur)
- • {member.name} - Nom d'utilisateur (sans mention)
- • {member.display_name} - Surnom sur le serveur
- • {member.id} - ID de l'utilisateur
- • {server.name} - Nom du serveur
- • {server.member_count} - Nombre total de membres
- • <#ID_DU_CHANNEL> - Mentionne un salon (ex: <#123456789012345678>) -
-
- -
- Modération - - - - - - - - - Toutes les actions de modération seront notifiées dans ce canal - - - {% set selected_roles = (configuration.getValue('moderation_staff_role_ids') or '').split(',') %} - - {% if roles|length > 1 %} -
- {% for guild_data in roles %} - - {% endfor %} +
+
+

Discord

+
+ + +
+ + +

Nécessite un redémarrage après modification

- {% endif %} - - {% for guild_data in roles %} -
-
- {% for role in guild_data.roles %} -
+ +
+
+

API Twitch

+
+ +
+
+
+ + +
+
+ + +
+
- Sélectionnez un ou plusieurs rôles qui peuvent utiliser les commandes de modération +
+ + +
+ + {% if configuration.getValue('twitch_client_secret') and configuration.getValue('twitch_client_id') %} + - - - - - - - Mettre 0 pour ne pas supprimer automatiquement -
+
+
+ + +
+
+ + +
+
+

Nécessite un redémarrage après l'obtention des tokens

+ {% endif %} - - +
+ + Besoin d'aide ? +
+ +
-

API Twitch

-
- - - - - - - -

- Aide -

- {% if configuration.getValue('twitch_client_secret') and configuration.getValue('twitch_client_id') %} -

- Obtenir token et refresh token -

- - - - -

Nécessite un redémarrage après l'obtention des Tokens.

- {% endif %} -
+
+
+

Humble Bundle

+
+ +
+

+ Activez les notifications pour recevoir automatiquement les nouveaux packs sur Discord. +

-

Humble Bundle

- -

Humble Bundle propose régulièrement des bundles de jeux vidéo à des prix réduits. Activez les notifications pour recevoir automatiquement les nouveaux packs disponibles sur votre serveur Discord.

+ - +
+ + +
- - + +
+
- - -{% endblock %} \ No newline at end of file + +{% endblock %} diff --git a/webapp/templates/humeurs.html b/webapp/templates/humeurs.html index a060ccf..53361df 100644 --- a/webapp/templates/humeurs.html +++ b/webapp/templates/humeurs.html @@ -1,29 +1,44 @@ {% extends "template.html" %} {% block content %} -

Humeurs de Mamie

-

Définissez les statuts Discord qui changeront automatiquement toutes les 10 minutes pour donner de la personnalité à votre bot.

- - - - - - - - - {% for humeur in humeurs %} - - - - - {% endfor %} - -
TexteAction
{{humeur.text}}Supprimer
+
+

Humeurs

+

+ Statuts Discord qui changeront automatiquement toutes les 10 minutes. +

+
-

Ajouter une humeur

-
- - - -
-{% endblock %} \ No newline at end of file +
+ {% if humeurs %} + + {% else %} +
+

Aucune humeur configurée

+
+ {% endif %} +
+ +
+

Ajouter une humeur

+ +
+
+
+ +
+ +
+
+
+{% endblock %} diff --git a/webapp/templates/index.html b/webapp/templates/index.html index eb248da..050b7e3 100644 --- a/webapp/templates/index.html +++ b/webapp/templates/index.html @@ -1,7 +1,117 @@ {% extends "template.html" %} {% block content %} -

Bienvenue sur l'interface d'administration de Mamie.

-

Nous devons définir ce que nous souhaitons afficher sur la page d'accueil. Peut-être l'historique des dernières - modifications ? de la modération ?

-{% endblock %} \ No newline at end of file +
+

+ Panneau d'administration +

+

+ Gérez les fonctionnalités de votre bot Discord et Twitch depuis cette interface. +

+
+ +
+ +
+
+ +
+
+

Alertes Live

+

Notifications Twitch

+
+ +
+
+ + +
+
+ +
+
+

Commandes

+

Commandes personnalisées

+
+ +
+
+ + +
+
+ +
+
+

Humeurs

+

Statuts Discord rotatifs

+
+ +
+
+ + +
+
+ +
+
+

Modération

+

Historique et actions

+
+ +
+
+ + +
+
+ +
+
+

ProtonDB

+

Compatibilité Linux

+
+ +
+
+ + +
+
+ +
+
+

Configurations

+

Paramètres du bot

+
+ +
+
+
+ +
+
+
+ +
+
+

À propos

+

+ Mamie Henriette est un bot open source pour Discord et Twitch, développé par la communauté. + Cette interface vous permet de configurer et gérer toutes les fonctionnalités. +

+ +
+
+
+{% endblock %} diff --git a/webapp/templates/live-alert.html b/webapp/templates/live-alert.html index f7ed4a3..f67e430 100644 --- a/webapp/templates/live-alert.html +++ b/webapp/templates/live-alert.html @@ -1,76 +1,135 @@ {% extends "template.html" %} {% block content %} -

Alerte Live

- -

- Liste des chaines surveillées pour les alertes de live twitch. - - Le bot vérifie toutes les 5 minutes qui est en live dans la liste en dessous. - Le bot enregistre le status de stream toutes les 5 minutes, quand le status pass de "hors-ligne" à "en ligne" alors - le bot le notifiera sur discord. - Ne peu surveiller qu'au maximum 100 chaines. -

+
+

Alertes Live

+

+ Chaînes Twitch surveillées. Vérification toutes les 5 minutes, maximum 100 chaînes. +

+
{% if not alert %} -

Alertes

- - - - - - - - - - - {% for alert in alerts %} - - - - - - - {% endfor %} - -
ChaineCanalMessage#
{{alert.login}}{{alert.notify_channel_name}}{{alert.message}} - {{ '✅' if alert.enable else '❌' }} - - 🗑 -
+
+
+

Alertes configurées

+
+
+ + + + + + + + + + + {% for alert in alerts %} + + + + + + + {% else %} + + + + {% endfor %} + +
ChaîneCanal DiscordMessageActions
+ {{ alert.login }} + + #{{ alert.notify_channel_name }} + +
{{ alert.message }}
+
+ +
+ Aucune alerte configurée +
+
+
{% endif %} -

{{ 'Editer une alerte' if alert else 'Ajouter une alerte de Live' }}

-
- - - - - - - -

- La chaine est le login de la chaine, par exemple chainesteve pour https://www.twitch.tv/chainesteve. -

-

- Pour le message vous avez acces à ces variables : -

- Le message est au format common-mark dans la limite de ce que - support discord. - Pour mettre un lien vers la chaine : [description](https://www.twitch.tv/{0.user_login}) -

-
- -{% endblock %} \ No newline at end of file +
+

+ {% if alert %}Modifier l'alerte{% else %}Ajouter une alerte{% endif %} +

+ +
+
+
+ + +

Le login de la chaîne, ex: chainesteve

+
+ +
+ + +
+
+ +
+ + +
+ +
+

Variables disponibles :

+
+
+ {0.user_login} + Lien vers la chaîne +
+
+ {0.user_name} + Nom du streamer +
+
+ {0.game_name} + Jeu en cours +
+
+ {0.title} + Titre du stream +
+
+ {0.language} + Langue du stream +
+
+
+ +
+ {% if alert %} + + Annuler + + {% endif %} + +
+
+
+{% endblock %} diff --git a/webapp/templates/moderation.html b/webapp/templates/moderation.html index fc1e316..52b8bf8 100644 --- a/webapp/templates/moderation.html +++ b/webapp/templates/moderation.html @@ -1,110 +1,168 @@ {% extends "template.html" %} {% block content %} -

Modération Discord

+
+

Modération

+

+ Historique des actions de modération sur le serveur Discord. +

+
-

- Historique des actions de modération effectuées sur le serveur Discord. - - Le bot enregistre automatiquement les avertissements, exclusions et bannissements. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandeDescription
!averto @utilisateur raison
Alias : !warn, !av, !avertissement
Avertit un utilisateur et enregistre l'avertissement dans la base de données
!delaverto id
Alias : !removewarn, !delwarn
Retire un avertissement en utilisant son numéro d'ID
!warnings ou !warnings @utilisateur
Alias : !listevent, !listwarn
Affiche la liste des événements de modération (tous ou pour un utilisateur spécifique)
!inspect @utilisateur ou !inspect idAffiche des informations détaillées sur un utilisateur : création du compte, date d'arrivée, historique de modération
!kick @utilisateur raisonExpulse un utilisateur du serveur
!ban @utilisateur raisonBannit définitivement un utilisateur du serveur
!unban discord_id ou !unban #sanction_id raisonRévoque le bannissement d'un utilisateur et lui envoie une invitation
!banlistAffiche la liste des utilisateurs actuellement bannis du serveur
!aide
Alias : !help
Affiche l'aide avec toutes les commandes disponibles
-

+
+
+ + Commandes de modération disponibles + + +
+
+
+ !averto @user raison + Avertit un utilisateur +
+
+ !delaverto id + Retire un avertissement +
+
+ !warnings [@user] + Liste les événements de modération +
+
+ !inspect @user + Informations sur un utilisateur +
+
+ !kick @user raison + Expulse un utilisateur +
+
+ !ban @user raison + Bannit un utilisateur +
+
+ !unban id + Révoque un bannissement +
+
+ !banlist + Liste des utilisateurs bannis +
+
+
+
+
{% if not event %} -

Événements de modération

- - - - - - - - - - - - - - {% for mod_event in events %} - - - - - - - - - - {% endfor %} - -
TypeUtilisateurDiscord IDDate & HeureRaisonStaff#
{{ mod_event.type }}{{ mod_event.username }}{{ mod_event.discord_id }}{{ mod_event.created_at.strftime('%d/%m/%Y %H:%M') if mod_event.created_at else 'N/A' }}{{ mod_event.reason }}{{ mod_event.staff_name }} - - 🗑 -
+
+
+

Événements de modération

+
+
+ + + + + + + + + + + + + {% for mod_event in events %} + + + + + + + + + {% else %} + + + + {% endfor %} + +
TypeUtilisateurDateRaisonStaffActions
+ {% if mod_event.type == 'ban' %} + Ban + {% elif mod_event.type == 'kick' %} + Kick + {% elif mod_event.type == 'warn' or mod_event.type == 'warning' %} + Warn + {% elif mod_event.type == 'unban' %} + Unban + {% else %} + {{ mod_event.type }} + {% endif %} + +
+ {{ mod_event.username }} + {{ mod_event.discord_id }} +
+
+ {{ mod_event.created_at.strftime('%d/%m/%Y %H:%M') if mod_event.created_at else 'N/A' }} + +
{{ mod_event.reason }}
+
+ {{ mod_event.staff_name }} + + +
+ Aucun événement de modération +
+
+
{% endif %} {% if event %} -

Editer un événement

-
- - - - - - - - - - - - Annuler -
+
+

Modifier l'événement

+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + Annuler + + +
+
+
{% endif %} - {% endblock %} diff --git a/webapp/templates/protondb.html b/webapp/templates/protondb.html index 6cf256c..ee9f7c1 100644 --- a/webapp/templates/protondb.html +++ b/webapp/templates/protondb.html @@ -1,61 +1,124 @@ {% extends "template.html" %} {% block content %} -

Proton DB

-

ProtonDB évalue la compatibilité des jeux Windows sur Linux via Steam Play.

+
+

ProtonDB

+

+ Compatibilité des jeux Windows sur Linux via Steam Play. +

+
{% if configuration.getValue('proton_db_enable_enable') %} -

Game alias

- - - - - - - - - - {% for a in aliases %} - - - - - - {% endfor %} - -
AliasGame#
{{a.alias}}{{a.name}}Supprimer
+
+
+

Alias de jeux

+
+
+ + + + + + + + + + {% for a in aliases %} + + + + + + {% else %} + + + + {% endfor %} + +
AliasNom du jeuActions
+ {{ a.alias }} + + {{ a.name }} + + + Supprimer + +
+ Aucun alias configuré +
+
+
-

Ajouter un Alias

-
- - - - - -

Si vous créez un alias GTA : Grand Theft Auto alors si un utilisateur rentre la commande - !protondb GTA 5 cela fera une recherche sur Grand Theft Auto 5. -

-
+
+

Ajouter un alias

+ +
+
+
+ + +
+
+ + +
+
+ +
+ +
+
+ +
+

+ Exemple : Si vous créez un alias GTA → Grand Theft Auto, alors !protondb GTA 5 fera une recherche sur Grand Theft Auto 5. +

+
+
{% endif %} -

Configuration

-
- - - - - - - - -

Pour trouver les clés, dans votre navigateur avec l'outil d'inspection ouvert (F12 ou clic droit > Inspecter - l'élément dans Firefox/Chrome) faites une recherche de jeux sur protondb, - puis cherchez les clés dans les requêtes (onglet Réseau/Network), - comme le montre cet exemple -

-
+
+
+

Configuration

+
+ +
+ +
+
+ + +
+
+ + +
+
-{% endblock %} \ No newline at end of file + +
+ +
+
+

Comment trouver les clés API ?

+
    +
  1. Ouvrez l'outil d'inspection de votre navigateur (F12)
  2. +
  3. Allez dans l'onglet Réseau/Network
  4. +
  5. Faites une recherche de jeu sur ProtonDB
  6. +
  7. Cherchez les clés dans les requêtes réseau
  8. +
+ + Voir l'exemple en image + +
+
+
+{% endblock %} diff --git a/webapp/templates/template.html b/webapp/templates/template.html index e36f520..e1387ae 100644 --- a/webapp/templates/template.html +++ b/webapp/templates/template.html @@ -1,39 +1,218 @@ - + - - + + Mamie Henriette - - + + + - -
- -
-
- {% block content %}{% endblock %} + + + + + +
+
+
+ {% block content %}{% endblock %} +
+
-