mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-06-17 03:45:25 +02:00
Remove guild members table for storing in redis
This commit is contained in:
@ -6,7 +6,6 @@ import datetime
|
||||
db = Gino()
|
||||
|
||||
from titanembeds.database.guilds import Guilds
|
||||
from titanembeds.database.guild_members import GuildMembers
|
||||
from titanembeds.database.unauthenticated_users import UnauthenticatedUsers
|
||||
from titanembeds.database.unauthenticated_bans import UnauthenticatedBans
|
||||
|
||||
@ -70,82 +69,6 @@ class DatabaseInterface(object):
|
||||
if gui:
|
||||
await Messages.delete.where(Messages.guild_id == int(guild.id)).gino.status()
|
||||
await gui.delete()
|
||||
|
||||
async def update_guild_member(self, member, active=True, banned=False, guild=None):
|
||||
if guild:
|
||||
dbmember = await GuildMembers.query \
|
||||
.where(GuildMembers.guild_id == int(guild.id)) \
|
||||
.where(GuildMembers.user_id == int(member.id)) \
|
||||
.order_by(GuildMembers.id).gino.all()
|
||||
else:
|
||||
dbmember = await GuildMembers.query \
|
||||
.where(GuildMembers.guild_id == int(member.guild.id)) \
|
||||
.where(GuildMembers.user_id == int(member.id)) \
|
||||
.order_by(GuildMembers.id).gino.all()
|
||||
if not dbmember:
|
||||
await GuildMembers.create(
|
||||
guild_id = int(member.guild.id),
|
||||
user_id = int(member.id),
|
||||
username = member.name,
|
||||
discriminator = int(member.discriminator),
|
||||
nickname = member.nick,
|
||||
avatar = member.avatar,
|
||||
active = active,
|
||||
banned = banned,
|
||||
roles = json.dumps(list_role_ids(member.roles))
|
||||
)
|
||||
else:
|
||||
if len(dbmember) > 1:
|
||||
for mem in dbmember[1:]:
|
||||
await mem.delete()
|
||||
dbmember = dbmember[0]
|
||||
if dbmember.banned != banned or dbmember.active != active or dbmember.username != member.name or dbmember.discriminator != int(member.discriminator) or dbmember.nickname != member.nick or dbmember.avatar != member.avatar or set(json.loads(dbmember.roles)) != set(list_role_ids(member.roles)):
|
||||
await dbmember.update(
|
||||
banned = banned,
|
||||
active = active,
|
||||
username = member.name,
|
||||
discriminator = int(member.discriminator),
|
||||
nickname = member.nick,
|
||||
avatar = member.avatar,
|
||||
roles = json.dumps(list_role_ids(member.roles))
|
||||
).apply()
|
||||
|
||||
async def unban_server_user(self, user, server):
|
||||
await GuildMembers.update.values(banned = False) \
|
||||
.where(GuildMembers.guild_id == int(server.id)) \
|
||||
.where(GuildMembers.user_id == int(user.id)) \
|
||||
.gino.status()
|
||||
|
||||
|
||||
async def flag_unactive_guild_members(self, guild_id, guild_members):
|
||||
async with db.transaction():
|
||||
async for member in GuildMembers.query \
|
||||
.where(GuildMembers.guild_id == int(guild_id)) \
|
||||
.where(GuildMembers.active == True).gino.iterate():
|
||||
dismember = discord.utils.get(guild_members, id=member.user_id)
|
||||
if not dismember:
|
||||
await member.update(active = False).apply()
|
||||
|
||||
async def flag_unactive_bans(self, guild_id, guildbans):
|
||||
for usr in guildbans:
|
||||
dbusr = await GuildMembers.query \
|
||||
.where(GuildMembers.guild_id == int(guild_id)) \
|
||||
.where(GuildMembers.user_id == int(usr.id)) \
|
||||
.where(GuildMembers.active == False).gino.first()
|
||||
if dbusr:
|
||||
dbusr.update(banned=True).apply()
|
||||
else:
|
||||
await GuildMembers.create(
|
||||
guild_id = int(guild_id),
|
||||
user_id = int(usr.id),
|
||||
username = usr.name,
|
||||
discriminator = int(usr.discriminator),
|
||||
nickname = None,
|
||||
avatar = usr.avatar,
|
||||
active = False,
|
||||
banned = True,
|
||||
roles = "[]"
|
||||
)
|
||||
|
||||
async def ban_unauth_user_by_query(self, guild_id, placer_id, username, discriminator):
|
||||
dbuser = None
|
||||
|
@ -1,14 +0,0 @@
|
||||
from titanembeds.database import db
|
||||
|
||||
class GuildMembers(db.Model):
|
||||
__tablename__ = "guild_members"
|
||||
id = db.Column(db.Integer, primary_key=True) # Auto incremented id
|
||||
guild_id = db.Column(db.BigInteger) # Discord guild id
|
||||
user_id = db.Column(db.BigInteger) # Discord user id
|
||||
username = db.Column(db.String(255)) # Name
|
||||
discriminator = db.Column(db.Integer) # User discriminator
|
||||
nickname = db.Column(db.String(255)) # User nickname
|
||||
avatar = db.Column(db.String(255)) # The avatar str of the user
|
||||
active = db.Column(db.Boolean()) # If the user is a member of the guild
|
||||
banned = db.Column(db.Boolean()) # If the user is banned in the guild
|
||||
roles = db.Column(db.Text()) # Member roles
|
Reference in New Issue
Block a user