#!/usr/bin/env python3 import lib_common as mylib import lib_html as HTML import html_group_compare def write_overview_page(base_dir, category_tuples, title): cluster = {} for x in category_tuples: i = int(int(x[0]) / 1000) try: cluster[i].append(x) except KeyError: cluster[i] = [x] src = HTML.h2_path_n_rank(title, [], 'compare/', 'Compare') src += '
' for i, arr in sorted(cluster.items()): mylib.sort_by_name(arr, 1) kind = 'Apps' if i == 6 else 'Games' if i == 7 else 'Other' src += '

{}

'.format(kind) src += '
' src += ''.join([HTML.a_category(*x) for x in arr]) + '
' HTML.write(base_dir, src + '
', title) # make groupby compare html base_dir = mylib.path_add(base_dir, 'compare') html_group_compare.write_groupby_multi( base_dir, [('/category', 'All Categories')], 'Compare', 'Categories', [('category-6', 'Category: Apps'), ('category-7', 'Category: Games')]) def process(affected=None, per_page=60): print('generating html: category-index ...') base = mylib.path_out('category') parent = 'All Categories' arr = [] for fname, json in mylib.enum_categories(): cid, cname = json['meta'] arr.append([cid, cname]) if affected and cid not in affected: continue out_dir = mylib.path_add(base, cid) # full url since categories can have page 2, 3, etc. A = HTML.h2_path_n_rank(cname, [('/category/', parent)], 'ranking/') Z = HTML.p_download_json('data.json', 'category-{}.json'.format(cid)) _, a = HTML.write_app_pages(out_dir, json['apps'], cname, per_page, pre=A, post=Z) # write_app_pages breaks html_ranking!! call html_ranking after this! print(' {} ({})'.format(cname, a)) if a > 1: arr[-1][-1] += ' ({})'.format(a) # append count mylib.symlink(fname, mylib.path_add(out_dir, 'data.json')) print(' .. {} categories'.format(len(arr))) write_overview_page(base, arr, parent) print('') if __name__ == '__main__': process()