From fd61cb12a435e1465659cb17b1c90bc7a1660072 Mon Sep 17 00:00:00 2001 From: Yannik Schmidt Date: Sat, 13 Jan 2024 04:29:04 +0100 Subject: [PATCH] feat: add notification trigger condition --- server.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/server.py b/server.py index 3215c0b..195a89c 100755 --- a/server.py +++ b/server.py @@ -403,6 +403,7 @@ def upload(): replay = replay_from_path(fullpath, uploader=uploader) db.session.add(replay) db.session.commit() + check_replay_trigger(replay) except ValueError as e: results += [(fname, str(e))] continue @@ -418,9 +419,32 @@ def upload(): else: 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(): + 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__": parser = argparse.ArgumentParser(description='TM Replay Server',