[rankendpoint] Get DB path and endpoint route from env vars

Also reverted the use of main() that made it incompatible with uwsgi and
flask run.
This commit is contained in:
dongresource 2023-12-24 20:57:05 +01:00
parent f62f3af483
commit 1a3a530c7f

View File

@ -3,18 +3,24 @@ app = Flask(__name__)
import sqlite3
import sys
import os
header = "SUCCESS"
def main(db_path):
# Opens database in read-only mode
# Checking same thread disabled for now, which is fine since we never modify anything
try:
db = sqlite3.connect('file:{}?mode=ro'.format(db_path), uri=True, check_same_thread=False)
cur = db.cursor()
except Exception as ex:
print(ex)
sys.exit()
db_path = os.environ.get('RANKENDPOINT_DBPATH')
route = os.environ.get('RANKENDPOINT_ROUTE')
if None in (db_path, route):
sys.exit('must set RANKENDPOINT_DBPATH and RANKENDPOINT_ROUTE environment variables')
# Opens database in read-only mode
# Checking same thread disabled for now, which is fine since we never modify anything
try:
db = sqlite3.connect('file:{}?mode=ro'.format(db_path), uri=True, check_same_thread=False)
cur = db.cursor()
except Exception as ex:
print(ex)
sys.exit()
#db.set_trace_callback(print)
@ -85,7 +91,7 @@ def get_score_entries(data, name):
return scores
@app.route('/getranks', methods=['POST'])
@app.route(f'{route}', methods=['POST'])
def rankings():
#print("PCUID:", request.form['PCUID'])
#print("EP_ID:", request.form['EP_ID'])
@ -128,9 +134,3 @@ def rankings():
# and send it off!
return header + xmlbody
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: {} <db file>".format(sys.argv[0]))
else:
main(sys.argv[1])