mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-06-16 11:25:22 +02:00
Move columns found in discord api on the guilds table into redis
This commit is contained in:
@ -155,10 +155,15 @@ def prepare_guild_members_list(members, bans):
|
||||
@admin.route("/administrate_guild/<guild_id>", methods=["GET"])
|
||||
@is_admin
|
||||
def administrate_guild(guild_id):
|
||||
guild = redisqueue.get_guild(guild_id)
|
||||
if not guild:
|
||||
abort(404)
|
||||
return
|
||||
db_guild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
if not db_guild:
|
||||
abort(500)
|
||||
return
|
||||
db_guild = Guilds(guild["id"])
|
||||
db.session.add(db_guild)
|
||||
db.session.commit()
|
||||
session["redirect"] = None
|
||||
cosmetics = db.session.query(Cosmetics).filter(Cosmetics.user_id == session['user_id']).first()
|
||||
permissions=[]
|
||||
@ -169,8 +174,8 @@ def administrate_guild(guild_id):
|
||||
all_bans = db.session.query(UnauthenticatedBans).filter(UnauthenticatedBans.guild_id == guild_id).all()
|
||||
users = prepare_guild_members_list(all_members, all_bans)
|
||||
dbguild_dict = {
|
||||
"id": db_guild.guild_id,
|
||||
"name": db_guild.name,
|
||||
"id": guild["id"],
|
||||
"name": guild["name"],
|
||||
"unauth_users": db_guild.unauth_users,
|
||||
"visitor_view": db_guild.visitor_view,
|
||||
"webhook_messages": db_guild.webhook_messages,
|
||||
@ -178,7 +183,7 @@ def administrate_guild(guild_id):
|
||||
"bracket_links": db_guild.bracket_links,
|
||||
"mentions_limit": db_guild.mentions_limit,
|
||||
"unauth_captcha": db_guild.unauth_captcha,
|
||||
"icon": db_guild.icon,
|
||||
"icon": guild["icon"],
|
||||
"invite_link": db_guild.invite_link if db_guild.invite_link != None else "",
|
||||
"guest_icon": db_guild.guest_icon if db_guild.guest_icon != None else "",
|
||||
"post_timeout": db_guild.post_timeout,
|
||||
|
@ -104,7 +104,7 @@ def get_online_discord_users(guild_id, embed):
|
||||
apimembers_filtered = {}
|
||||
for member in apimembers:
|
||||
apimembers_filtered[int(member["id"])] = member
|
||||
guild_roles = json.loads(db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first().roles)
|
||||
guild_roles = redisqueue.get_guild(guild_id)["roles"]
|
||||
guildroles_filtered = {}
|
||||
for role in guild_roles:
|
||||
guildroles_filtered[role["id"]] = role
|
||||
@ -144,19 +144,17 @@ def get_online_embed_users(guild_id):
|
||||
return users
|
||||
|
||||
def get_guild_emojis(guild_id):
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
return json.loads(dbguild.emojis)
|
||||
return redisqueue.get_guild(guild_id)["emojis"]
|
||||
|
||||
def get_guild_roles(guild_id):
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
return json.loads(dbguild.roles)
|
||||
return redisqueue.get_guild(guild_id)["roles"]
|
||||
|
||||
# Returns webhook url if exists and can post w/webhooks, otherwise None
|
||||
def get_channel_webhook_url(guild_id, channel_id):
|
||||
if not guild_webhooks_enabled(guild_id):
|
||||
return None
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
guild_webhooks = json.loads(dbguild.webhooks)
|
||||
guild = redisqueue.get_guild(guild_id)
|
||||
guild_webhooks = guild["webhooks"]
|
||||
name = "[Titan] "
|
||||
username = session["username"]
|
||||
if len(username) > 19:
|
||||
@ -517,8 +515,7 @@ def user_info(guild_id, user_id):
|
||||
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()
|
||||
guild_roles = json.loads(dbguild.roles)
|
||||
guild_roles = redisqueue.get_guild(guild_id)["roles"]
|
||||
for r in roles:
|
||||
for gr in guild_roles:
|
||||
if gr["id"] == r:
|
||||
|
@ -1,6 +1,6 @@
|
||||
from flask import Blueprint, render_template, abort, redirect, url_for, session, request
|
||||
from flask_babel import gettext
|
||||
from titanembeds.utils import check_guild_existance, guild_query_unauth_users_bool, guild_accepts_visitors, guild_unauthcaptcha_enabled, is_int
|
||||
from titanembeds.utils import check_guild_existance, guild_query_unauth_users_bool, guild_accepts_visitors, guild_unauthcaptcha_enabled, is_int, redisqueue
|
||||
from titanembeds.oauth import generate_guild_icon_url, generate_avatar_url
|
||||
from titanembeds.database import db, Guilds, UserCSS, list_disabled_guilds
|
||||
from config import config
|
||||
@ -64,15 +64,16 @@ def parse_url_domain(url):
|
||||
@embed.route("/<int:guild_id>")
|
||||
def guild_embed(guild_id):
|
||||
if check_guild_existance(guild_id):
|
||||
guild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
guild = redisqueue.get_guild(guild_id)
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
guild_dict = {
|
||||
"id": guild.guild_id,
|
||||
"name": guild.name,
|
||||
"unauth_users": guild.unauth_users,
|
||||
"icon": guild.icon,
|
||||
"invite_link": guild.invite_link,
|
||||
"invite_domain": parse_url_domain(guild.invite_link),
|
||||
"post_timeout": guild.post_timeout,
|
||||
"id": guild["id"],
|
||||
"name": guild["name"],
|
||||
"unauth_users": dbguild.unauth_users,
|
||||
"icon": guild["icon"],
|
||||
"invite_link": dbguild.invite_link,
|
||||
"invite_domain": parse_url_domain(dbguild.invite_link),
|
||||
"post_timeout": dbguild.post_timeout,
|
||||
}
|
||||
customcss = get_custom_css()
|
||||
return render_template("embed.html.j2",
|
||||
|
@ -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, redisqueue
|
||||
from titanembeds.database import db, Guilds
|
||||
from titanembeds.database import db
|
||||
from flask_socketio import Namespace, emit, disconnect, join_room, leave_room
|
||||
import functools
|
||||
from flask import request, session
|
||||
@ -57,8 +57,7 @@ class Gateway(Namespace):
|
||||
msg = {"unauthenticated": False, "id": str(session["user_id"])}
|
||||
emit("embed_user_disconnect", msg, room="GUILD_"+guild_id)
|
||||
if guild_webhooks_enabled(guild_id): # Delete webhooks
|
||||
dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
guild_webhooks = json.loads(dbguild.webhooks)
|
||||
guild_webhooks = redisqueue.get_guild(guild_id)["webhooks"]
|
||||
name = "[Titan] "
|
||||
username = session["username"]
|
||||
if len(username) > 19:
|
||||
@ -128,7 +127,7 @@ class Gateway(Namespace):
|
||||
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)
|
||||
guild_roles = redisqueue.get_guild(guild_id)["roles"]
|
||||
guildroles_filtered = {}
|
||||
for role in guild_roles:
|
||||
guildroles_filtered[role["id"]] = role
|
||||
|
@ -5,6 +5,7 @@ from config import config
|
||||
from titanembeds.decorators import discord_users_only
|
||||
from titanembeds.database import db, Guilds, UnauthenticatedUsers, UnauthenticatedBans, Cosmetics, UserCSS, Patreon, set_titan_token, get_titan_token, add_badge, list_disabled_guilds
|
||||
from titanembeds.oauth import authorize_url, token_url, make_authenticated_session, get_current_authenticated_user, get_user_managed_servers, check_user_can_administrate_guild, check_user_permission, generate_avatar_url, generate_guild_icon_url, generate_bot_invite_url
|
||||
from titanembeds.utils import redisqueue
|
||||
import time
|
||||
import datetime
|
||||
import paypalrestsdk
|
||||
@ -188,11 +189,16 @@ def edit_custom_css_delete(css_id):
|
||||
def administrate_guild(guild_id):
|
||||
if not check_user_can_administrate_guild(guild_id):
|
||||
return redirect(url_for("user.dashboard"))
|
||||
db_guild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
if not db_guild:
|
||||
guild = redisqueue.get_guild(guild_id)
|
||||
if not guild:
|
||||
session["redirect"] = url_for("user.administrate_guild", guild_id=guild_id, _external=True)
|
||||
return redirect(url_for("user.add_bot", guild_id=guild_id))
|
||||
session["redirect"] = None
|
||||
db_guild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
|
||||
if not db_guild:
|
||||
db_guild = Guilds(guild["id"])
|
||||
db.session.add(db_guild)
|
||||
db.session.commit()
|
||||
permissions=[]
|
||||
if check_user_permission(guild_id, 5):
|
||||
permissions.append("Manage Embed Settings")
|
||||
@ -206,7 +212,7 @@ def administrate_guild(guild_id):
|
||||
users = prepare_guild_members_list(all_members, all_bans)
|
||||
dbguild_dict = {
|
||||
"id": db_guild.guild_id,
|
||||
"name": db_guild.name,
|
||||
"name": guild["name"],
|
||||
"unauth_users": db_guild.unauth_users,
|
||||
"visitor_view": db_guild.visitor_view,
|
||||
"webhook_messages": db_guild.webhook_messages,
|
||||
@ -214,7 +220,7 @@ def administrate_guild(guild_id):
|
||||
"bracket_links": db_guild.bracket_links,
|
||||
"mentions_limit": db_guild.mentions_limit,
|
||||
"unauth_captcha": db_guild.unauth_captcha,
|
||||
"icon": db_guild.icon,
|
||||
"icon": guild["icon"],
|
||||
"invite_link": db_guild.invite_link if db_guild.invite_link != None else "",
|
||||
"guest_icon": db_guild.guest_icon if db_guild.guest_icon != None else "",
|
||||
"post_timeout": db_guild.post_timeout,
|
||||
|
Reference in New Issue
Block a user