From 3e6d1085896107e2b29a6ac900063fea230ca7f2 Mon Sep 17 00:00:00 2001 From: Aevann1 Date: Sat, 26 Feb 2022 16:39:47 +0200 Subject: [PATCH] fartin --- files/classes/user.py | 8 ++------ files/helpers/const.py | 2 +- files/routes/admin.py | 40 ++++++++++++++++++++++++---------------- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/files/classes/user.py b/files/classes/user.py index 3ffddc8df..a094f248c 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -131,12 +131,7 @@ class User(Base): nwordpass = Column(Boolean) subs_created = Column(Integer, default=0) - badges = relationship("Badge") - awards = relationship("AwardRelationship") - mods = relationship("Mod") - comments = relationship("Comment", primaryjoin="User.id==Comment.author_id") - submissions = relationship("Submission", primaryjoin="User.id==Submission.author_id") - + badges = relationship("Badge", viewonly=True) subscriptions = relationship("Subscription", viewonly=True) following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True) followers = relationship("Follow", primaryjoin="Follow.target_id==User.id", viewonly=True) @@ -144,6 +139,7 @@ class User(Base): blocking = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.user_id", viewonly=True) blocked = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.target_id", viewonly=True) authorizations = relationship("ClientAuth", viewonly=True) + awards = relationship("AwardRelationship", primaryjoin="User.id==AwardRelationship.user_id", viewonly=True) referrals = relationship("User", viewonly=True) def __init__(self, **kwargs): diff --git a/files/helpers/const.py b/files/helpers/const.py index 346f0cbc9..c1d53ef16 100644 --- a/files/helpers/const.py +++ b/files/helpers/const.py @@ -227,7 +227,7 @@ else: CARP_ID = 0 JOAN_ID = 0 MOOSE_ID = 0 - AEVANN_ID = 10 + AEVANN_ID = 9 HOMO_ID = 0 Q_ID = 0 LAWLZ_ID = 0 diff --git a/files/routes/admin.py b/files/routes/admin.py index 3975146e2..e12093610 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -25,39 +25,47 @@ month = datetime.now().strftime('%B') @app.get('/admin/merge//') @admin_level_required(3) def merge(v, id1, id2): - if v.id != 1: abort(403) - user1 = get_user(id1) - user2 = get_user(id2) + if v.id != AEVANN_ID: abort(403) + user1 = get_account(id1) + user2 = get_account(id2) - for award in user2.awards: + awards = g.db.query(AwardRelationship).filter_by(user_id=user2.id) + comments = g.db.query(Comment).filter_by(author_id=user2.id) + submissions = g.db.query(Submission).filter_by(author_id=user2.id) + badges = g.db.query(Badge).filter_by(user_id=user2.id) + mods = g.db.query(Mod).filter_by(user_id=user2.id) + + for award in awards: award.user_id = user1.id g.db.add(award) - for badge in user2.badges: + for comment in comments: + comment.author_id = user1.id + g.db.add(comment) + for submission in submissions: + submission.author_id = user1.id + g.db.add(submission) + for badge in badges: if not user1.has_badge(badge.badge_id): badge.user_id = user1.id g.db.add(badge) - for mod in user2.mods: - mod.user_id = user1.id - g.db.add(mod) - for comment in user2.comments: - comment.author_id = user1.id - g.db.add(comment) - for submission in user2.submissions: - submission.author_id = user1.id - g.db.add(submission) + for mod in mods: + if not user1.mods(mod.sub): + mod.user_id = user1.id + g.db.add(mod) for kind in ('comment_count', 'post_count', 'winnings', 'received_award_count', 'coins_spent', 'lootboxes_bought', 'coins', 'truecoins', 'procoins', 'subs_created'): - setattr(user1, kind, getattr(user2, kind)) + amount = getattr(user1, kind) + getattr(user2, kind) + setattr(user1, kind, amount) setattr(user2, kind, 0) g.db.add(user1) g.db.add(user2) g.db.commit() + cache.clear() return f"Success! moved @{user2.username} to @{user1.username}" - if SITE_NAME == 'PCM': @app.get('/admin/sidebar') @admin_level_required(3)