blob: 42d036f5121ce5d91357050e83c25b1e4ea625ed (
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
36
|
import copy, json, sys
from bs4 import BeautifulSoup as bs4
dates_config = json.load(file('config/dates.json'))
output_file = bs4(file(sys.argv[1]), 'lxml')
editions = {}
for date_config in dates_config:
year = date_config['name'].split(' ')[1]
if year not in editions:
editions[year] = []
editions[year].append((
'%s (%s)' % (date_config['name'].split(' ')[0], date_config['index']),
date_config['url'],
date_config['date']
))
template = bs4(file('templates/ranking.html'), 'lxml')
date_group = template.select('#editions')[0].extract()
year_group = date_group.select('div[role="group"]')[0].extract()
ranking_link = year_group.select('.btn-default')[0].extract()
for year, dates in editions.iteritems():
group = copy.copy(year_group)
group.select('.year')[0].string = str(year)
for date in dates[::-1]:
link = copy.copy(ranking_link)
link.string = date[0]
link['href'] = date[1]
link['datetime'] = date[2]
group.append(link)
date_group.append(group)
output_file.select('#editions')[0].replace_with(date_group)
file(sys.argv[1], 'w').write(output_file.prettify().encode('utf-8'))
|