mirror of
https://github.com/NovaOSS/nova-web.git
synced 2024-11-25 22:23:57 +01:00
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
import os
|
||
|
import json
|
||
|
import flask
|
||
|
import random
|
||
|
import secrets
|
||
|
|
||
|
from dotenv import load_dotenv
|
||
|
|
||
|
load_dotenv()
|
||
|
|
||
|
def register(app):
|
||
|
@app.route('/api/tos-verification', methods=['POST'])
|
||
|
def tos_verification_api():
|
||
|
if not flask.request.headers.get('Authorization') == os.getenv('TOS_VERIFICATION_KEY'):
|
||
|
return 'Unauthorized', 401
|
||
|
|
||
|
code = secrets.token_urlsafe(6)
|
||
|
emoji = random.choice(open('config/emojis.txt', encoding='utf8').read())
|
||
|
|
||
|
if not os.path.exists('data/tos.json'):
|
||
|
open('data/tos.json', 'w', encoding='utf8').write('{}')
|
||
|
|
||
|
try:
|
||
|
data = json.load(open('data/tos.json', encoding='utf8'))
|
||
|
except json.decoder.JSONDecodeError:
|
||
|
data = {}
|
||
|
|
||
|
data[code] = emoji
|
||
|
json.dump(data, open('data/tos.json', 'w', encoding='utf8'))
|
||
|
|
||
|
return {
|
||
|
'code': code,
|
||
|
'emoji': emoji
|
||
|
}
|
||
|
|
||
|
@app.route('/api/tos-verification/<code>', methods=['DELETE'])
|
||
|
def tos_verification_api_delete(code):
|
||
|
if not flask.request.headers.get('Authorization') == os.getenv('TOS_VERIFICATION_KEY'):
|
||
|
return 'Unauthorized', 401
|
||
|
|
||
|
data = json.load(open('data/tos.json', encoding='utf8'))
|
||
|
del data[code]
|
||
|
json.dump(data, open('data/tos.json', 'w', encoding='utf8'))
|
||
|
|
||
|
return 'Removed.', 204
|