aboutsummaryrefslogtreecommitdiff
path: root/app/tasks
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2019-11-21 22:16:35 +0000
committerGitHub <noreply@github.com>2019-11-21 22:16:35 +0000
commit33b2b38308c41fc9d182df241a317f700d861d9a (patch)
tree78563e21df2243e7597e0f74c018e8ef01a37cee /app/tasks
parent94426e97aa0f539be2c0a04b91e1beefef30563e (diff)
downloadcheatdb-33b2b38308c41fc9d182df241a317f700d861d9a.tar.xz
Improve package scoring
Diffstat (limited to 'app/tasks')
-rw-r--r--app/tasks/__init__.py4
-rw-r--r--app/tasks/forumtasks.py3
-rw-r--r--app/tasks/pkgtasks.py23
3 files changed, 27 insertions, 3 deletions
diff --git a/app/tasks/__init__.py b/app/tasks/__init__.py
index fb62cb0..1f3df02 100644
--- a/app/tasks/__init__.py
+++ b/app/tasks/__init__.py
@@ -69,6 +69,10 @@ CELERYBEAT_SCHEDULE = {
'topic_list_import': {
'task': 'app.tasks.forumtasks.importTopicList',
'schedule': crontab(minute=1, hour=1),
+ },
+ 'package_score_update': {
+ 'task': 'app.tasks.pkgtasks.updatePackageScores',
+ 'schedule': crontab(minute=10, hour=1),
}
}
celery.conf.beat_schedule = CELERYBEAT_SCHEDULE
diff --git a/app/tasks/forumtasks.py b/app/tasks/forumtasks.py
index 9b200fc..4a4e27f 100644
--- a/app/tasks/forumtasks.py
+++ b/app/tasks/forumtasks.py
@@ -171,7 +171,4 @@ def importTopicList():
topic.views = int(info["views"])
topic.created_at = info["date"]
- for p in Package.query.all():
- p.recalcScore()
-
db.session.commit()
diff --git a/app/tasks/pkgtasks.py b/app/tasks/pkgtasks.py
new file mode 100644
index 0000000..8ff5836
--- /dev/null
+++ b/app/tasks/pkgtasks.py
@@ -0,0 +1,23 @@
+# Content DB
+# Copyright (C) 2018 rubenwardy
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+from app.models import Package, PackageRelease
+from app.tasks import celery
+
+@celery.task()
+def updatePackageScores():
+ Package.query.update({ "score": PackageRelease.score * 0.8 })