jankv2 (this hopefully fixes everything)
This commit is contained in:
parent
e4fdb14e6a
commit
a1b175ca76
|
@ -107,8 +107,8 @@ class DiscordDataClient(discord.Client):
|
|||
self.logger.info(f"Scanning server: {guild.name} ({guild.id})")
|
||||
|
||||
try:
|
||||
# Get all members
|
||||
members = [member async for member in guild.fetch_members(limit=None)]
|
||||
# Get all members - different API for discord.py-self
|
||||
members = [member async for member in guild.fetch_members()]
|
||||
|
||||
for member in members:
|
||||
if not member.bot:
|
||||
|
|
|
@ -372,10 +372,13 @@ class MariaDBDatabase:
|
|||
|
||||
async def save_user(self, user_data: UserData):
|
||||
"""Save or update user data with transaction."""
|
||||
async with self.pool.begin() as conn:
|
||||
async with self.pool.cursor() as cursor:
|
||||
try:
|
||||
# Start transaction
|
||||
await cursor.execute("START TRANSACTION")
|
||||
|
||||
# Upsert user data
|
||||
await conn.execute("""
|
||||
await cursor.execute("""
|
||||
INSERT INTO users (
|
||||
user_id, username, discriminator, display_name,
|
||||
avatar_url, banner_url, bio, status, activity
|
||||
|
@ -402,23 +405,25 @@ class MariaDBDatabase:
|
|||
))
|
||||
|
||||
# Update servers relationship
|
||||
await conn.execute(
|
||||
await cursor.execute(
|
||||
"DELETE FROM user_servers WHERE user_id = %s",
|
||||
(user_data.user_id,)
|
||||
)
|
||||
|
||||
if user_data.servers:
|
||||
server_values = [(user_data.user_id, s) for s in user_data.servers]
|
||||
await conn.executemany(
|
||||
"INSERT INTO user_servers (user_id, server_id) VALUES (%s, %s)",
|
||||
server_values
|
||||
)
|
||||
for server_id in user_data.servers:
|
||||
await cursor.execute(
|
||||
"INSERT INTO user_servers (user_id, server_id) VALUES (%s, %s)",
|
||||
(user_data.user_id, server_id)
|
||||
)
|
||||
|
||||
# Commit transaction
|
||||
await cursor.execute("COMMIT")
|
||||
self.logger.debug(f"Saved user {user_data.username}#{user_data.discriminator}")
|
||||
|
||||
except MySQLError as e:
|
||||
self.logger.error(f"Error saving user: {e}")
|
||||
await conn.rollback()
|
||||
await cursor.execute("ROLLBACK")
|
||||
raise
|
||||
|
||||
async def add_server_to_user(self, user_id: int, server_id: int):
|
||||
|
@ -498,6 +503,12 @@ class MariaDBDatabase:
|
|||
|
||||
return stats
|
||||
|
||||
async def cleanup_old_backups(self, max_backups: int = 5):
|
||||
"""Clean up old backup documents (placeholder for MariaDB)."""
|
||||
# For MariaDB, we could implement this as cleaning up old backup tables
|
||||
# or maintaining a backup log table, but for now it's a no-op
|
||||
self.logger.info("MariaDB cleanup completed")
|
||||
|
||||
async def close(self):
|
||||
"""Close database connection."""
|
||||
if self.pool:
|
||||
|
|
Loading…
Reference in a new issue