from collections import OrderedDict import string from bookstack import Bookstack from markdown_utils import MarkdownUtils from vcinema_utils import VCinemaUtils # Page ID of https://wiki.jacknet.io/books/vcinema/page/references PAGE_ID = 62 def get_films_by_reference(viewings): viewings_filtered_by_keyword = VCinemaUtils.filter_viewings(viewings, "keywords") viewings_filtered_by_reference_keyword = {k: v for k, v in viewings_filtered_by_keyword.items() if k.startswith("reference-to")} return viewings_filtered_by_reference_keyword def update_page(token_id, token_secret, films_by_reference_keyword): page = build_page(films_by_reference_keyword) Bookstack.update_page(VCinemaUtils.JACKNET_WIKI_URL, token_id, token_secret, PAGE_ID, markdown=page) def build_page(films_by_reference_keyword): reference_keywords_sorted = OrderedDict(sorted(films_by_reference_keyword.items(), key=lambda t: t[0])) table = MarkdownUtils.MarkdownTable(["Referenced", "Films"]) for year in reference_keywords_sorted.keys(): row_data = [VCinemaUtils.generate_wikipedia_page_link(string.capwords(year[13:].replace("-", " "))), VCinemaUtils.get_film_list(reference_keywords_sorted[year])] table.add_row(row_data) return table