Nouvelles fonctionnalités : - Système de modération Twitch complet (bans, timeouts, avertissements) - Filtre de liens intelligent pour Twitch avec whitelist/blacklist - Notifications d'événements Twitch (follows, subs, raids, etc.) - Système Freeloot Discord avec flux RSS dédié - Salons automatiques Discord (création/suppression dynamique) - Authentification utilisateur pour l'interface web (login/register) - Gestion des utilisateurs et permissions - Interface de modération Twitch dans la webapp - Interface de gestion des événements Twitch - Configuration des paramètres utilisateur - Migration BDD pour les mots bannis Améliorations de l'interface : - Refonte complète des templates (configurations, commandes, humeurs, etc.) - Nouvelle page de settings utilisateur - Page de gestion des utilisateurs (admin) - Page d'erreur 403 personnalisée - Amélioration de la navigation et du design global - Intégration de nouvelles sections dans le menu principal Modifications techniques : - Ajout de nouveaux modèles en base de données - Extension des helpers database - Mise à jour des dépendances (requirements.txt) - Amélioration de la gestion des annonces Twitch - Refactorisation du code pour meilleure maintenabilité Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from flask import render_template, request, redirect, url_for
|
|
from webapp import webapp
|
|
from webapp.auth import require_page, can_write_page
|
|
from database import db
|
|
from database.models import GameAlias
|
|
from database.helpers import ConfigurationHelper
|
|
|
|
@webapp.route("/protondb")
|
|
@require_page("protondb")
|
|
def openProtonDB():
|
|
aliases = GameAlias.query.all()
|
|
return render_template("protondb.html", aliases=aliases, configuration=ConfigurationHelper())
|
|
|
|
@webapp.route("/protondb/gamealias/add", methods=['POST'])
|
|
@require_page("protondb")
|
|
def addGameAlias():
|
|
if not can_write_page("protondb"):
|
|
return render_template("403.html"), 403
|
|
game_alias = GameAlias(alias=request.form.get('alias'), name=request.form.get('name'))
|
|
db.session.add(game_alias)
|
|
db.session.commit()
|
|
return redirect(url_for('openProtonDB'))
|
|
|
|
@webapp.route('/protondb/gamealias/del/<int:id>')
|
|
@require_page("protondb")
|
|
def delGameAlias(id: int):
|
|
if not can_write_page("protondb"):
|
|
return render_template("403.html"), 403
|
|
GameAlias.query.filter_by(id=id).delete()
|
|
db.session.commit()
|
|
return redirect(url_for('openProtonDB'))
|
|
|