mirror of
https://github.com/Xevion/v1.xevion.dev.git
synced 2025-12-07 11:16:54 -06:00
fix secret key assignment (oops)
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -12,4 +12,5 @@ key
|
|||||||
/app/__pycache__/*
|
/app/__pycache__/*
|
||||||
/__pycache__/*
|
/__pycache__/*
|
||||||
app/static/token.dat
|
app/static/token.dat
|
||||||
.vscode/*
|
.vscode/*
|
||||||
|
keys.json
|
||||||
@@ -8,6 +8,7 @@ from flask_login import current_user, login_user, logout_user, login_required
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from textwrap import wrap
|
from textwrap import wrap
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
from PIL import Image, ImageDraw, ImageFont
|
||||||
|
from multiprocessing import Value
|
||||||
import mistune
|
import mistune
|
||||||
import requests
|
import requests
|
||||||
import xmltodict
|
import xmltodict
|
||||||
@@ -23,9 +24,52 @@ import sys
|
|||||||
print = pprint.PrettyPrinter().pprint
|
print = pprint.PrettyPrinter().pprint
|
||||||
fake = faker.Faker()
|
fake = faker.Faker()
|
||||||
markdown = mistune.Markdown()
|
markdown = mistune.Markdown()
|
||||||
|
|
||||||
strgen = lambda length, charset=string.ascii_letters, weights=None : ''.join(random.choices(list(charset), k=length, weights=weights))
|
strgen = lambda length, charset=string.ascii_letters, weights=None : ''.join(random.choices(list(charset), k=length, weights=weights))
|
||||||
|
|
||||||
|
@app.route('/ftbhot/about')
|
||||||
|
@app.route('/ftbhot/about/')
|
||||||
|
def ftbhot_about():
|
||||||
|
return "about page xd"
|
||||||
|
|
||||||
|
@app.route('/ftbhot/auth')
|
||||||
|
@app.route('/ftbhot/auth/')
|
||||||
|
def ftbhot_auth():
|
||||||
|
return 'hi bot guy'
|
||||||
|
|
||||||
|
@app.route('/ftbhot')
|
||||||
|
|
||||||
|
@app.route('/time')
|
||||||
|
def time():
|
||||||
|
value = request.args.get('value')
|
||||||
|
if not value:
|
||||||
|
return '<br>'.join(['[int] value', '[int list] lengths', '[string list] strings', '[boolean] reverse', '[string] pluralappend', '[boolean] synonym'])
|
||||||
|
value = int(value)
|
||||||
|
lengths = request.args.get('lengths')
|
||||||
|
if lengths: lengths = lengths.split(',')
|
||||||
|
strings = request.args.get('strings')
|
||||||
|
if strings: strings = strings.split(',')
|
||||||
|
if len(lengths or []) + 1 != len(strings or []):
|
||||||
|
return f'error: lengths ({len(lengths or [])}) and strings ({len(strings or [])}) arrays must be same length to process properly'
|
||||||
|
if lengths: lengths = list(map(int, lengths))
|
||||||
|
reverse = request.args.get('reverse')
|
||||||
|
if reverse: reverse = bool(reverse)
|
||||||
|
return timeformat(value=value, lengths=lengths or [60, 60, 24, 365], strings=strings or ['second', 'minute', 'hour', 'day', 'year'], reverse=True if reverse is None else reverse)
|
||||||
|
|
||||||
|
def timeformat(value, lengths=[60, 60, 24, 365], strings=['second', 'minute', 'hour', 'day', 'year'], reverse=True, pluralappend='s', synonym=False):
|
||||||
|
converted = [value]
|
||||||
|
for index, length in enumerate(lengths):
|
||||||
|
temp = converted[-1] // length
|
||||||
|
if not synonym:
|
||||||
|
converted[-1] = converted[-1] % length
|
||||||
|
if temp != 0:
|
||||||
|
converted.append(temp)
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
strings = strings[:len(converted)]
|
||||||
|
build = ['{} {}'.format(value, strings[i] + pluralappend if value > 1 or value == 0 else strings[i]) for i, value in enumerate(converted)][::-1]
|
||||||
|
build = ', '.join(build)
|
||||||
|
return build
|
||||||
|
|
||||||
@app.route('/keybase.txt')
|
@app.route('/keybase.txt')
|
||||||
def keybase():
|
def keybase():
|
||||||
return app.send_static_file('keybase.txt')
|
return app.send_static_file('keybase.txt')
|
||||||
@@ -43,8 +87,7 @@ def favicon():
|
|||||||
@app.route('/avatar/<id>')
|
@app.route('/avatar/<id>')
|
||||||
def getAvatar(id=''):
|
def getAvatar(id=''):
|
||||||
# Constants
|
# Constants
|
||||||
token = open(os.path.join(sys.path[0], 'app', 'static', 'token.dat'), 'r').read().strip()
|
headers = {'Authorization' : f'Bot {app.config["DISCORD_TOKEN"]}'}
|
||||||
headers = {'Authorization' : f'Bot {token}'}
|
|
||||||
api = "https://discordapp.com/api/v6/users/{}"
|
api = "https://discordapp.com/api/v6/users/{}"
|
||||||
cdn = "https://cdn.discordapp.com/avatars/{}/{}.png"
|
cdn = "https://cdn.discordapp.com/avatars/{}/{}.png"
|
||||||
# Get User Data which contains Avatar Hash
|
# Get User Data which contains Avatar Hash
|
||||||
@@ -178,11 +221,11 @@ def boolparse(string, default=False):
|
|||||||
# The only implementation I could get to work
|
# The only implementation I could get to work
|
||||||
def validate_id(id):
|
def validate_id(id):
|
||||||
id = str(id).strip()
|
id = str(id).strip()
|
||||||
val = str(app.config['HIDDEN_URL']).strip()
|
val = str(app.config['HIDDEN_NUMBER']).strip()
|
||||||
return id == val
|
return id == val
|
||||||
|
|
||||||
def get_hidden():
|
def get_hidden():
|
||||||
return "/hidden{}/".format(app.config['HIDDEN_URL'])
|
return "/hidden{}/".format(app.config['HIDDEN_NUMBER'])
|
||||||
|
|
||||||
@app.route('/hidden<id>/history')
|
@app.route('/hidden<id>/history')
|
||||||
@login_required
|
@login_required
|
||||||
|
|||||||
18
config.py
18
config.py
@@ -1,21 +1,19 @@
|
|||||||
import os
|
import os, json
|
||||||
|
|
||||||
basedir = os.path.abspath(os.path.dirname(__file__))
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
keys = json.load(open(os.path.join(basedir, 'keys.json'), 'r'))
|
||||||
with open('hidden', 'r') as hidden:
|
|
||||||
hidden = hidden.read()
|
|
||||||
|
|
||||||
with open('key', 'r') as key:
|
|
||||||
key = key.read()
|
|
||||||
|
|
||||||
class Config(object):
|
class Config(object):
|
||||||
HIDDEN_URL = hidden
|
REDDIT_SECRET = keys['REDDIT_SECRET']
|
||||||
SECRET_KEY = os.environ.get('SECRET_KEY') or key
|
DISCORD_TOKEN = keys['DISCORD_TOKEN']
|
||||||
|
SECRET_KEY = keys['PASSWORD_HASH']
|
||||||
|
HIDDEN_NUMBER = keys['HIDDEN_NUMBER']
|
||||||
TEMPLATES_AUTO_RELOAD=True
|
TEMPLATES_AUTO_RELOAD=True
|
||||||
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
|
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
|
||||||
'sqlite:///' + os.path.join(basedir, 'app.db')
|
'sqlite:///' + os.path.join(basedir, 'app.db')
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||||
# Flask-User settings
|
# Flask-User settings
|
||||||
USER_APP_NAME = "Flask-User QuickStart App" # Shown in and email templates and page footers
|
USER_APP_NAME = "Xevion.dev" # Shown in and email templates and page footers
|
||||||
USER_ENABLE_EMAIL = False # Disable email authentication
|
USER_ENABLE_EMAIL = False # Disable email authentication
|
||||||
USER_ENABLE_USERNAME = True # Enable username authentication
|
USER_ENABLE_USERNAME = True # Enable username authentication
|
||||||
USER_REQUIRE_RETYPE_PASSWORD = True
|
USER_REQUIRE_RETYPE_PASSWORD = True
|
||||||
Reference in New Issue
Block a user