Migration de Kuby vers disnake
This commit is contained in:
parent
dc6e235f27
commit
c8c579eefe
36 changed files with 1205 additions and 1253 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import discord
|
||||
from discord.ext import commands
|
||||
from discord.ui import View, Button
|
||||
import disnake
|
||||
from disnake.ext import commands
|
||||
from disnake.ui import View, Button
|
||||
import json
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
|
@ -14,18 +14,18 @@ class WhitelistMonitor(commands.Cog):
|
|||
self.whitelist_file = "data/whitelist.json"
|
||||
self.persistent_views_added = False
|
||||
self.big_permissions = [
|
||||
discord.Permissions.administrator,
|
||||
discord.Permissions.manage_guild,
|
||||
discord.Permissions.manage_roles,
|
||||
discord.Permissions.manage_channels,
|
||||
discord.Permissions.kick_members,
|
||||
discord.Permissions.ban_members,
|
||||
discord.Permissions.manage_messages,
|
||||
discord.Permissions.moderate_members,
|
||||
discord.Permissions.manage_nicknames,
|
||||
discord.Permissions.manage_emojis,
|
||||
discord.Permissions.manage_webhooks,
|
||||
discord.Permissions.view_audit_log
|
||||
disnake.Permissions.administrator,
|
||||
disnake.Permissions.manage_guild,
|
||||
disnake.Permissions.manage_roles,
|
||||
disnake.Permissions.manage_channels,
|
||||
disnake.Permissions.kick_members,
|
||||
disnake.Permissions.ban_members,
|
||||
disnake.Permissions.manage_messages,
|
||||
disnake.Permissions.moderate_members,
|
||||
disnake.Permissions.manage_nicknames,
|
||||
disnake.Permissions.manage_emojis,
|
||||
disnake.Permissions.manage_webhooks,
|
||||
disnake.Permissions.view_audit_log
|
||||
]
|
||||
|
||||
def load_whitelist(self) -> Dict[str, List[str]]:
|
||||
|
|
@ -70,7 +70,7 @@ class WhitelistMonitor(commands.Cog):
|
|||
return True
|
||||
return False
|
||||
|
||||
def has_big_permissions(self, role: discord.Role) -> bool:
|
||||
def has_big_permissions(self, role: disnake.Role) -> bool:
|
||||
"""Check if role has significant permissions."""
|
||||
permissions = role.permissions
|
||||
for perm in self.big_permissions:
|
||||
|
|
@ -78,7 +78,7 @@ class WhitelistMonitor(commands.Cog):
|
|||
return True
|
||||
return False
|
||||
|
||||
async def send_whitelist_notification(self, member: discord.Member, removed_roles: List[discord.Role]):
|
||||
async def send_whitelist_notification(self, member: disnake.Member, removed_roles: List[disnake.Role]):
|
||||
"""Send DM notification to user about whitelist member losing roles."""
|
||||
try:
|
||||
# Find guild administrators to notify
|
||||
|
|
@ -87,10 +87,10 @@ class WhitelistMonitor(commands.Cog):
|
|||
return
|
||||
|
||||
# Create embed
|
||||
embed = discord.Embed(
|
||||
embed = disnake.Embed(
|
||||
title="⚠️ Whitelist Alert",
|
||||
description=f"Un membre whitelisté a perdu des rôles importants dans **{member.guild.name}**.",
|
||||
color=discord.Color.orange(),
|
||||
color=disnake.Color.orange(),
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ class WhitelistMonitor(commands.Cog):
|
|||
for admin in admins:
|
||||
try:
|
||||
await admin.send(embed=embed, view=view)
|
||||
except discord.Forbidden:
|
||||
except disnake.Forbidden:
|
||||
continue # User has DMs disabled
|
||||
|
||||
except Exception as e:
|
||||
|
|
@ -155,7 +155,7 @@ class WhitelistMonitor(commands.Cog):
|
|||
print(f"[WhitelistMonitor] Error registering views: {e}")
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_member_update(self, before: discord.Member, after: discord.Member):
|
||||
async def on_member_update(self, before: disnake.Member, after: disnake.Member):
|
||||
"""Monitor role changes for whitelist members."""
|
||||
if before.roles == after.roles:
|
||||
return
|
||||
|
|
@ -173,7 +173,7 @@ class WhitelistMonitor(commands.Cog):
|
|||
await self.send_whitelist_notification(after, important_removed)
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_member_remove(self, member: discord.Member):
|
||||
async def on_member_remove(self, member: disnake.Member):
|
||||
"""Auto-remove from whitelist when member leaves server."""
|
||||
if self.is_whitelisted(member.guild.id, member.id):
|
||||
removed = self.remove_from_whitelist(member.guild.id, member.id)
|
||||
|
|
@ -184,10 +184,10 @@ class WhitelistMonitor(commands.Cog):
|
|||
if log_channel_id:
|
||||
log_channel = member.guild.get_channel(log_channel_id)
|
||||
if log_channel:
|
||||
embed = discord.Embed(
|
||||
embed = disnake.Embed(
|
||||
title="🗑️ Auto-Whitelist Removal",
|
||||
description=f"{member.mention} a été retiré automatiquement de la whitelist après avoir quitté le serveur.",
|
||||
color=discord.Color.red(),
|
||||
color=disnake.Color.red(),
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
await log_channel.send(embed=embed)
|
||||
|
|
@ -214,15 +214,15 @@ class WhitelistRemovalView(View):
|
|||
self.user_id = user_id
|
||||
self.guild_id = guild_id
|
||||
|
||||
@discord.ui.button(
|
||||
@disnake.ui.button(
|
||||
label="Retirer de la whitelist",
|
||||
style=discord.ButtonStyle.red,
|
||||
style=disnake.ButtonStyle.red,
|
||||
emoji="🗑️",
|
||||
custom_id="whitelist_remove_button"
|
||||
)
|
||||
async def remove_whitelist(
|
||||
self,
|
||||
interaction: discord.Interaction,
|
||||
interaction: disnake.Interaction,
|
||||
button: Button
|
||||
):
|
||||
"""Remove user from whitelist when button is clicked."""
|
||||
|
|
@ -250,15 +250,15 @@ class WhitelistRemovalView(View):
|
|||
# Update button
|
||||
button.disabled = True
|
||||
button.label = "✅ Retiré"
|
||||
button.style = discord.ButtonStyle.green
|
||||
button.style = disnake.ButtonStyle.green
|
||||
|
||||
await interaction.response.edit_message(view=self)
|
||||
|
||||
# Send confirmation
|
||||
embed = discord.Embed(
|
||||
embed = disnake.Embed(
|
||||
title="✅ Retrait effectué",
|
||||
description=f"{user_mention} a été retiré de la whitelist.",
|
||||
color=discord.Color.green()
|
||||
color=disnake.Color.green()
|
||||
)
|
||||
await interaction.followup.send(embed=embed, ephemeral=True)
|
||||
|
||||
|
|
@ -270,10 +270,10 @@ class WhitelistRemovalView(View):
|
|||
if log_channel_id:
|
||||
log_channel = guild.get_channel(log_channel_id)
|
||||
if log_channel:
|
||||
embed = discord.Embed(
|
||||
embed = disnake.Embed(
|
||||
title="🗑️ Whitelist Manual Removal",
|
||||
description=f"{user_mention} a été retiré manuellement de la whitelist.",
|
||||
color=discord.Color.green(),
|
||||
color=disnake.Color.green(),
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
embed.set_footer(text=f"Retiré par {interaction.user.display_name}")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue