refactor script to take progress bar as arg

This commit is contained in:
Sarah 2022-02-27 15:34:06 +00:00
parent 91883e0133
commit 6d3530bae9
2 changed files with 28 additions and 34 deletions

View File

@ -7,22 +7,18 @@ from bookstack import Bookstack
from vcinema_utils import VCinemaUtils from vcinema_utils import VCinemaUtils
def build_table(films_by_year): def build_table(films_by_year, progressbar=None):
films_by_year_sorted = OrderedDict(sorted(films_by_year.items(), key=lambda t: t[0], reverse=True)) films_by_year_sorted = OrderedDict(sorted(films_by_year.items(), key=lambda t: t[0], reverse=True))
page_table = "| Year | Films |\n| - | - |\n" page_table = "| Year | Films |\n| - | - |\n"
sys.stdout.write("\rGenerating table")
sys.stdout.flush()
viewing_count = len(films_by_year_sorted)
with Bar('Generating table', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar:
for year in films_by_year_sorted.keys(): for year in films_by_year_sorted.keys():
page_table += str(year) + " | " page_table += str(year) + " | "
page_table += "<br>".join("[{}](https://www.imdb.com/title/tt{}/)".format(film['title'], film['imdb_id']) for film in films_by_year_sorted[year]) page_table += "<br>".join("[{}](https://www.imdb.com/title/tt{}/)".format(film['title'], film['imdb_id']) for film in films_by_year_sorted[year])
page_table += "\n" page_table += "\n"
bar.next()
if progressbar is not None:
progressbar.next()
return page_table return page_table
@ -35,9 +31,12 @@ def update_films_by_year_page(token_id, token_secret):
with Bar('Retrieving movie data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar: with Bar('Retrieving movie data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar:
VCinemaUtils.add_imdb_data_to_viewings(viewings, ['year'], bar) VCinemaUtils.add_imdb_data_to_viewings(viewings, ['year'], bar)
viewings_by_year = VCinemaUtils.filter_viewings(viewings, 'year') with Bar('Processing viewing data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar:
viewings_by_year = VCinemaUtils.filter_viewings(viewings, 'year', bar)
film_by_year_table = build_table(viewings_by_year) year_count = len(viewings_by_year)
with Bar('Generating table', max=year_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar:
film_by_year_table = build_table(viewings_by_year, bar)
# Page ID of https://wiki.jacknet.io/books/vcinema/page/films-by-release-year # Page ID of https://wiki.jacknet.io/books/vcinema/page/films-by-release-year
page_id = 24 page_id = 24

View File

@ -72,15 +72,9 @@ def add_imdb_data_to_viewings(viewings, field_names, progressbar=None):
viewing[field_name] = imdb_data[field_name] viewing[field_name] = imdb_data[field_name]
def filter_viewings(viewings, filter_field): def filter_viewings(viewings, filter_field, progressbar=None):
sys.stdout.write("\rProcessing viewing data")
sys.stdout.flush()
viewings_filtered = {} viewings_filtered = {}
viewing_count = len(viewings)
with Bar('Processing viewing data', max=viewing_count, suffix='%(percent).1f%% - %(eta)ds remaining') as bar:
for viewing in viewings: for viewing in viewings:
if filter_field in viewing: if filter_field in viewing:
viewing_field = viewing[filter_field] viewing_field = viewing[filter_field]
@ -95,7 +89,8 @@ def filter_viewings(viewings, filter_field):
viewings_filtered[viewing_field] += [viewing] viewings_filtered[viewing_field] += [viewing]
else: else:
viewings_filtered[viewing_field] = [viewing] viewings_filtered[viewing_field] = [viewing]
bar.next()
if progressbar is not None:
progressbar.next()
return viewings_filtered return viewings_filtered