from wiki_pages import FilmsByCountry from vcinema_utils import VCinemaUtils import argparse from collections import OrderedDict from progress.bar import IncrementalBar def generate_map_timelapse(token_id, token_secret): print("Getting viewings") viewings = VCinemaUtils.get_vcinema_viewings(token_id, token_secret, combine_repeat_viewings=False) viewing_count = len(viewings) 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) date_viewings = VCinemaUtils.filter_viewings(viewings, "date_watched") date_viewings = OrderedDict(sorted(date_viewings.items(), key=lambda t: t[0])) running_country_counts = {} for date, viewings in date_viewings.items(): date_viewings_countries = VCinemaUtils.filter_viewings(viewings, "countries") for country in date_viewings_countries: if country in running_country_counts.keys(): running_country_counts[country] += date_viewings_countries[country] else: running_country_counts[country] = date_viewings_countries[country] with open("map-{}.png".format(date), "wb") as f: f.write(FilmsByCountry.draw_map(running_country_counts, file_name="map-{}.svg".format(date))) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Update wiki pages.') parser.add_argument('token_id', help='API token ID.') parser.add_argument('token_secret', help='API token secret.') args = parser.parse_args() generate_map_timelapse(args.token_id, args.token_secret)