From: Felix Dörre Date: Sun, 10 Jan 2021 22:16:14 +0000 (+0100) Subject: Merge branch 'admin_cleanup' into 'master' X-Git-Url: https://code.wpia.club/?p=motion.git;a=commitdiff_plain;h=7f7b44cb967ae9b99ddcbf3879c92d448570d49c Merge branch 'admin_cleanup' into 'master' add: implement motion cleanup See merge request felixdoerre/motion!28 --- 7f7b44cb967ae9b99ddcbf3879c92d448570d49c diff --cc motion.py index 21e3e16,51ec30b..c4337f9 --- a/motion.py +++ b/motion.py @@@ -261,19 -261,13 +262,24 @@@ def init_db() db.prepare("ALTER TABLE \"voter\" ALTER COLUMN \"host\" SET NOT NULL")() db.prepare("UPDATE \"schema_version\" SET \"version\"=6")() + if ver < 7: + with app.open_resource('sql/from_6.sql', mode='r') as f: + db.execute(f.read()) + db.prepare("UPDATE \"schema_version\" SET \"version\"=7")() + init_db() +def is_in_ratelimit(group): + rv = get_db().prepare("SELECT EXTRACT(EPOCH FROM (CURRENT_TIMESTAMP - posed)) AS timedifference FROM motion WHERE type=$1 AND host=$2 ORDER BY posed DESC LIMIT 1")(group, request.host) + if len(rv) == 0: + return True + rate_limit = motion_wait_minutes.per_host + if rate_limit is None: + rate_limit = 0 + if rv[0]['timedifference'] > rate_limit*60: + return True + else: + return _('Error, time between last motion to short. The current setting is %s minute(s).') % (str(rate_limit)) @app.route("/") def main():