Mise à jour du système de whitelist, sécurité et logging
This commit is contained in:
parent
d82f704c75
commit
1e384032be
7 changed files with 199 additions and 145 deletions
|
|
@ -188,10 +188,10 @@ async def generate_servers_json(bot: discord.Client) -> dict:
|
|||
entry["verificationLevel"] = str(guild.verification_level)
|
||||
|
||||
if fields.get("memberCount"):
|
||||
try:
|
||||
members = [m async for m in guild.fetch_members(limit=None)]
|
||||
entry["memberCount"] = sum(1 for m in members if not m.bot)
|
||||
except Exception:
|
||||
# Use cache if available (intents.members is True), otherwise fallback to count
|
||||
if guild.members:
|
||||
entry["memberCount"] = sum(1 for m in guild.members if not m.bot)
|
||||
else:
|
||||
entry["memberCount"] = guild.member_count
|
||||
|
||||
if fields.get("owner"):
|
||||
|
|
@ -209,22 +209,27 @@ async def generate_servers_json(bot: discord.Client) -> dict:
|
|||
pass
|
||||
|
||||
# Membres avec un rôle dont le nom correspond à founderRoles
|
||||
try:
|
||||
async for member in guild.fetch_members(limit=None):
|
||||
if member.bot or member.id == guild.owner_id:
|
||||
continue
|
||||
for role in member.roles:
|
||||
if any(key in role.name.lower() for key in founder_keys):
|
||||
founders.append({
|
||||
"id": str(member.id),
|
||||
"username": member.name,
|
||||
"displayName": member.display_name,
|
||||
"avatar": str(member.display_avatar.url),
|
||||
"isOwner": False,
|
||||
})
|
||||
break
|
||||
except Exception:
|
||||
pass
|
||||
# Use cache if possible
|
||||
members_to_check = guild.members if guild.members else []
|
||||
if not members_to_check:
|
||||
try:
|
||||
members_to_check = [m async for m in guild.fetch_members(limit=None)]
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
for member in members_to_check:
|
||||
if member.bot or member.id == guild.owner_id:
|
||||
continue
|
||||
for role in member.roles:
|
||||
if any(key in role.name.lower() for key in founder_keys):
|
||||
founders.append({
|
||||
"id": str(member.id),
|
||||
"username": member.name,
|
||||
"displayName": member.display_name,
|
||||
"avatar": str(member.display_avatar.url),
|
||||
"isOwner": False,
|
||||
})
|
||||
break
|
||||
|
||||
entry["founders"] = founders
|
||||
|
||||
|
|
@ -259,7 +264,14 @@ async def generate_members_json(bot: discord.Client, guild_id: Optional[int] = N
|
|||
raise ValueError(f"Serveur introuvable : {target_id}")
|
||||
|
||||
members_list = []
|
||||
async for member in guild.fetch_members(limit=None):
|
||||
# Use cached members if available, or fetch if not
|
||||
source = guild.members if guild.members else []
|
||||
if not source:
|
||||
async for m in guild.fetch_members(limit=None):
|
||||
if not m.bot:
|
||||
source.append(m)
|
||||
|
||||
for member in source:
|
||||
if member.bot:
|
||||
continue
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue