summaryrefslogtreecommitdiff
path: root/scripts/datafiles-generate.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/datafiles-generate.py')
-rw-r--r--scripts/datafiles-generate.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/datafiles-generate.py b/scripts/datafiles-generate.py
new file mode 100644
index 0000000..5cee451
--- /dev/null
+++ b/scripts/datafiles-generate.py
@@ -0,0 +1,30 @@
+import json, sys
+from decimal import Decimal
+
+from pyranking.fetch import fetch_ranking
+
+ranking_date = sys.argv[1]
+ranking = fetch_ranking(ranking_date)
+old_ranking = fetch_ranking(sys.argv[2], True) if len(sys.argv) > 2 else {}
+
+for row in ranking:
+ if row['pid'] in old_ranking:
+ row['place-change'] = old_ranking[row['pid']]['place'] - row['place']
+ row['place-change-class'] = 'success' if row['place-change'] > 0 else 'danger'
+ row['place-change'] = '%+d' % (row['place-change'])
+ if row['place-change'] == '+0':
+ row['place-change'] = '='
+ row['place-change-class'] = 'default'
+ for category in ['gender', 'age', 'region']:
+ if row[category] == old_ranking[row['pid']][category]:
+ row[category + '-change'] = old_ranking[row['pid']][category + '-place'] - row[category + '-place']
+ row[category + '-change-class'] = 'success' if row[category + '-change'] > 0 else 'danger'
+ row[category + '-change'] = '%+d' % (row[category + '-change'])
+ if row[category + '-change'] == '+0':
+ row[category + '-change'] = '='
+ row[category + '-change-class'] = 'default'
+ for field in row:
+ if isinstance(row[field], Decimal):
+ row[field] = float(row[field])
+
+print json.dumps(ranking)