mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-06-16 11:25:22 +02:00
Remove guild members table for storing in redis
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
from flask import Blueprint, url_for, redirect, session, render_template, abort, request, jsonify
|
||||
from flask_socketio import emit
|
||||
from functools import wraps
|
||||
from titanembeds.database import db, get_administrators_list, Cosmetics, Guilds, UnauthenticatedUsers, UnauthenticatedBans, TitanTokens, TokenTransactions, get_titan_token, set_titan_token, list_disabled_guilds, DisabledGuilds, UserCSS, AuthenticatedUsers, DiscordBotsOrgTransactions, GuildMembers
|
||||
from titanembeds.database import db, get_administrators_list, Cosmetics, Guilds, UnauthenticatedUsers, UnauthenticatedBans, TitanTokens, TokenTransactions, get_titan_token, set_titan_token, list_disabled_guilds, DisabledGuilds, UserCSS, AuthenticatedUsers, DiscordBotsOrgTransactions
|
||||
from titanembeds.oauth import generate_guild_icon_url
|
||||
from titanembeds.utils import get_online_embed_user_keys
|
||||
from titanembeds.utils import get_online_embed_user_keys, redisqueue
|
||||
import datetime
|
||||
import json
|
||||
from sqlalchemy import func
|
||||
|
@ -1,4 +1,4 @@
|
||||
from titanembeds.database import db, Guilds, UnauthenticatedUsers, UnauthenticatedBans, AuthenticatedUsers, GuildMembers, list_all_guild_members, get_guild_member, get_administrators_list, get_badges, DiscordBotsOrgTransactions
|
||||
from titanembeds.database import db, Guilds, UnauthenticatedUsers, UnauthenticatedBans, AuthenticatedUsers, get_administrators_list, get_badges, DiscordBotsOrgTransactions
|
||||
from titanembeds.decorators import valid_session_required, discord_users_only, abort_if_guild_disabled
|
||||
from titanembeds.utils import check_guild_existance, guild_accepts_visitors, guild_query_unauth_users_bool, get_client_ipaddr, discord_api, rate_limiter, channel_ratelimit_key, guild_ratelimit_key, user_unauthenticated, checkUserRevoke, checkUserBanned, update_user_status, check_user_in_guild, get_guild_channels, guild_webhooks_enabled, guild_unauthcaptcha_enabled, get_member_roles, get_online_embed_user_keys, redis_store, redisqueue
|
||||
from titanembeds.oauth import user_has_permission, generate_avatar_url, check_user_can_administrate_guild
|
||||
@ -79,8 +79,8 @@ def format_post_content(guild_id, channel_id, message, dbUser):
|
||||
else:
|
||||
username = session['username']
|
||||
if dbUser:
|
||||
if dbUser.nickname:
|
||||
username = dbUser.nickname
|
||||
if dbUser["nick"]:
|
||||
username = dbUser["nick"]
|
||||
message = u"**<{}#{}>** {}".format(username, session['discriminator'], message) # I would like to do a @ mention, but i am worried about notify spam
|
||||
return (message, illegal_post, illegal_reasons)
|
||||
|
||||
@ -100,10 +100,10 @@ def filter_guild_channel(guild_id, channel_id, force_everyone=False):
|
||||
return None
|
||||
|
||||
def get_online_discord_users(guild_id, embed):
|
||||
apimembers = list_all_guild_members(guild_id)
|
||||
apimembers = redisqueue.list_guild_members(guild_id)
|
||||
apimembers_filtered = {}
|
||||
for member in apimembers:
|
||||
apimembers_filtered[member["user"]["id"]] = member
|
||||
apimembers_filtered[member["id"]] = member
|
||||
guild_roles = json.loads(db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first().roles)
|
||||
guildroles_filtered = {}
|
||||
for role in guild_roles:
|
||||
@ -151,13 +151,13 @@ def get_online_embed_users(guild_id):
|
||||
users['unauthenticated'].append(meta)
|
||||
for user in auths:
|
||||
client_id = user.client_id
|
||||
usrdb = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id).filter(GuildMembers.user_id == client_id).first()
|
||||
usrdb = redisqueue.get_guild_member(guild_id, client_id)
|
||||
meta = {
|
||||
'id': str(usrdb.user_id),
|
||||
'username': usrdb.username,
|
||||
'nickname': usrdb.nickname,
|
||||
'discriminator': usrdb.discriminator,
|
||||
'avatar_url': generate_avatar_url(usrdb.user_id, usrdb.avatar),
|
||||
'id': str(usrdb["id"]),
|
||||
'username': usrdb["username"],
|
||||
'nickname': usrdb["nick"],
|
||||
'discriminator': usrdb["discriminator"],
|
||||
'avatar_url': generate_avatar_url(usrdb["id"], usrdb["avatar"]),
|
||||
}
|
||||
users['authenticated'].append(meta)
|
||||
return users
|
||||
@ -194,16 +194,16 @@ def get_channel_webhook_url(guild_id, channel_id):
|
||||
return webhook["content"]
|
||||
|
||||
def get_all_users(guild_id):
|
||||
users = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.active == True).all()
|
||||
users = redisqueue.list_guild_members(guild_id)
|
||||
mem = []
|
||||
for u in users:
|
||||
mem.append({
|
||||
"id": str(u.user_id),
|
||||
"avatar": u.avatar,
|
||||
"avatar_url": generate_avatar_url(u.user_id, u.avatar, u.discriminator, True),
|
||||
"username": u.username,
|
||||
"nickname": u.nickname,
|
||||
"discriminator": u.discriminator
|
||||
"id": str(u["id"]),
|
||||
"avatar": u["avatar"],
|
||||
"avatar_url": generate_avatar_url(u["id"], u["avatar"], u["discriminator"], True),
|
||||
"username": u["username"],
|
||||
"nickname": u["nick"],
|
||||
"discriminator": u["discriminator"]
|
||||
})
|
||||
return mem
|
||||
|
||||
@ -295,7 +295,7 @@ def post():
|
||||
channel_id = request.form.get('channel_id')
|
||||
content = request.form.get('content')
|
||||
if "user_id" in session:
|
||||
dbUser = GuildMembers.query.filter(GuildMembers.guild_id == guild_id).filter(GuildMembers.user_id == str(session['user_id'])).first()
|
||||
dbUser = redisqueue.get_guild_member(guild_id, session["user_id"])
|
||||
else:
|
||||
dbUser = None
|
||||
if user_unauthenticated():
|
||||
@ -331,8 +331,8 @@ def post():
|
||||
else:
|
||||
username = session["username"]
|
||||
if dbUser:
|
||||
if dbUser.nickname:
|
||||
username = dbUser.nickname
|
||||
if dbUser["nick"]:
|
||||
username = dbUser["nick"]
|
||||
# if content.startswith("(Titan Dev) "):
|
||||
# content = content[12:]
|
||||
# username = "(Titan Dev) " + username
|
||||
@ -527,13 +527,13 @@ def user_info(guild_id, user_id):
|
||||
"roles": [],
|
||||
"badges": [],
|
||||
}
|
||||
member = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.user_id == user_id).first()
|
||||
member = redisqueue.get_guild_member(guild_id, user_id)
|
||||
if member:
|
||||
usr["id"] = str(member.user_id)
|
||||
usr["username"] = member.username
|
||||
usr["nickname"] = member.nickname
|
||||
usr["discriminator"] = member.discriminator
|
||||
usr["avatar"] = member.avatar
|
||||
usr["id"] = str(member["id"])
|
||||
usr["username"] = member["username"]
|
||||
usr["nickname"] = member["nick"]
|
||||
usr["discriminator"] = member["discriminator"]
|
||||
usr["avatar"] = member["avatar"]
|
||||
usr["avatar_url"] = generate_avatar_url(usr["id"], usr["avatar"], usr["discriminator"], True)
|
||||
roles = get_member_roles(guild_id, user_id)
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
@ -543,7 +543,7 @@ def user_info(guild_id, user_id):
|
||||
if gr["id"] == r:
|
||||
usr["roles"].append(gr)
|
||||
usr["badges"] = get_badges(user_id)
|
||||
if redis_store.get("DiscordBotsOrgVoted/" + str(member.user_id)):
|
||||
if redis_store.get("DiscordBotsOrgVoted/" + str(member["id"])):
|
||||
usr["badges"].append("discordbotsorgvoted")
|
||||
return jsonify(usr)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
from titanembeds.utils import socketio, guild_accepts_visitors, get_client_ipaddr, discord_api, check_user_in_guild, get_guild_channels, update_user_status, guild_webhooks_enabled, redis_store
|
||||
from titanembeds.database import db, GuildMembers, get_guild_member, Guilds
|
||||
from titanembeds.utils import socketio, guild_accepts_visitors, get_client_ipaddr, discord_api, check_user_in_guild, get_guild_channels, update_user_status, guild_webhooks_enabled, redis_store, redisqueue
|
||||
from titanembeds.database import db, Guilds
|
||||
from flask_socketio import Namespace, emit, disconnect, join_room, leave_room
|
||||
import functools
|
||||
from flask import request, session
|
||||
@ -38,7 +38,7 @@ class Gateway(Namespace):
|
||||
if session["unauthenticated"]:
|
||||
emit("embed_user_connect", {"unauthenticated": True, "username": session["username"], "discriminator": session["user_id"]}, room="GUILD_"+guild_id)
|
||||
else:
|
||||
nickname = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.user_id == session["user_id"]).first().nickname
|
||||
nickname = redisqueue.get_guild_member(guild_id, session["user_id"]).get("nickname")
|
||||
emit("embed_user_connect", {"unauthenticated": False, "id": str(session["user_id"]), "nickname": nickname, "username": session["username"],"discriminator": session["discriminator"], "avatar_url": session["avatar"]}, room="GUILD_"+guild_id)
|
||||
emit("identified")
|
||||
self.teardown_db_session()
|
||||
@ -125,17 +125,17 @@ class Gateway(Namespace):
|
||||
|
||||
def get_user_color(self, guild_id, user_id):
|
||||
color = None
|
||||
member = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.user_id == user_id).first()
|
||||
member = redisqueue.get_guild_member(guild_id, user_id)
|
||||
if not member:
|
||||
return None
|
||||
guild_roles = json.loads(db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first().roles)
|
||||
guildroles_filtered = {}
|
||||
for role in guild_roles:
|
||||
guildroles_filtered[role["id"]] = role
|
||||
member_roleids = json.loads(member.roles)
|
||||
member_roleids = member["roles"]
|
||||
member_roles = []
|
||||
for roleid in member_roleids:
|
||||
role = guildroles_filtered.get(roleid)
|
||||
role = guildroles_filtered.get(str(roleid))
|
||||
if not role:
|
||||
continue
|
||||
member_roles.append(role)
|
||||
@ -148,6 +148,7 @@ class Gateway(Namespace):
|
||||
return color
|
||||
|
||||
def on_lookup_user_info(self, data):
|
||||
print("test")
|
||||
guild_id = data["guild_id"]
|
||||
name = data["name"]
|
||||
discriminator = data["discriminator"]
|
||||
@ -162,28 +163,36 @@ class Gateway(Namespace):
|
||||
"avatar_url": None,
|
||||
"discordbotsorgvoted": False,
|
||||
}
|
||||
member = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.username == name, GuildMembers.discriminator == discriminator).first()
|
||||
member = redisqueue.get_guild_member_named(guild_id, "{}#{}".format(name, discriminator))
|
||||
print("test1")
|
||||
if member:
|
||||
usr["id"] = str(member.user_id)
|
||||
usr["username"] = member.username
|
||||
usr["nickname"] = member.nickname
|
||||
usr["avatar"] = member.avatar
|
||||
print("test1.5")
|
||||
usr["id"] = str(member["id"])
|
||||
usr["username"] = member["username"]
|
||||
usr["nickname"] = member["nick"]
|
||||
usr["avatar"] = member["avatar"]
|
||||
print("test1.54")
|
||||
usr["color"] = self.get_user_color(guild_id, usr["id"])
|
||||
print("test1.55")
|
||||
if (usr["avatar"]):
|
||||
usr["avatar_url"] = "https://cdn.discordapp.com/avatars/{}/{}.png".format(usr["id"], usr["avatar"])
|
||||
usr["roles"] = json.loads(member.roles)
|
||||
usr["discordbotsorgvoted"] = bool(redis_store.get("DiscordBotsOrgVoted/" + str(member.user_id)))
|
||||
usr["roles"] = member["roles"]
|
||||
usr["discordbotsorgvoted"] = bool(redis_store.get("DiscordBotsOrgVoted/" + str(member["id"])))
|
||||
print("test1.6")
|
||||
else:
|
||||
member = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.nickname == name, GuildMembers.discriminator == discriminator).first()
|
||||
print("test2")
|
||||
member = redisqueue.get_guild_member_named(guild_id, name)
|
||||
print("test3")
|
||||
if member:
|
||||
usr["id"] = str(member.user_id)
|
||||
usr["username"] = member.username
|
||||
usr["nickname"] = member.nickname
|
||||
usr["avatar"] = member.avatar
|
||||
usr["id"] = str(member["id"])
|
||||
usr["username"] = member["username"]
|
||||
usr["nickname"] = member["nick"]
|
||||
usr["avatar"] = member["avatar"]
|
||||
usr["color"] = self.get_user_color(guild_id, usr["id"])
|
||||
if (usr["avatar"]):
|
||||
usr["avatar_url"] = "https://cdn.discordapp.com/avatars/{}/{}.png".format(usr["id"], usr["avatar"])
|
||||
usr["roles"] = json.loads(member.roles)
|
||||
usr["discordbotsorgvoted"] = bool(redis_store.get("DiscordBotsOrgVoted/" + str(member.user_id)))
|
||||
usr["roles"] = member["roles"]
|
||||
usr["discordbotsorgvoted"] = bool(redis_store.get("DiscordBotsOrgVoted/" + str(member["id"])))
|
||||
print("test4")
|
||||
emit("lookup_user_info", usr)
|
||||
self.teardown_db_session()
|
Reference in New Issue
Block a user