diff --git a/update_films_by_year_page.py b/update_films_by_year_page.py
index cc75829..fc425b6 100644
--- a/update_films_by_year_page.py
+++ b/update_films_by_year_page.py
@@ -7,22 +7,18 @@ from bookstack import Bookstack
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))
page_table = "| Year | Films |\n| - | - |\n"
- sys.stdout.write("\rGenerating table")
- sys.stdout.flush()
+ for year in films_by_year_sorted.keys():
+ page_table += str(year) + " | "
+ page_table += "
".join("[{}](https://www.imdb.com/title/tt{}/)".format(film['title'], film['imdb_id']) for film in films_by_year_sorted[year])
+ page_table += "\n"
- 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():
- page_table += str(year) + " | "
- page_table += "
".join("[{}](https://www.imdb.com/title/tt{}/)".format(film['title'], film['imdb_id']) for film in films_by_year_sorted[year])
- page_table += "\n"
- bar.next()
+ if progressbar is not None:
+ progressbar.next()
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:
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 = 24
diff --git a/vcinema_utils/VCinemaUtils.py b/vcinema_utils/VCinemaUtils.py
index 4570189..1d5060f 100644
--- a/vcinema_utils/VCinemaUtils.py
+++ b/vcinema_utils/VCinemaUtils.py
@@ -72,30 +72,25 @@ def add_imdb_data_to_viewings(viewings, field_names, progressbar=None):
viewing[field_name] = imdb_data[field_name]
-def filter_viewings(viewings, filter_field):
- sys.stdout.write("\rProcessing viewing data")
- sys.stdout.flush()
-
+def filter_viewings(viewings, filter_field, progressbar=None):
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:
- if filter_field in viewing:
- viewing_field = viewing[filter_field]
- if isinstance(viewing_field, list):
- for fve in list(viewing_field):
- if fve in viewings_filtered.keys():
- viewings_filtered[fve] += [viewing]
- else:
- viewings_filtered[fve] = [viewing]
- else:
- if viewing_field in viewings_filtered.keys():
- viewings_filtered[viewing_field] += [viewing]
+ for viewing in viewings:
+ if filter_field in viewing:
+ viewing_field = viewing[filter_field]
+ if isinstance(viewing_field, list):
+ for fve in list(viewing_field):
+ if fve in viewings_filtered.keys():
+ viewings_filtered[fve] += [viewing]
else:
- viewings_filtered[viewing_field] = [viewing]
- bar.next()
+ viewings_filtered[fve] = [viewing]
+ else:
+ if viewing_field in viewings_filtered.keys():
+ viewings_filtered[viewing_field] += [viewing]
+ else:
+ viewings_filtered[viewing_field] = [viewing]
+ if progressbar is not None:
+ progressbar.next()
return viewings_filtered