Migration de Kuby vers disnake
This commit is contained in:
parent
dc6e235f27
commit
c8c579eefe
36 changed files with 1205 additions and 1253 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import discord
|
||||
import disnake
|
||||
import json
|
||||
import os
|
||||
import asyncio
|
||||
|
|
@ -18,7 +18,7 @@ class AdvancedLogger:
|
|||
os.makedirs(self.logs_dir, exist_ok=True)
|
||||
os.makedirs(self.member_logs_dir, exist_ok=True)
|
||||
|
||||
def log_message_event(self, message: discord.Message, event_type: str, details: Dict = None):
|
||||
def log_message_event(self, message: disnake.Message, event_type: str, details: Dict = None):
|
||||
"""Log message events (sent, edited, deleted)"""
|
||||
log_data = {
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
|
|
@ -37,7 +37,7 @@ class AdvancedLogger:
|
|||
|
||||
asyncio.create_task(self._write_log_async("messages", log_data))
|
||||
|
||||
def log_role_event(self, member: discord.Member, role: discord.Role, event_type: str):
|
||||
def log_role_event(self, member: disnake.Member, role: disnake.Role, event_type: str):
|
||||
"""Log role changes (added/removed)"""
|
||||
log_data = {
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
|
|
@ -52,7 +52,7 @@ class AdvancedLogger:
|
|||
|
||||
asyncio.create_task(self._write_log_async("roles", log_data))
|
||||
|
||||
def log_voice_event(self, member: discord.Member, channel: discord.VoiceChannel, event_type: str):
|
||||
def log_voice_event(self, member: disnake.Member, channel: disnake.VoiceChannel, event_type: str):
|
||||
"""Log voice channel events (join/leave)"""
|
||||
log_data = {
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
|
|
@ -66,7 +66,7 @@ class AdvancedLogger:
|
|||
|
||||
asyncio.create_task(self._write_log_async("voice", log_data))
|
||||
|
||||
def log_member_leave(self, member: discord.Member):
|
||||
def log_member_leave(self, member: disnake.Member):
|
||||
"""Log when a member leaves the server"""
|
||||
roles_data = {
|
||||
"role_ids": [role.id for role in member.roles if role.name != "@everyone"],
|
||||
|
|
@ -91,7 +91,7 @@ class AdvancedLogger:
|
|||
# Also save to general logs
|
||||
asyncio.create_task(self._write_log_async("member_events", log_data))
|
||||
|
||||
def log_member_join(self, member: discord.Member):
|
||||
def log_member_join(self, member: disnake.Member):
|
||||
"""Log when a member joins the server"""
|
||||
log_data = {
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
|
|
@ -162,12 +162,12 @@ class AdvancedLogger:
|
|||
except Exception as e:
|
||||
print(f"CRITICAL ERROR in AdvancedLogger._write_member_log_sync: {e}")
|
||||
|
||||
async def send_leave_notification(self, member: discord.Member, channel: discord.TextChannel):
|
||||
async def send_leave_notification(self, member: disnake.Member, channel: disnake.TextChannel):
|
||||
"""Send notification when member leaves"""
|
||||
embed = discord.Embed(
|
||||
embed = disnake.Embed(
|
||||
title="👋 Membre parti",
|
||||
description=f"{member.mention} ({member.name}#{member.discriminator}) a quitté le serveur.",
|
||||
color=discord.Color.red(),
|
||||
description=f"{member.mention} ({member.name}) a quitté le serveur.",
|
||||
color=disnake.Color.red(),
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ from datetime import datetime, timezone
|
|||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
import discord
|
||||
import disnake
|
||||
|
||||
logger = logging.getLogger("kuby.json_export")
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ def get_history() -> list:
|
|||
|
||||
# ─── Génération servers.json ─────────────────────────────────────────────────
|
||||
|
||||
async def generate_servers_json(bot: discord.Client) -> dict:
|
||||
async def generate_servers_json(bot: disnake.Client) -> dict:
|
||||
config = load_config()
|
||||
fields = config["serverFields"]
|
||||
founder_keys = [r.lower() for r in config.get("founderRoles", ["fondateur", "founder"])]
|
||||
|
|
@ -249,7 +249,7 @@ async def generate_servers_json(bot: discord.Client) -> dict:
|
|||
|
||||
# ─── Génération members.json ─────────────────────────────────────────────────
|
||||
|
||||
async def generate_members_json(bot: discord.Client, guild_id: Optional[int] = None) -> dict:
|
||||
async def generate_members_json(bot: disnake.Client, guild_id: Optional[int] = None) -> dict:
|
||||
config = load_config()
|
||||
fields = config["memberFields"]
|
||||
target_id = guild_id or (int(config["targetGuildId"]) if config["targetGuildId"] else None)
|
||||
|
|
@ -324,7 +324,7 @@ async def generate_members_json(bot: discord.Client, guild_id: Optional[int] = N
|
|||
|
||||
# ─── Génération complète ─────────────────────────────────────────────────────
|
||||
|
||||
async def generate_all(bot: discord.Client, trigger: str = "auto") -> dict:
|
||||
async def generate_all(bot: disnake.Client, trigger: str = "auto") -> dict:
|
||||
results = {"servers": None, "members": None, "errors": [], "trigger": trigger}
|
||||
try:
|
||||
results["servers"] = await generate_servers_json(bot)
|
||||
|
|
@ -343,7 +343,7 @@ async def generate_all(bot: discord.Client, trigger: str = "auto") -> dict:
|
|||
|
||||
# ─── Prévisualisation (sans écriture fichier) ────────────────────────────────
|
||||
|
||||
async def preview_servers(bot: discord.Client, limit: int = 3) -> list:
|
||||
async def preview_servers(bot: disnake.Client, limit: int = 3) -> list:
|
||||
"""Retourne un aperçu de N serveurs sans écrire le fichier."""
|
||||
config = load_config()
|
||||
fields = config["serverFields"]
|
||||
|
|
@ -366,7 +366,7 @@ async def preview_servers(bot: discord.Client, limit: int = 3) -> list:
|
|||
return results
|
||||
|
||||
|
||||
async def preview_members(bot: discord.Client, limit: int = 5) -> dict:
|
||||
async def preview_members(bot: disnake.Client, limit: int = 5) -> dict:
|
||||
"""Retourne un aperçu de N membres sans écrire le fichier."""
|
||||
config = load_config()
|
||||
target_id = int(config["targetGuildId"]) if config["targetGuildId"] else None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue