diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-07-09 04:32:13 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-07-09 04:32:13 +0100 |
commit | ac7adde4b1a5af0b93c1dd38e68717c31cbcf2a1 (patch) | |
tree | cc26639fbe2a5851321e5641970722cabcf75414 /app/models.py | |
parent | d0aecd0ee59663ac81733ff8087847106c7ba4cc (diff) | |
download | cheatdb-ac7adde4b1a5af0b93c1dd38e68717c31cbcf2a1.tar.xz |
Add score bonus to reviews
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/app/models.py b/app/models.py index 7b07309..e026c77 100644 --- a/app/models.py +++ b/app/models.py @@ -712,28 +712,19 @@ class Package(db.Model): else: raise Exception("Permission {} is not related to packages".format(perm.name)) - def setStartScore(self): - downloads = self.downloads - - forum_score = 0 - forum_bonus = 0 - topic = self.forums and ForumTopic.query.get(self.forums) - if topic: - months = (datetime.datetime.now() - topic.created_at).days / 30 - years = months / 12 - forum_score = topic.views / max(years, 0.0416) + 80*min(max(months, 0.5), 6) - forum_bonus = topic.views + topic.posts - - self.score = max(downloads, forum_score * 0.6) + forum_bonus - - if self.getMainScreenshotURL() is None: - self.score *= 0.8 - - self.recalcScore() + def getScoreDict(self): + return { + "author": self.author.username, + "name": self.name, + "score": self.score, + "score_downloads": self.score_downloads, + "score_reviews": self.score - self.score_downloads, + "downloads": self.downloads + } def recalcScore(self): - self.score_downloads = self.score - + review_scores = [ 100 * r.asSign() for r in self.reviews ] + self.score = self.score_downloads + sum(review_scores) class MetaPackage(db.Model): @@ -1134,6 +1125,9 @@ class PackageReview(db.Model): thread = db.relationship("Thread", uselist=False, back_populates="review") + def asSign(self): + return 1 if self.recommends else -1 + def getEditURL(self): return url_for("packages.edit_review", author=self.package.author.username, |