mirror of
				https://github.com/TitanEmbeds/Titan.git
				synced 2025-11-03 23:37:09 +01:00 
			
		
		
		
	Converted webapp portion to python 3.5. Resolves #32
This commit is contained in:
		@@ -1,12 +1,9 @@
 | 
			
		||||
from config import config
 | 
			
		||||
from database import db
 | 
			
		||||
from .database import db
 | 
			
		||||
from flask import Flask, render_template, request, session, url_for, redirect, jsonify
 | 
			
		||||
from flask_sslify import SSLify
 | 
			
		||||
from titanembeds.utils import rate_limiter, discord_api, bot_alive
 | 
			
		||||
import blueprints.api
 | 
			
		||||
import blueprints.user
 | 
			
		||||
import blueprints.admin
 | 
			
		||||
import blueprints.embed
 | 
			
		||||
from .blueprints import api, user, admin, embed
 | 
			
		||||
import os
 | 
			
		||||
from titanembeds.database import get_administrators_list
 | 
			
		||||
 | 
			
		||||
@@ -24,10 +21,10 @@ db.init_app(app)
 | 
			
		||||
rate_limiter.init_app(app)
 | 
			
		||||
sslify = SSLify(app, permanent=True)
 | 
			
		||||
 | 
			
		||||
app.register_blueprint(blueprints.api.api, url_prefix="/api", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(blueprints.admin.admin, url_prefix="/admin", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(blueprints.user.user, url_prefix="/user", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(blueprints.embed.embed, url_prefix="/embed", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(api.api, url_prefix="/api", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(admin.admin, url_prefix="/admin", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(user.user, url_prefix="/user", template_folder="/templates")
 | 
			
		||||
app.register_blueprint(embed.embed, url_prefix="/embed", template_folder="/templates")
 | 
			
		||||
 | 
			
		||||
@app.route("/")
 | 
			
		||||
def index():
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
from admin import admin
 | 
			
		||||
from .admin import admin
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
from api import api
 | 
			
		||||
from .api import api
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
from embed import embed
 | 
			
		||||
from .embed import embed
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
from user import user
 | 
			
		||||
from .user import user
 | 
			
		||||
 
 | 
			
		||||
@@ -2,18 +2,18 @@ from flask_sqlalchemy import SQLAlchemy
 | 
			
		||||
 | 
			
		||||
db = SQLAlchemy()
 | 
			
		||||
 | 
			
		||||
from guilds import Guilds
 | 
			
		||||
from unauthenticated_users import UnauthenticatedUsers
 | 
			
		||||
from unauthenticated_bans import UnauthenticatedBans
 | 
			
		||||
from authenticated_users import AuthenticatedUsers
 | 
			
		||||
from guild_members import GuildMembers, list_all_guild_members, get_guild_member
 | 
			
		||||
from keyvalue_properties import KeyValueProperties, set_keyvalproperty, get_keyvalproperty, getexpir_keyvalproperty, setexpir_keyvalproperty, ifexists_keyvalproperty, delete_keyvalproperty
 | 
			
		||||
from messages import Messages, get_channel_messages
 | 
			
		||||
from cosmetics import Cosmetics
 | 
			
		||||
from user_css import UserCSS
 | 
			
		||||
from administrators import Administrators, get_administrators_list
 | 
			
		||||
from titan_tokens import TitanTokens, get_titan_token
 | 
			
		||||
from token_transactions import TokenTransactions
 | 
			
		||||
from .guilds import Guilds
 | 
			
		||||
from .unauthenticated_users import UnauthenticatedUsers
 | 
			
		||||
from .unauthenticated_bans import UnauthenticatedBans
 | 
			
		||||
from .authenticated_users import AuthenticatedUsers
 | 
			
		||||
from .guild_members import GuildMembers, list_all_guild_members, get_guild_member
 | 
			
		||||
from .keyvalue_properties import KeyValueProperties, set_keyvalproperty, get_keyvalproperty, getexpir_keyvalproperty, setexpir_keyvalproperty, ifexists_keyvalproperty, delete_keyvalproperty
 | 
			
		||||
from .messages import Messages, get_channel_messages
 | 
			
		||||
from .cosmetics import Cosmetics
 | 
			
		||||
from .user_css import UserCSS
 | 
			
		||||
from .administrators import Administrators, get_administrators_list
 | 
			
		||||
from .titan_tokens import TitanTokens, get_titan_token
 | 
			
		||||
from .token_transactions import TokenTransactions
 | 
			
		||||
 | 
			
		||||
def set_titan_token(user_id, amt_change, action):
 | 
			
		||||
    token_count = get_titan_token(user_id)
 | 
			
		||||
 
 | 
			
		||||
@@ -45,14 +45,14 @@ def user_has_permission(permission, index):
 | 
			
		||||
    return bool((int(permission) >> index) & 1)
 | 
			
		||||
 | 
			
		||||
def get_user_guilds():
 | 
			
		||||
    cache = get_keyvalproperty("OAUTH/USERGUILDS/"+make_user_cache_key())
 | 
			
		||||
    cache = get_keyvalproperty("OAUTH/USERGUILDS/"+str(make_user_cache_key()))
 | 
			
		||||
    if cache:
 | 
			
		||||
        return cache
 | 
			
		||||
    req = discordrest_from_user("/users/@me/guilds")
 | 
			
		||||
    if req.status_code != 200:
 | 
			
		||||
        abort(req.status_code)
 | 
			
		||||
    req = json.dumps(req.json())
 | 
			
		||||
    set_keyvalproperty("OAUTH/USERGUILDS/"+make_user_cache_key(), req, 250)
 | 
			
		||||
    set_keyvalproperty("OAUTH/USERGUILDS/"+str(make_user_cache_key()), req, 250)
 | 
			
		||||
    return req
 | 
			
		||||
 | 
			
		||||
def get_user_managed_servers():
 | 
			
		||||
 
 | 
			
		||||
@@ -16,12 +16,12 @@ def get_client_ipaddr():
 | 
			
		||||
        ip = request.headers['X-Real-IP']
 | 
			
		||||
    else: # general
 | 
			
		||||
        ip = request.remote_addr
 | 
			
		||||
    return hashlib.sha512(config['app-secret'] + ip).hexdigest()[:15]
 | 
			
		||||
    return hashlib.sha512((config['app-secret'] + ip).encode('utf-8')).hexdigest()[:15]
 | 
			
		||||
 | 
			
		||||
def generate_session_key():
 | 
			
		||||
    sess = session.get("sessionunique", None)
 | 
			
		||||
    if not sess:
 | 
			
		||||
        rand_str = lambda n: ''.join([random.choice(string.lowercase) for i in xrange(n)])
 | 
			
		||||
        rand_str = lambda n: ''.join([random.choice(string.ascii_lowercase) for i in range(n)])
 | 
			
		||||
        session['sessionunique'] = rand_str(25)
 | 
			
		||||
        sess = session['sessionunique']
 | 
			
		||||
    return sess #Totally unique
 | 
			
		||||
@@ -31,33 +31,33 @@ def make_cache_key(*args, **kwargs):
 | 
			
		||||
    args = str(hash(frozenset(request.args.items())))
 | 
			
		||||
    ip = get_client_ipaddr()
 | 
			
		||||
    sess = generate_session_key()
 | 
			
		||||
    return (path + args + sess + ip).encode('utf-8')
 | 
			
		||||
    return (path + args + sess + ip)
 | 
			
		||||
 | 
			
		||||
def make_user_cache_key(*args, **kwargs):
 | 
			
		||||
    ip = get_client_ipaddr()
 | 
			
		||||
    sess = generate_session_key()
 | 
			
		||||
    return (sess + ip).encode('utf-8')
 | 
			
		||||
    return (sess + ip)
 | 
			
		||||
 | 
			
		||||
def make_guilds_cache_key():
 | 
			
		||||
    sess = generate_session_key()
 | 
			
		||||
    ip = get_client_ipaddr()
 | 
			
		||||
    return (sess + ip + "user_guilds").encode('utf-8')
 | 
			
		||||
    return (sess + ip + "user_guilds")
 | 
			
		||||
 | 
			
		||||
def make_guildchannels_cache_key():
 | 
			
		||||
    guild_id = request.values.get('guild_id', "0")
 | 
			
		||||
    sess = generate_session_key()
 | 
			
		||||
    ip = get_client_ipaddr()
 | 
			
		||||
    return (sess + ip + guild_id + "user_guild_channels").encode('utf-8')
 | 
			
		||||
    return (sess + ip + guild_id + "user_guild_channels")
 | 
			
		||||
 | 
			
		||||
def channel_ratelimit_key(): # Generate a bucket with given channel & unique session key
 | 
			
		||||
    sess = generate_session_key()
 | 
			
		||||
    channel_id = request.values.get('channel_id', "0")
 | 
			
		||||
    return (sess + channel_id).encode('utf-8')
 | 
			
		||||
    return (sess + channel_id)
 | 
			
		||||
 | 
			
		||||
def guild_ratelimit_key():
 | 
			
		||||
    ip = get_client_ipaddr()
 | 
			
		||||
    guild_id = request.values.get('guild_id', "0")
 | 
			
		||||
    return (ip + guild_id).encode('utf-8')
 | 
			
		||||
    return (ip + guild_id)
 | 
			
		||||
 | 
			
		||||
def check_guild_existance(guild_id):
 | 
			
		||||
    dbGuild = Guilds.query.filter_by(guild_id=guild_id).first()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user