From 10f3d4035de89841d8fa512e0d1648afa92ac627 Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Fri, 10 Jun 2022 00:07:17 +0200 Subject: [PATCH] delete inactive holes --- files/routes/static.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/files/routes/static.py b/files/routes/static.py index ba7720819c..499a8c778b 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -191,6 +191,21 @@ def stats(site=None): if u.deflector and u.deflector < time.time(): u.deflector = None + one_week_ago = time.time() - 604800 + active_holes = [x[0] for x in g.db.query(Submission.sub).distinct().filter(Submission.sub != None, Submission.created_utc > one_week_ago).all()] + + dead_holes = g.db.query(Sub).filter(Sub.name.notin_(active_holes)).all() + names = [x.name for x in dead_holes] + + posts = g.db.query(Submission).filter(Submission.sub.in_(names)).all() + for post in posts: + post.sub = None + g.db.add(post) + + to_delete = g.db.query(Mod).filter(Mod.sub.in_(names)).all() + g.db.query(Exile).filter(Exile.sub.in_(names)).all() + g.db.query(SubBlock).filter(SubBlock.sub.in_(names)).all() + dead_holes + for x in to_delete: + g.db.delete(x) + g.db.commit() return stats