From 9123253d8785a12ceb30df5f0bd67b27deda1e10 Mon Sep 17 00:00:00 2001 From: emkael Date: Thu, 7 Sep 2017 00:50:15 +0200 Subject: Generating ranking table data in separate JSON files, rather than inline HTML --- ranking.py | 51 +++------------------------------------------------ 1 file changed, 3 insertions(+), 48 deletions(-) (limited to 'ranking.py') diff --git a/ranking.py b/ranking.py index 96bc3f8..4a16867 100644 --- a/ranking.py +++ b/ranking.py @@ -1,61 +1,16 @@ -import copy, os, sys +import os, sys from bs4 import BeautifulSoup as bs4 -from pyranking.fetch import fetch_ranking - ranking_date = sys.argv[3] subtitle = 'notowanie %s (%s), stan na %s' % ( sys.argv[1], sys.argv[2], '.'.join(ranking_date.split('-')[::-1]) ) -ranking = fetch_ranking(ranking_date) -old_ranking = fetch_ranking(sys.argv[4], True) if len(sys.argv) > 4 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' table = bs4(file('templates/ranking.html'), 'lxml') -table_body = table.select('table.data-table tbody')[0] -table_row = table_body.select('tr')[0].extract() - table.select('.page-header h2 small')[0].string = subtitle -for row in ranking: - new_row = copy.copy(table_row) - new_row.select('td.pid')[0].string = str(row['pid']) - new_row.select('td.pidlink a')[0]['href'] = 'https://msc.com.pl/cezar/?p=21&pid=%d' % (row['pid']) - new_row.select('td.name')[0].string = row['player'] - new_row.select('td.club')[0].string = row['club'] - for category in ['gender', 'age', 'region']: - new_row.select('td.' + category)[0].string = row[category] - new_row.select('td.' + category + '-place .rank')[0].string = str(row[category + '-place']) - badge = new_row.select('td.' + category + '-place .change')[0] - badge.string = row[category + '-change'] - badge['class'] = badge['class'] + ['label-' + row[category + '-change-class']] - score_cell = new_row.select('td.ranking span')[0] - score_cell['title'] = str(row['score']) - score_cell.string = '%.2f' % (row['score']) - new_row.select('td.place .rank')[0].string = str(row['place']) - badge = new_row.select('td.place .change')[0] - badge.string = row['place-change'] - badge['class'] = badge['class'] + ['label-' + row['place-change-class']] - for category in ['gender', 'age', 'region']: - if row[category + '-place'] == 1: - new_row['class'] = new_row.get('class', []) + ['info'] - table_body.append(new_row) +table.select('table.data-table')[0]['data-ranking'] = 'data/%s.json' % ( + ranking_date) 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