From 586ccfb9972f14f0d4f01d5c11ad835aff712265 Mon Sep 17 00:00:00 2001 From: Sarah Date: Thu, 24 Mar 2022 20:32:07 +0000 Subject: [PATCH] rename file --- ...ntry_page.py => update_films_by_country.py | 88 +++++++++---------- 1 file changed, 40 insertions(+), 48 deletions(-) rename update_films_by_country_page.py => update_films_by_country.py (56%) diff --git a/update_films_by_country_page.py b/update_films_by_country.py similarity index 56% rename from update_films_by_country_page.py rename to update_films_by_country.py index 3dd3949..654658d 100644 --- a/update_films_by_country_page.py +++ b/update_films_by_country.py @@ -1,81 +1,69 @@ +from bookstack import Bookstack +from vcinema_utils import VCinemaUtils + import argparse import base64 from collections import Counter, OrderedDict +import csv import os -from progress.bar import Bar +from progress.bar import IncrementalBar from wand.image import Image import worldmap import warnings warnings.filterwarnings("ignore") -from bookstack import Bookstack -from vcinema_utils import VCinemaUtils +def get_flags_dict(): + flags = {} + + with open('country_flags.csv', newline='') as f: + reader = csv.reader(f, quotechar="\"") + next(reader, None) # skip the headers + + for row in reader: + flags[row[0]] = row[1] + + return flags -FLAGS = { - "Australia": "🇦🇺", - "Belgium": "🇧🇪", - "Canada": "🇨🇦", - "China": "🇨🇳", - "Czech Republic": "🇨🇿", - "Czechia": "🇨🇿", - "France": "🇫🇷", - "Germany": "🇩🇪", - "Hong Kong": "🇭🇰", - "Hong Kong SAR China": "🇭🇰", - "Italy": "🇮🇹", - "Israel": "🇮🇱", - "Japan": "🇯🇵", - "Luxembourg": "🇱🇺", - "Mexico": "🇲🇽", - "New Zealand": "🇳🇿", - "Nigeria": "🇳🇬", - "North Korea": "🇰🇵", - "Philippines": "🇵🇭", - "Russia": "🇷🇺", - "Spain": "🇪🇸", - "South Africa": "🇿🇦", - "South Korea": "🇰🇷", - "Taiwan": "🇹🇼", - "Thailand": "🇹🇭", - "Turkey": "🇹🇷", - "Uganda": "🇺🇬", - "United Kingdom": "🇬🇧", - "United States": "🇺🇸", - "West Germany": "⬅️🇩🇪", -} +def build_table(films_by_country, bar=None): + films_by_country_sorted = OrderedDict(sorted(films_by_country.items(), key=lambda t: t[0])) - -def build_table(fby, bar): - fby_sorted = OrderedDict(sorted(fby.items(), key=lambda t: t[0])) + flags = get_flags_dict() table = "" table += "" table += "" - for country in fby_sorted.keys(): + for country in films_by_country_sorted.keys(): row = "" row += "" row += "" row += "" table += row - bar.next() + if bar is not None: + bar.next() table += "" table += "
CountryFilms
" - row += "{} {}".format(str(country), FLAGS[country]) + row += "{} {}".format(str(country), flags[country] if country in flags.keys() else "") row += "" - row += "
".join(["{}".format(film['imdb_id'], film['title']) for film in fby_sorted[country]]) + film_links = ["{}".format(film['imdb_id'], film['title']) + for film in films_by_country_sorted[country]] + + row += "
".join(film_links) row += "
" + if bar is not None: + bar.finish() + return table @@ -87,7 +75,7 @@ def draw_map(counter, file_name="vcinema_map.svg"): opacity = [0.5 + (x / (float(max_count))/2.0) for x in counts] - worldmap.plot(countries, cmap=["#ff0000"], opacity=opacity, filename=file_name, verbose=False) + worldmap.plot(countries, cmap=["#49E20E"], opacity=opacity, filename=file_name, verbose=False) with Image(filename=file_name, width=1000, height=655) as i: png_data = i.make_blob("png") @@ -109,28 +97,32 @@ def update_page(map_png, table, wiki_url, token_id, token_secret): Bookstack.update_page(wiki_url, token_id, token_secret, page_id, html=page_contents) -def update_films_by_country_page(token_id, token_secret): +def update_films_by_country(token_id, token_secret): print("Retrieving VCinema viewings") viewings = VCinemaUtils.get_vcinema_viewings(token_id, token_secret) viewing_count = len(viewings) - with Bar('Retrieving movie data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: + with IncrementalBar('Retrieving movie data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: VCinemaUtils.add_imdb_data_to_viewings(viewings, ['countries'], bar) - with Bar('Processing viewing data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: + with IncrementalBar('Processing viewing data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: viewings_by_country = VCinemaUtils.filter_viewings(viewings, 'countries', bar) country_count = len(viewings_by_country.keys()) - with Bar('Generating table', max=country_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: + with IncrementalBar('Generating table', max=country_count, suffix='%(percent).1f%% - %(eta)ds remaining', check_tty=False) as bar: film_by_country_table = build_table(viewings_by_country, bar) print("Drawing map") country_counter = Counter(viewings_by_country) png_data = draw_map(country_counter) + print("Updating page") + update_page(png_data, film_by_country_table, VCinemaUtils.JACKNET_WIKI_URL, token_id, token_secret) + print("Done!") + if __name__ == '__main__': parser = argparse.ArgumentParser(description='Update page displaying VCinema films sorted by country.') @@ -139,4 +131,4 @@ if __name__ == '__main__': args = parser.parse_args() - update_films_by_country_page(args.token_id, args.token_secret) + update_films_by_country(args.token_id, args.token_secret)