From 824744f1d20614c25e972dda7a0b7ac9506dd46f Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 11 Jun 2015 18:41:58 +0200 Subject: Add a field for package base popularity Create a new field Popularity in the PackageBases table. The field is updated by the popupdate script and reflects the popularity of a package. Popularity is the sum of all votes with each vote being weighted with a factor of 0.98 per day since its creation. Signed-off-by: Lukas Fleischer --- scripts/popupdate.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts') diff --git a/scripts/popupdate.py b/scripts/popupdate.py index 489cd41..f4c99ca 100755 --- a/scripts/popupdate.py +++ b/scripts/popupdate.py @@ -23,5 +23,10 @@ cur = db.cursor() cur.execute("UPDATE PackageBases SET NumVotes = (SELECT COUNT(*) FROM " + "PackageVotes WHERE PackageVotes.PackageBaseID = PackageBases.ID)") +cur.execute("UPDATE PackageBases SET Popularity = (" + + "SELECT SUM(POWER(0.98, (UNIX_TIMESTAMP() - VoteTS) / 86400)) " + + "FROM PackageVotes WHERE PackageVotes.PackageBaseID = " + + "PackageBases.ID AND NOT VoteTS IS NULL)") + db.commit() db.close() -- cgit v1.2.3-54-g00ecf