diff options
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() |