summaryrefslogtreecommitdiff
path: root/scripts/hiscores/week.py
blob: 3853abd622e4be3c88414738a27f7bd7fa306b32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# this needs python 3

import re
import sys
import postgresql
from urllib.parse import urlparse
import redis

db = postgresql.open("pq://postgres:root@localhost/dumpfm")
db.execute("SET CLIENT_ENCODING to 'UNICODE'")

r = redis.Redis("localhost")

def clear_redis():
  r.delete("hiscore.day")

def fetch_favs():
  ps = db.prepare("SELECT user_id, message_id, created_on FROM tags WHERE created_on > (now() - INTERVAL '7 day') AND LOWER(tag) = 'favorite'")
  rows = ps()
  return rows

def add_favs_to_redis(favs):
  for fav in favs:
    user_id = fav[0]
    message_id = fav[1]
    r.zincrby("hiscore.week", message_id, 1)

def rm_low_scores():
  r.zremrangebyscore("hiscore.week", 0, 5)

if __name__ == "__main__":
  clear_redis()
  favs = fetch_favs()
  add_favs_to_redis(favs)
  rm_low_scores()