diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-07-09 01:26:01 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-07-09 01:26:01 +0100 |
commit | 9d033acffff319e4f38b98a09ff2519f3f36dc88 (patch) | |
tree | e2a6ca7bf1fd9c9d97340f8c9d1e90f569729eef /app | |
parent | 2617c53abfc3b1a1af10a88794e17bb88affd61d (diff) | |
download | cheatdb-9d033acffff319e4f38b98a09ff2519f3f36dc88.tar.xz |
Separate rolling average downloads from score
Diffstat (limited to 'app')
-rw-r--r-- | app/blueprints/packages/releases.py | 1 | ||||
-rw-r--r-- | app/models.py | 9 | ||||
-rw-r--r-- | app/tasks/pkgtasks.py | 7 |
3 files changed, 15 insertions, 2 deletions
diff --git a/app/blueprints/packages/releases.py b/app/blueprints/packages/releases.py index 8136521..12be8f6 100644 --- a/app/blueprints/packages/releases.py +++ b/app/blueprints/packages/releases.py @@ -141,6 +141,7 @@ def download_release(package, id): Package.query.filter_by(id=package.id).update({ "downloads": Package.downloads + 1, + "score_downloads": Package.score_downloads + bonus, "score": Package.score + bonus }) diff --git a/app/models.py b/app/models.py index 79b70cf..80f6fea 100644 --- a/app/models.py +++ b/app/models.py @@ -431,7 +431,8 @@ class Package(db.Model): approved = db.Column(db.Boolean, nullable=False, default=False) soft_deleted = db.Column(db.Boolean, nullable=False, default=False) - score = db.Column(db.Float, nullable=False, default=0) + score = db.Column(db.Float, nullable=False, default=0) + score_downloads = db.Column(db.Float, nullable=False, default=0) downloads = db.Column(db.Integer, nullable=False, default=0) review_thread_id = db.Column(db.Integer, db.ForeignKey("thread.id"), nullable=True, default=None) @@ -720,6 +721,12 @@ class Package(db.Model): if self.getMainScreenshotURL() is None: self.score *= 0.8 + self.recalcScore() + + def recalcScore(self): + self.score_downloads = self.score + + class MetaPackage(db.Model): id = db.Column(db.Integer, primary_key=True) diff --git a/app/tasks/pkgtasks.py b/app/tasks/pkgtasks.py index c864ad0..639f61e 100644 --- a/app/tasks/pkgtasks.py +++ b/app/tasks/pkgtasks.py @@ -20,5 +20,10 @@ from app.tasks import celery @celery.task() def updatePackageScores(): - Package.query.update({ "score": Package.score * 0.95 }) + Package.query.update({ "score_downloads": Package.score_downloads * 0.95 }) + db.session.commit() + + for package in Package.query.all(): + package.recalcScore() + db.session.commit() |