forked from rDrama/rDrama
1
0
Fork 0
master
Aevann1 2022-02-26 16:39:47 +02:00
parent 6cc9cddef0
commit e139f8d9ad
3 changed files with 27 additions and 23 deletions

View File

@ -131,12 +131,7 @@ class User(Base):
nwordpass = Column(Boolean) nwordpass = Column(Boolean)
subs_created = Column(Integer, default=0) subs_created = Column(Integer, default=0)
badges = relationship("Badge") badges = relationship("Badge", viewonly=True)
awards = relationship("AwardRelationship")
mods = relationship("Mod")
comments = relationship("Comment", primaryjoin="User.id==Comment.author_id")
submissions = relationship("Submission", primaryjoin="User.id==Submission.author_id")
subscriptions = relationship("Subscription", viewonly=True) subscriptions = relationship("Subscription", viewonly=True)
following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True) following = relationship("Follow", primaryjoin="Follow.user_id==User.id", viewonly=True)
followers = relationship("Follow", primaryjoin="Follow.target_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) 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) blocked = relationship("UserBlock", lazy="dynamic", primaryjoin="User.id==UserBlock.target_id", viewonly=True)
authorizations = relationship("ClientAuth", viewonly=True) authorizations = relationship("ClientAuth", viewonly=True)
awards = relationship("AwardRelationship", primaryjoin="User.id==AwardRelationship.user_id", viewonly=True)
referrals = relationship("User", viewonly=True) referrals = relationship("User", viewonly=True)
def __init__(self, **kwargs): def __init__(self, **kwargs):

View File

@ -227,7 +227,7 @@ else:
CARP_ID = 0 CARP_ID = 0
JOAN_ID = 0 JOAN_ID = 0
MOOSE_ID = 0 MOOSE_ID = 0
AEVANN_ID = 10 AEVANN_ID = 9
HOMO_ID = 0 HOMO_ID = 0
Q_ID = 0 Q_ID = 0
LAWLZ_ID = 0 LAWLZ_ID = 0

View File

@ -25,39 +25,47 @@ month = datetime.now().strftime('%B')
@app.get('/admin/merge/<id1>/<id2>') @app.get('/admin/merge/<id1>/<id2>')
@admin_level_required(3) @admin_level_required(3)
def merge(v, id1, id2): def merge(v, id1, id2):
if v.id != 1: abort(403) if v.id != AEVANN_ID: abort(403)
user1 = get_user(id1) user1 = get_account(id1)
user2 = get_user(id2) 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 award.user_id = user1.id
g.db.add(award) 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): if not user1.has_badge(badge.badge_id):
badge.user_id = user1.id badge.user_id = user1.id
g.db.add(badge) g.db.add(badge)
for mod in user2.mods: for mod in mods:
mod.user_id = user1.id if not user1.mods(mod.sub):
g.db.add(mod) mod.user_id = user1.id
for comment in user2.comments: g.db.add(mod)
comment.author_id = user1.id
g.db.add(comment)
for submission in user2.submissions:
submission.author_id = user1.id
g.db.add(submission)
for kind in ('comment_count', 'post_count', 'winnings', 'received_award_count', 'coins_spent', 'lootboxes_bought', 'coins', 'truecoins', 'procoins', 'subs_created'): 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) setattr(user2, kind, 0)
g.db.add(user1) g.db.add(user1)
g.db.add(user2) g.db.add(user2)
g.db.commit() g.db.commit()
cache.clear()
return f"Success! moved @{user2.username} to @{user1.username}" return f"Success! moved @{user2.username} to @{user1.username}"
if SITE_NAME == 'PCM': if SITE_NAME == 'PCM':
@app.get('/admin/sidebar') @app.get('/admin/sidebar')
@admin_level_required(3) @admin_level_required(3)