Compare commits

...

2 Commits

Author SHA1 Message Date
Sarah
87a44997d7 fix display 2022-07-01 15:26:16 +01:00
Sarah
6600d7ffb7 display % with hidden themes 2022-07-01 15:17:27 +01:00

View File

@ -28,20 +28,26 @@ def get_hidden_themes(viewings, token_id, token_secret):
# Add hidden themes # Add hidden themes
for date, data in viewings_filtered_watch_date.items(): for date, data in viewings_filtered_watch_date.items():
hidden_themes = set() keyword_counts = {}
if len(data['viewings']) > 1: if len(data['viewings']) > 1:
viewings_keywords = []
for viewing in data['viewings']: for viewing in data['viewings']:
if 'keywords' in viewing: if 'keywords' in viewing:
viewings_keywords.append(set(viewing['keywords'])) for keyword in viewing['keywords']:
if keyword in keyword_counts.keys():
keyword_counts[keyword] += 1
else:
keyword_counts[keyword] = 1
if len(viewings_keywords) > 1: keyword_counts = {k: v for k, v in sorted(keyword_counts.items(), key=lambda item: item[1], reverse=True)}
hidden_themes = set.intersection(*viewings_keywords) hidden_themes = {}
if hidden_themes != set(): for keyword in keyword_counts:
viewings_filtered_watch_date[date]['hidden_themes'] = list(hidden_themes) rating = float(keyword_counts[keyword]) / float(len(data['viewings']))
if rating > 0.5:
hidden_themes[keyword] = rating
viewings_filtered_watch_date[date]['hidden_themes'] = hidden_themes
return viewings_filtered_watch_date return viewings_filtered_watch_date
@ -62,7 +68,18 @@ def build_page(hidden_themes):
row_data = [] row_data = []
row_data.append(str(date)) row_data.append(str(date))
row_data.append(VCinemaUtils.get_film_list(data['viewings'])) row_data.append(VCinemaUtils.get_film_list(data['viewings']))
row_data.append(("<br>".join(k for k in sorted(data['hidden_themes']))) if 'hidden_themes' in data else "N/A") if 'hidden_themes' in data and data['hidden_themes'] != {}:
hidden_theme_labels = []
for hidden_theme in sorted(data['hidden_themes'].keys()):
if data['hidden_themes'][hidden_theme] == 1:
hidden_theme_labels.append(hidden_theme)
else:
hidden_theme_labels.append("<i>{} ({}%)</i>".format(hidden_theme, round(data['hidden_themes'][hidden_theme] * 100)))
row_data.append("<br>".join(hidden_theme_labels))
else:
row_data.append("N/A")
table += " | ".join(row_data) table += " | ".join(row_data)