From 46714fd520748995615887c1cacfc68dbb339a13 Mon Sep 17 00:00:00 2001 From: justcool393 Date: Fri, 28 Jul 2023 02:56:49 -0700 Subject: [PATCH] rename truecoins -> truescore (#544) --- files/classes/user.py | 23 +++++++++++------- files/routes/admin/admin.py | 2 +- files/routes/comments.py | 2 +- files/routes/static.py | 6 ++--- files/routes/users.py | 2 +- files/routes/votes.py | 8 +++---- files/templates/admin/loggedin.html | 2 +- files/templates/votes.html | 11 +++------ ...88ee27b00_rename_truecoins_to_truescore.py | 24 +++++++++++++++++++ 9 files changed, 53 insertions(+), 27 deletions(-) create mode 100644 migrations/versions/2023_07_28_03_45_12_55488ee27b00_rename_truecoins_to_truescore.py diff --git a/files/classes/user.py b/files/classes/user.py index 032bbc134..47f36f169 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -1,6 +1,7 @@ from __future__ import annotations import time +from datetime import datetime from typing import TYPE_CHECKING, Union import pyotp @@ -98,7 +99,7 @@ class User(CreatedBase): login_nonce = Column(Integer, default=0, nullable=False) reserved = deferred(Column(String)) coins = Column(Integer, default=0, nullable=False) - truecoins = Column(Integer, default=0, nullable=False) + truescore = Column(Integer, default=0, nullable=False) procoins = Column(Integer, default=0, nullable=False) mfa_secret = deferred(Column(String)) is_private = Column(Boolean, default=False, nullable=False) @@ -158,18 +159,24 @@ class User(CreatedBase): def can_manage_reports(self): return self.admin_level > 1 + + @property + def age_days(self): + return (datetime.now() - datetime.fromtimestamp(self.created_utc)).days + @property def should_comments_be_filtered(self): from files.__main__ import app # avoiding import loop if self.admin_level > 0: return False # TODO: move settings out of app.config site_settings = app.config['SETTINGS'] - minComments = site_settings.get('FilterCommentsMinComments', 0) - minKarma = site_settings.get('FilterCommentsMinKarma', 0) - minAge = site_settings.get('FilterCommentsMinAgeDays', 0) - accountAgeDays = self.age_timedelta.days - return self.comment_count < minComments or accountAgeDays < minAge or self.truecoins < minKarma + min_comments = site_settings.get('FilterCommentsMinComments', 0) + min_karma = site_settings.get('FilterCommentsMinKarma', 0) + min_age = site_settings.get('FilterCommentsMinAgeDays', 0) + return self.comment_count < min_comments \ + or self.age_days < min_age \ + or self.truescore < min_karma def can_change_user_privacy(self, v: "User") -> bool: @@ -186,7 +193,7 @@ class User(CreatedBase): return ( self.comment_count >= min_comments - and self.truecoins >= min_truescore + and self.truescore >= min_truescore and user_age_days >= min_age_days) @@ -214,7 +221,7 @@ class User(CreatedBase): @property @lazy def paid_dues(self): - return not self.shadowbanned and not (self.is_banned and not self.unban_utc) and (self.admin_level or self.club_allowed or (self.club_allowed != False and self.truecoins > CLUB_TRUESCORE_MINIMUM)) + return not self.shadowbanned and not (self.is_banned and not self.unban_utc) and (self.admin_level or self.club_allowed or (self.club_allowed != False and self.truescore > CLUB_TRUESCORE_MINIMUM)) @lazy def any_block_exists(self, other): diff --git a/files/routes/admin/admin.py b/files/routes/admin/admin.py index 866892053..8fc7d3074 100644 --- a/files/routes/admin/admin.py +++ b/files/routes/admin/admin.py @@ -631,7 +631,7 @@ def loggedin_list(v): ids = [x for x, val in cache.get(f'{SITE}_loggedin').items() \ if (time.time() - val) < LOGGEDIN_ACTIVE_TIME] users = g.db.query(User).filter(User.id.in_(ids)) \ - .order_by(User.admin_level.desc(), User.truecoins.desc()).all() + .order_by(User.admin_level.desc(), User.truescore.desc()).all() return render_template("admin/loggedin.html", v=v, users=users) diff --git a/files/routes/comments.py b/files/routes/comments.py index 82a8f0b88..559167c8e 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -201,7 +201,7 @@ def api_comment(v): abort(403, "Too much spam!") - is_filtered = v.should_comments_be_filtered() + is_filtered = v.should_comments_be_filtered c = Comment(author_id=v.id, parent_submission=parent_post.id, diff --git a/files/routes/static.py b/files/routes/static.py index d14a127e1..200db217e 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -199,9 +199,9 @@ def patrons(v): @auth_desired def admins(v): if v and v.admin_level >= 3: - admins = g.db.query(User).filter(User.admin_level>1).order_by(User.truecoins.desc()).all() - admins += g.db.query(User).filter(User.admin_level==1).order_by(User.truecoins.desc()).all() - else: admins = g.db.query(User).filter(User.admin_level>0).order_by(User.truecoins.desc()).all() + admins = g.db.query(User).filter(User.admin_level>1).order_by(User.truescore.desc()).all() + admins += g.db.query(User).filter(User.admin_level==1).order_by(User.truescore.desc()).all() + else: admins = g.db.query(User).filter(User.admin_level>0).order_by(User.truescore.desc()).all() return render_template("admins.html", v=v, admins=admins) diff --git a/files/routes/users.py b/files/routes/users.py index 9720e585a..88d1b3624 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -377,7 +377,7 @@ def leaderboard(v:User): comments = SimpleLeaderboard(v, LeaderboardMeta("Comments", "comment count", "comments", "Comments", "comments"), g.db, users, User.comment_count) received_awards = SimpleLeaderboard(v, LeaderboardMeta("Awards", "received awards", "awards", "Awards", None), g.db, users, User.received_award_count) coins_spent = SimpleLeaderboard(v, LeaderboardMeta("Spent in shop", "coins spent in shop", "spent", "Coins", None), g.db, users, User.coins_spent) - truescore = SimpleLeaderboard(v, LeaderboardMeta("Truescore", "truescore", "truescore", "Truescore", None), g.db, users, User.truecoins) + truescore = SimpleLeaderboard(v, LeaderboardMeta("Truescore", "truescore", "truescore", "Truescore", None), g.db, users, User.truescore) badges = BadgeMarseyLeaderboard(v, LeaderboardMeta("Badges", "badges", "badges", "Badges", None), g.db, Badge.user_id) blocks = UserBlockLeaderboard(v, LeaderboardMeta("Blocked", "most blocked", "blocked", "Blocked By", "blockers"), g.db, UserBlock.target_id) diff --git a/files/routes/votes.py b/files/routes/votes.py index bbc949867..ffcdac96e 100644 --- a/files/routes/votes.py +++ b/files/routes/votes.py @@ -83,7 +83,7 @@ def api_vote_post(post_id, new, v): # remove the old score data if points_matter: post.author.coins -= vote.vote_type - post.author.truecoins -= vote.vote_type + post.author.truescore -= vote.vote_type # we'll be saving later anyway, so don't bother doing so here else: # create new vote data @@ -105,7 +105,7 @@ def api_vote_post(post_id, new, v): # add relevant points if points_matter: post.author.coins += vote.vote_type - post.author.truecoins += vote.vote_type + post.author.truescore += vote.vote_type # database it up g.db.add(post.author) @@ -151,7 +151,7 @@ def api_vote_comment(comment_id, new, v): # remove the old score data if points_matter: comment.author.coins -= vote.vote_type - comment.author.truecoins -= vote.vote_type + comment.author.truescore -= vote.vote_type # we'll be saving later anyway, so don't bother doing so here else: # create new vote data @@ -173,7 +173,7 @@ def api_vote_comment(comment_id, new, v): # add relevant points if points_matter: comment.author.coins += vote.vote_type - comment.author.truecoins += vote.vote_type + comment.author.truescore += vote.vote_type # database it up g.db.add(comment.author) diff --git a/files/templates/admin/loggedin.html b/files/templates/admin/loggedin.html index cfa98918c..f2805edf6 100644 --- a/files/templates/admin/loggedin.html +++ b/files/templates/admin/loggedin.html @@ -13,7 +13,7 @@ {{loop.index}} {{user.username}} - {{user.truecoins}} + {{user.truescore}} {% endfor %} diff --git a/files/templates/votes.html b/files/templates/votes.html index 31843c9d3..001118f57 100644 --- a/files/templates/votes.html +++ b/files/templates/votes.html @@ -15,7 +15,7 @@

{{thing.permalink}}

Author: @{{thing.author.username}}

Author Created At: {{thing.author.created_datetime}}

-

Author Truescore: {{thing.author.truecoins}}

+

Author Truescore: {{thing.author.truescore}}

Upvotes: {{ups | length}}

Downvotes: {{downs | length}}

@@ -29,7 +29,7 @@ {% for vote in ups %} {{vote.user.username}} - {{vote.user.truecoins}} + {{vote.user.truescore}} {% endfor %} @@ -44,14 +44,9 @@ {% for vote in downs %} {{vote.user.username}} - {{vote.user.truecoins}} + {{vote.user.truescore}} {% endfor %} - - - {% endif %} - - {% endblock %} diff --git a/migrations/versions/2023_07_28_03_45_12_55488ee27b00_rename_truecoins_to_truescore.py b/migrations/versions/2023_07_28_03_45_12_55488ee27b00_rename_truecoins_to_truescore.py new file mode 100644 index 000000000..b3fad165c --- /dev/null +++ b/migrations/versions/2023_07_28_03_45_12_55488ee27b00_rename_truecoins_to_truescore.py @@ -0,0 +1,24 @@ +"""rename truecoins to truescore + +Revision ID: 55488ee27b00 +Revises: 5195118d6a51 +Create Date: 2023-07-28 03:45:12.251007+00:00 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '55488ee27b00' +down_revision = '5195118d6a51' +branch_labels = None +depends_on = None + + +def upgrade(): + op.alter_column('users', 'truecoins', new_column_name='truescore') + + +def downgrade(): + op.alter_column('users', 'truescore', new_column_name='truecoins')