mirror of
https://github.com/FAUSheppy/tmnf-replay-server.git
synced 2025-12-06 07:01:37 +01:00
feat: add notification trigger condition
This commit is contained in:
24
server.py
24
server.py
@@ -403,6 +403,7 @@ def upload():
|
|||||||
replay = replay_from_path(fullpath, uploader=uploader)
|
replay = replay_from_path(fullpath, uploader=uploader)
|
||||||
db.session.add(replay)
|
db.session.add(replay)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
check_replay_trigger(replay)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
results += [(fname, str(e))]
|
results += [(fname, str(e))]
|
||||||
continue
|
continue
|
||||||
@@ -418,9 +419,32 @@ def upload():
|
|||||||
else:
|
else:
|
||||||
return flask.render_template("upload.html")
|
return flask.render_template("upload.html")
|
||||||
|
|
||||||
|
def check_replay_trigger(replay):
|
||||||
|
|
||||||
|
map_obj = db.session.get(Map).filter(Map.map_uid == replay.map_uid).first()
|
||||||
|
assert(map_uid)
|
||||||
|
|
||||||
|
best = map_obj.get_best_replay()
|
||||||
|
second = map_obj.get_second_best_replay()
|
||||||
|
|
||||||
|
if replay.filehash != best.filehash:
|
||||||
|
return
|
||||||
|
|
||||||
|
if second.uploader == replay.uploader:
|
||||||
|
return
|
||||||
|
|
||||||
|
settings = db.session.query(UserSettings).filter(UserSettings.user == second.uploader).first()
|
||||||
|
if settings and settings.notifcations_self:
|
||||||
|
notifications.send_notification(app, settings.user, map_obj.map_uid, second, replay)
|
||||||
|
|
||||||
def create_app():
|
def create_app():
|
||||||
|
|
||||||
db.create_all()
|
db.create_all()
|
||||||
|
|
||||||
|
app.config["DISPATCH_SERVER"] = os.environ.get("DISPATCH_SERVER")
|
||||||
|
if app.config["DISPATCH_SERVER"]:
|
||||||
|
app.config["DISPATCH_AUTH"] = (os.environ["DISPATCH_AUTH_USER"], os.environ["DISPATCH_AUTH_PASSWORD"])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='TM Replay Server',
|
parser = argparse.ArgumentParser(description='TM Replay Server',
|
||||||
|
|||||||
Reference in New Issue
Block a user