Ajout de la gestion des jeux gratuits et des invitations Discord. Création des modèles FreeGame et DiscordInvite, mise à jour de la base de données et des fichiers de configuration. Intégration de nouvelles fonctionnalités pour synchroniser et révoquer les invitations, ainsi que l'ajout d'un flux RSS pour les jeux gratuits. Amélioration de l'interface d'administration avec des statistiques et des options de gestion des serveurs.
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
from flask import render_template, request, redirect, url_for
|
||||
from flask import render_template, request, redirect, url_for, flash
|
||||
from webapp import webapp
|
||||
from database import db
|
||||
from database.helpers import ConfigurationHelper
|
||||
from discordbot import bot
|
||||
import asyncio
|
||||
|
||||
@webapp.route("/configurations")
|
||||
def openConfigurations():
|
||||
return render_template("configurations.html", configuration = ConfigurationHelper(), channels = bot.getAllTextChannel(), roles = bot.getAllRoles())
|
||||
return render_template("configurations.html", configuration = ConfigurationHelper(), channels = bot.getAllTextChannel(), roles = bot.getAllRoles(), guilds = bot.getAllGuilds())
|
||||
|
||||
@webapp.route("/configurations/update", methods=['POST'])
|
||||
def updateConfiguration():
|
||||
@@ -17,7 +18,8 @@ def updateConfiguration():
|
||||
'moderation_ban_enable': 'moderation_staff_role_ids',
|
||||
'moderation_kick_enable': 'moderation_staff_role_ids',
|
||||
'welcome_enable': 'welcome_channel_id',
|
||||
'leave_enable': 'leave_channel_id'
|
||||
'leave_enable': 'leave_channel_id',
|
||||
'autorole_enable': 'autorole_role_id'
|
||||
}
|
||||
|
||||
staff_roles = request.form.getlist('moderation_staff_role_ids')
|
||||
@@ -40,3 +42,27 @@ def updateConfiguration():
|
||||
db.session.commit()
|
||||
return redirect(request.referrer)
|
||||
|
||||
@webapp.route("/configurations/leave-guild", methods=['POST'])
|
||||
def leaveGuild():
|
||||
guild_id = request.form.get('guild_id')
|
||||
confirm = request.form.get('confirm_leave')
|
||||
|
||||
if not guild_id or not confirm:
|
||||
flash('Veuillez sélectionner un serveur et confirmer l\'action.', 'error')
|
||||
return redirect(url_for('openConfigurations'))
|
||||
|
||||
try:
|
||||
guild_id_int = int(guild_id)
|
||||
# Exécuter la coroutine dans le loop du bot
|
||||
future = asyncio.run_coroutine_threadsafe(bot.leaveGuild(guild_id_int), bot.loop)
|
||||
result = future.result(timeout=10)
|
||||
|
||||
if result:
|
||||
flash('Le bot a quitté le serveur avec succès.', 'success')
|
||||
else:
|
||||
flash('Serveur non trouvé.', 'error')
|
||||
except Exception as e:
|
||||
flash(f'Erreur lors de la tentative de quitter le serveur : {str(e)}', 'error')
|
||||
|
||||
return redirect(url_for('openConfigurations'))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user