From 6f9756cf49e2e2802916ef251732a9377ddd756b Mon Sep 17 00:00:00 2001 From: emkael Date: Fri, 24 Aug 2018 12:53:41 +0200 Subject: Alowingg players to not be displayed by name in the rankings --- scripts/datafiles-generate.py | 45 +++++++++++++++++++++++--------------- scripts/players-compile.py | 25 +++++++++++---------- scripts/pyranking/fetch.py | 3 ++- scripts/rankings-tables-compile.py | 6 ++--- 4 files changed, 45 insertions(+), 34 deletions(-) (limited to 'scripts') 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')) -- cgit v1.2.3