@@ -60,12 +58,19 @@
{% if twitch_channel_name %}{{ twitch_channel_name }}{% else %}—{% endif %}
-
Sanctions
-
—
-
À venir
+
Annonces configurées
+
{{ twitch_announcements_count }}
-
-
Intégrations du bot Twitch à venir.
+
+
Actions de modération
+
{{ twitch_moderation_count }}
+
+
diff --git a/webapp/templates/link-filter.html b/webapp/templates/link-filter.html
new file mode 100644
index 0000000..b657aca
--- /dev/null
+++ b/webapp/templates/link-filter.html
@@ -0,0 +1,176 @@
+{% extends "template.html" %}
+
+{% block content %}
+
+
+
Filtre de liens
+
Bloquez les liens non autorises sur votre chat Twitch.
+
+
+
+
+
+
+
+
+
+
+
+ Domaines autorises ({{ domains|length }})
+
+
+
+
+
+
+
+ Ajouter
+
+
+
+
+ {% if domains %}
+
+
+ {% for domain in domains %}
+
+ {% endfor %}
+
+
+ {% else %}
+
+ Aucun domaine autorise
+
+ {% endif %}
+
+
+
+
+
+
+
+
+ Viewers autorises ({{ users|length }})
+
+
+
+
+
+
+
+ Ajouter
+
+
+
+
+ {% if users %}
+
+
+ {% for user in users %}
+
+ {% endfor %}
+
+
+ {% else %}
+
+ Aucun viewer en liste blanche
+
+ {% endif %}
+
+
+
+
+
+
+
+
+ Commande Permit
+
+
+ Utilisez la commande !permit pour autoriser temporairement un viewer a poster un lien.
+
+
+
+ !permit @viewer
+ Autorise 1 min
+
+
+ !permit @viewer 5
+ Autorise 5 min
+
+
+
+
+{% endblock %}
diff --git a/webapp/templates/live-alert.html b/webapp/templates/live-alert.html
index f7ed4a3..c474cf9 100644
--- a/webapp/templates/live-alert.html
+++ b/webapp/templates/live-alert.html
@@ -1,76 +1,335 @@
{% 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.
-
+
+
Alerte Live
+
+
+ Liste des chaînes 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 passe de "hors-ligne" à "en ligne" alors
+ le bot enverra une notification (embed Discord) sur le canal choisi.
+ Ne peut surveiller qu'au maximum 100 chaînes.
+
+
+
{% if not alert %}
-
Alertes
-
-
-
- Chaine
- Canal
- Message
- #
-
-
-
- {% for alert in alerts %}
-
- {{alert.login}}
- {{alert.notify_channel_name}}
- {{alert.message}}
-
- {{ '✅' if alert.enable else '❌' }}
- ✐
- 🗑
-
-
- {% endfor %}
-
-
+
+
Alertes configurées
+
+
+
+
+
+ Chaîne
+ Canal
+ Message / Embed
+ Activité
+ Actions
+
+
+
+ {% for alert in alerts %}
+
+
+ {{alert.login}}
+
+ {{alert.notify_channel_name}}
+ {{alert.message or '(embed)'}}
+
+
+ {{ '👁️' if alert.watch_activity else '👁️🗨️' }}
+
+
+
+
+
+
+ {% else %}
+
+
+ Aucune alerte configurée. Ajoutez-en une ci-dessous.
+
+
+ {% endfor %}
+
+
+
+
+
{% endif %}
-
{{ 'Editer une alerte' if alert else 'Ajouter une alerte de Live' }}
-
- Chaine
-
- Canal de Notification
-
- {% for channel in channels %}
- {{channel.name}}
- {% endfor %}
-
- Message
- {{alert.message if alert}}
-
-
- 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 :
-
- {0.user_login} : pour le lien vers la chaine
- {0.user_name} : à priviligier pour le text
- {0.game_name}
- {0.title}
- {0.language}
-
- 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})
-
-
+
+
+ {{ 'Modifier l\'alerte' if alert else 'Ajouter une alerte de Live' }}
+
-{% endblock %}
\ No newline at end of file
+
+
+
+
+
Configuration de base
+
+
+ Chaîne Twitch
+
+
+
+
+ Canal de notification Discord
+
+ {% for channel in channels %}
+ {{channel.name}}
+ {% endfor %}
+
+
+
+
+
Message (optionnel, avant l'embed)
+
{{alert.message if alert}}
+
Variables: {user_name}, {title}, [lien](https://www.twitch.tv/{user_login})
+
+
+
+
+
+ Afficher "Regarde ce stream" comme activité du bot Discord
+
+
+
+
+
+
Personnalisation de l'embed Discord
+
+
+
Titre de l'embed
+
+
Variables: {title}, {user_name}, {game_name}, {stream_url}, {user_login}
+
+
+
+ Description de l'embed
+ {{alert.embed_description if alert}}
+
+
+
+
+
+ Nom de l'auteur
+
+
+
+
+
+ Icône de l'auteur (URL)
+
+
+
+
+ Pied de page
+
+
+
+
+
+
+ Miniature (preview)
+
+
+
+ Image principale
+
+
+
+
+
+
+ {{ 'Enregistrer' if alert else 'Ajouter l\'alerte' }}
+
+ {% if alert %}
+
+ Annuler
+
+ {% endif %}
+
+
+
+
+
+
Prévisualisation de l'embed Discord
+
+
+
+
Nom du streamer
+
+
Titre du stream
+
+
+
+
+
+
+
+
+
+
Cette prévisualisation est approximative.
+
+
+
Variables disponibles (embed)
+
+ {user_login} — Login Twitch
+ {user_name} — Nom d'affichage
+ {game_name} — Jeu en cours
+ {title} — Titre du stream
+ {language} — Langue
+ {stream_url} — Lien Twitch
+ {thumbnail} — URL preview
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/webapp/templates/login.html b/webapp/templates/login.html
new file mode 100644
index 0000000..f973a62
--- /dev/null
+++ b/webapp/templates/login.html
@@ -0,0 +1,35 @@
+{% extends "template.html" %}
+
+{% block content %}
+
+
Connexion
+
+ {% with messages = get_flashed_messages(with_categories=true) %}
+ {% if messages %}
+
+ {% for category, msg in messages %}
+
{{ msg }}
+ {% endfor %}
+
+ {% endif %}
+ {% endwith %}
+
+
+
+ Identifiant (nom d'utilisateur ou e-mail)
+
+
+
+ Mot de passe
+
+
+ Se connecter
+
+
+ {% if registration_enabled %}
+
+ Pas encore de compte ? Créer un compte
+
+ {% endif %}
+
+{% endblock %}
diff --git a/webapp/templates/protondb.html b/webapp/templates/protondb.html
index 6cf256c..4f32a34 100644
--- a/webapp/templates/protondb.html
+++ b/webapp/templates/protondb.html
@@ -1,61 +1,135 @@
{% extends "template.html" %}
{% block content %}
-
Proton DB
-
ProtonDB évalue la compatibilité des jeux Windows sur Linux via Steam Play.
+
+
ProtonDB
+
+
+ ProtonDB évalue la compatibilité des jeux Windows sur Linux via Steam Play.
+
+
+
{% if configuration.getValue('proton_db_enable_enable') %}
-
Game alias
-
-
-
- Alias
- Game
- #
-
-
-
- {% for a in aliases %}
-
- {{a.alias}}
- {{a.name}}
- Supprimer
-
- {% endfor %}
-
-
+
+
Alias de jeux
+
+
+
+
+
+ Alias
+ Jeu
+ Action
+
+
+
+ {% for a in aliases %}
+
+
+ {{ a.alias }}
+
+ {{ a.name }}
+
+
+
+
+
+
+ {% else %}
+
+
+ Aucun alias configuré. Ajoutez-en un ci-dessous.
+
+
+ {% endfor %}
+
+
+
+
+
-
Ajouter un Alias
-
- Alias
-
- Nom
-
-
- 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
+
+
+
+
+
+
+ Si vous créez un alias GTA → Grand Theft Auto,
+ alors la commande !protondb GTA 5 fera une recherche sur Grand Theft Auto 5 .
+
+
+
+
+
+ Ajouter l'alias
+
+
+
+
{% endif %}
-
Configuration
-
- Activer
-
- Activer la commande Proton DB
- API ID
-
- Clé API
-
-
- 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
-
-
-
-
-{% endblock %}
\ No newline at end of file
+
+
Configuration
+
+
+
+
+
+ Activer la commande ProtonDB
+
+
+
+
+
+
+
+ Pour trouver les clés : ouvrez l'outil d'inspection (F12) dans votre navigateur, faites une recherche de jeux sur ProtonDB,
+ puis cherchez les clés dans les requêtes (onglet Réseau/Network).
+ Voir l'exemple
+
+
+
+
+
+ Enregistrer la configuration
+
+
+
+
+{% endblock %}
diff --git a/webapp/templates/register.html b/webapp/templates/register.html
new file mode 100644
index 0000000..c54445a
--- /dev/null
+++ b/webapp/templates/register.html
@@ -0,0 +1,41 @@
+{% extends "template.html" %}
+
+{% block content %}
+
+
Créer un compte
+
+ {% with messages = get_flashed_messages(with_categories=true) %}
+ {% if messages %}
+
+ {% for category, msg in messages %}
+
{{ msg }}
+ {% endfor %}
+
+ {% endif %}
+ {% endwith %}
+
+
+
+ Nom d'utilisateur
+
+
+
+ Adresse e-mail
+
+
+
+ Mot de passe
+
+
+
+ Confirmer le mot de passe
+
+
+ S'inscrire
+
+
+
+ Déjà un compte ? Se connecter
+
+
+{% endblock %}
diff --git a/webapp/templates/settings.html b/webapp/templates/settings.html
new file mode 100644
index 0000000..f4b943c
--- /dev/null
+++ b/webapp/templates/settings.html
@@ -0,0 +1,386 @@
+{% extends "template.html" %}
+
+{% block content %}
+
+
+
+
Paramètres et Permissions
+
Configuration des rôles et des accès aux pages (super administrateur uniquement)
+
+
+
+
+
+ Aide
+
+
+
+
+{% with messages = get_flashed_messages(with_categories=true) %}
+ {% if messages %}
+
+ {% for category, msg in messages %}
+
+ {{ msg }}
+
+ {% endfor %}
+
+ {% endif %}
+{% endwith %}
+
+
+
+
+
+
+
+
Inscriptions
+
Autoriser ou bloquer la création de nouveaux comptes par les visiteurs
+
+
+
+
+ {% if registration_enabled %}✓ Inscriptions activées{% else %}✗ Inscriptions désactivées{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hiérarchie des rôles
+
+ Les rôles définissent le niveau d'accès des utilisateurs. Plus le niveau est élevé, plus les permissions sont étendues.
+
+
+
+
+
+
+
+ {% for r in roles %}
+
+
+
+ ●
+
+
+
+
{{ r.name }}
+
+ Niveau {{ r.level }}
+
+
+ {% if r.description %}
+
{{ r.description }}
+ {% else %}
+ {% set default_desc = default_roles_meta.get(r.name, {}).get('description') %}
+ {% if default_desc %}
+
{{ default_desc }}
+ {% endif %}
+ {% endif %}
+
+
+
+
+
+
+ Modifier ce rôle
+
+
+
+ Niveau (0-99)
+
+
+
+ Couleur
+
+
+
+ Description
+
+
+
+
+ Enregistrer
+
+ {% if r.name not in ['viewer_twitch','utilisateur_discord','moderateur_discord','expert_discord','moderateur_twitch','super_administrateur'] %}
+
+ Supprimer
+
+ {% endif %}
+
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+
+
+ Créer un nouveau rôle
+
+
+
+ Nom du rôle *
+
+
+
+ Niveau (0-99) *
+
+
+
+ Couleur
+
+
+
+ Icône (optionnel)
+
+
+
+ Description
+
+
+
+
+ Créer le rôle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Accès aux pages
+
+ Définissez le rôle minimum requis pour accéder à chaque section de l'interface
+
+
+
+
+
+
+
+
+
+
+
+
+ ⚡ Modification en masse
+
+
+
+
+ Appliquer le rôle :
+
+ {% for r in roles %}
+ {{ r.name }} (niveau {{ r.level }})
+ {% endfor %}
+
+
+ aux pages cochées :
+
+
+
+ Tout cocher
+
+
+ Tout décocher
+
+
+
+ {% for page_key, meta in page_metadata.items() %}
+
+
+ {{ meta.label }}
+
+ {% endfor %}
+
+
+ Appliquer à la sélection
+
+
+
+
+
+
+
+ {% for category_key in ['general', 'content', 'moderation', 'config', 'admin'] %}
+ {% if category_key in pages_by_category %}
+ {% set category_info = category_labels[category_key] %}
+
+
+
+ ●
+
+
{{ category_info.label }}
+
+
+
+
+ {% for page_data in pages_by_category[category_key] %}
+ {% set page_key = page_data.key %}
+ {% set meta = page_data.meta %}
+ {% set perm = page_data.permission %}
+ {% set min_lvl = perm.min_level if perm else 0 %}
+
+
+
+
+
{{ meta.label }}
+
{{ meta.description }}
+
+ {% for r in roles %}
+ {% if r.level == min_lvl %}
+
+ {{ r.name }}
+
+ {% endif %}
+ {% endfor %}
+
+
+
+
+ {% for r in roles %}
+ {{ r.name }} (niv. {{ r.level }})
+ {% endfor %}
+
+
+ OK
+
+
+
+ {% endfor %}
+
+
+ {% endif %}
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
Guide des permissions
+
+
+
+
+
+
+
+
+
🎭 Rôles
+
Les rôles définissent le niveau d'autorité d'un utilisateur. Plus le niveau est élevé, plus l'utilisateur a accès à des fonctionnalités.
+
+ Niveau 0-1 : Accès basique en lecture seule
+ Niveau 2-3 : Modification de contenu et gestion basique
+ Niveau 4 : Modération et configuration avancée
+ Niveau 5+ : Administration complète du système
+
+
+
+
🔐 Permissions par page
+
Chaque page peut être restreinte à un rôle minimum. Un utilisateur doit avoir au moins le niveau requis pour y accéder.
+
+
+
📋 Catégories
+
+ ● Général : Pages d'accueil et navigation
+ ● Contenu : Gestion des commandes, alertes, humeurs, etc.
+ ● Modération : Outils de modération Discord/Twitch
+ ● Configuration : Paramètres techniques des bots
+ ● Administration : Gestion des utilisateurs et permissions
+
+
+
+
💡 Bonnes pratiques
+
+ Attribuez le rôle le plus bas possible selon les besoins
+ Testez les permissions avec un compte utilisateur avant de les déployer
+ Documentez les rôles personnalisés avec des descriptions claires
+ Vérifiez régulièrement les accès des utilisateurs
+
+
+
+
+
+
+ Compris !
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/webapp/templates/template.html b/webapp/templates/template.html
index d33d0ec..e171b20 100644
--- a/webapp/templates/template.html
+++ b/webapp/templates/template.html
@@ -94,6 +94,10 @@
Notification Twitch
+
+
+ Événements Twitch (sub, raid, clip)
+
Notification YouTube
@@ -102,6 +106,10 @@
ProtonDB
+
+ 🎁
+ FreeLoot
+
@@ -111,6 +119,10 @@
Modération
+
+
+ Auto Rooms
+