summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2018-08-24 12:53:41 +0200
committeremkael <emkael@tlen.pl>2018-08-24 12:54:15 +0200
commit6f9756cf49e2e2802916ef251732a9377ddd756b (patch)
tree66bf607583b9ed856341454b505b0c50d9487d24 /scripts
parent83c732f6c67c05b641cd0d37d9e8718cbf061c65 (diff)
Alowingg players to not be displayed by name in the rankings
Diffstat (limited to 'scripts')
-rw-r--r--scripts/datafiles-generate.py45
-rw-r--r--scripts/players-compile.py25
-rw-r--r--scripts/pyranking/fetch.py3
-rw-r--r--scripts/rankings-tables-compile.py6
4 files changed, 45 insertions, 34 deletions
diff --git a/scripts/datafiles-generate.py b/scripts/datafiles-generate.py
index 5cee451..2115c20 100644
--- a/scripts/datafiles-generate.py
+++ b/scripts/datafiles-generate.py
@@ -7,24 +7,33 @@ ranking_date = sys.argv[1]
ranking = fetch_ranking(ranking_date)
old_ranking = fetch_ranking(sys.argv[2], True) if len(sys.argv) > 2 else {}
+categories = ['gender', 'age', 'region']
+
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])
+ if row['hidden']:
+ for field in row:
+ if field not in ['place'] + categories:
+ row[field] = None
+ row['player'] = ''
+ row['club'] = ''
+ else:
+ 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 categories:
+ 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)
diff --git a/scripts/players-compile.py b/scripts/players-compile.py
index 613c01f..ed82c12 100644
--- a/scripts/players-compile.py
+++ b/scripts/players-compile.py
@@ -17,18 +17,19 @@ players = {}
for date in sorted(dates.keys()):
for player, ranking in fetch_ranking(date, True).iteritems():
- if player not in players:
- players[player] = {'rankings':{}}
- players[player]['name'] = ranking['player']
- players[player]['club'] = ranking['club']
- players[player]['rankings'][date] = {'change': 'N','change-class':'primary'}
- for field in ['place', 'score']:
- players[player]['rankings'][date][field] = ranking[field]
- for field in ['gender', 'age', 'region']:
- players[player]['rankings'][date][field] = ranking[field]
- players[player]['rankings'][date][field + '-place'] = ranking[field + '-place']
- players[player]['rankings'][date][field + '-change'] = 'N'
- players[player]['rankings'][date][field + '-change-class'] = 'primary'
+ if not ranking['hidden']:
+ if player not in players:
+ players[player] = {'rankings':{}}
+ players[player]['name'] = ranking['player']
+ players[player]['club'] = ranking['club']
+ players[player]['rankings'][date] = {'change': 'N','change-class':'primary'}
+ for field in ['place', 'score']:
+ players[player]['rankings'][date][field] = ranking[field]
+ for field in ['gender', 'age', 'region']:
+ players[player]['rankings'][date][field] = ranking[field]
+ players[player]['rankings'][date][field + '-place'] = ranking[field + '-place']
+ players[player]['rankings'][date][field + '-change'] = 'N'
+ players[player]['rankings'][date][field + '-change-class'] = 'primary'
for pid, player in players.iteritems():
template = bs4(file('templates/player.html'), 'lxml')
diff --git a/scripts/pyranking/fetch.py b/scripts/pyranking/fetch.py
index 304f509..67ab5a6 100644
--- a/scripts/pyranking/fetch.py
+++ b/scripts/pyranking/fetch.py
@@ -9,7 +9,8 @@ def fetch_ranking(date, assoc=False):
rankings.region, rankings.club,
REPLACE(rankings.flags, "K", "") age,
IF(rankings.flags LIKE 'K%', "K", "") gender,
- rankings.score
+ rankings.score,
+ rankings.hidden
FROM rankings
JOIN players
ON players.id = rankings.pid
diff --git a/scripts/rankings-tables-compile.py b/scripts/rankings-tables-compile.py
index 52b036f..f1a0cc8 100644
--- a/scripts/rankings-tables-compile.py
+++ b/scripts/rankings-tables-compile.py
@@ -1,4 +1,4 @@
-import os, sys
+import os, sys, time
from bs4 import BeautifulSoup as bs4
ranking_date = sys.argv[4]
@@ -9,8 +9,8 @@ subtitle = 'notowanie %s (%s), stan na %s' % (
table = bs4(file('templates/ranking.html'), 'lxml')
table.select('.page-header h2 small')[0].string = subtitle
-table.select('table.data-table')[0]['data-ranking'] = '_data/%s.json' % (
- ranking_date)
+table.select('table.data-table')[0]['data-ranking'] = '_data/%s.json?%d' % (
+ ranking_date, int(time.time()))
script_src = table.select('script[src="_res/ranking.js"]')[0]
script_src['src'] = '%s?%d' % ('_res/ranking.js', os.path.getmtime('http/_res/ranking.js'))