Compare commits

..

18 Commits

Author SHA1 Message Date
Sarah
e9a5b0ee51 Merge branch 'master' into feature/improve-table-generation 2022-12-10 15:56:03 +00:00
41860df682 Merge pull request 'fix bug' (#12) from bugfix/film-multiple-times-with-same-reference into master
Reviewed-on: #12
2022-12-10 09:11:59 +00:00
c802c474a6 Merge branch 'master' into bugfix/film-multiple-times-with-same-reference 2022-12-10 09:11:48 +00:00
Sarah
8b39506689 fix bug 2022-12-10 09:11:01 +00:00
4f0b7213fc Merge pull request 'bugfix/references-to-none' (#11) from bugfix/references-to-none into master
Reviewed-on: #11
2022-12-10 08:53:05 +00:00
Sarah
46647ef4d7 fix capitalization 2022-12-10 08:51:53 +00:00
Sarah
d83f2f8dac fix link 2022-12-10 07:59:05 +00:00
64041803a6 Merge pull request 'feature/improve-references-page' (#10) from feature/improve-references-page into master
Reviewed-on: #10
2022-12-09 21:17:40 +00:00
Sarah
9c1e4caf68 refactor 2022-12-09 20:25:19 +00:00
Sarah
0f59b2cd67 add missing helper functions 2022-12-04 14:25:17 +00:00
Sarah
3c8afec775 refactor 2022-12-04 14:20:49 +00:00
Sarah
6e182deb6e use helper function 2022-12-04 14:20:36 +00:00
Sarah
b8128be130 refactor and use helper function 2022-12-04 14:18:30 +00:00
Sarah
19365a77d5 user helper function 2022-12-04 14:14:56 +00:00
Sarah
f36660d5bd Merge branch 'master' into feature/improve-references-page 2022-12-04 14:13:31 +00:00
Sarah
95e7804a4a get references in the processing func 2022-12-04 13:00:58 +00:00
Sarah
9de7ec31c2 get references before generating table 2022-12-04 12:16:26 +00:00
Sarah
e89eb33230 use page of wikipedia page for table row 2022-12-03 12:05:52 +00:00
2 changed files with 77 additions and 12 deletions

View File

@ -132,8 +132,16 @@ def get_film_list(films):
def generate_imdb_film_link(film):
return MarkdownUtils.generate_markdown_link(film['title'], "https://www.imdb.com/title/tt{}/".format(film['imdb_id']))
return generate_markdown_link(film['title'], generate_imdb_url(film['imdb_id']))
def generate_wikipedia_page_link(page_title):
return MarkdownUtils.generate_markdown_link(page_title, "https://en.wikipedia.org/wiki/{}".format(page_title.replace(" ", "_")))
return generate_markdown_link(page_title, generate_wikipedia_url(page_title))
def generate_imdb_url(imdb_id):
return "https://www.imdb.com/title/tt{}/".format(imdb_id)
def generate_wikipedia_url(page_title):
return "https://en.wikipedia.org/wiki/{}".format(page_title.replace(" ", "_"))

View File

@ -1,5 +1,5 @@
from collections import OrderedDict
import string
import wikipedia
from bookstack import Bookstack
from markdown_utils import MarkdownUtils
@ -10,10 +10,59 @@ PAGE_ID = 62
def get_films_by_reference(viewings):
viewings_filtered_by_keyword = VCinemaUtils.filter_viewings(viewings, "keywords")
viewings_filtered_by_reference_keyword = {k: v for k, v in viewings_filtered_by_keyword.items() if k.startswith("reference-to")}
films_by_reference = {}
return viewings_filtered_by_reference_keyword
for viewing in viewings:
if "keywords" in viewing.keys():
for keyword in viewing["keywords"]:
if keyword.startswith("reference-to-"):
for reference in films_by_reference:
if keyword in films_by_reference[reference]["keywords"]:
films_by_reference[reference]["films"].append(viewing)
break
else:
keyword = keyword[13:]
if keyword.startswith("a-"):
keyword = keyword[2:]
referenced = keyword.replace("-", " ")
try:
searches = wikipedia.search(referenced, suggestion=False)
referenced_page = wikipedia.page(title=referenced, auto_suggest=False)
page_title = referenced_page.title
page_url = referenced_page.url
except wikipedia.DisambiguationError as e:
page_title = e.title
page_title = page_title[0].upper() + page_title[1:]
page_url = VCinemaUtils.generate_wikipedia_url(page_title)
except wikipedia.PageError as _:
try:
referenced_page = wikipedia.page(title=searches[0], auto_suggest=False)
page_title = referenced_page.title
page_url = referenced_page.url
except wikipedia.DisambiguationError as e:
page_title = e.title
page_title = page_title[0].upper() + page_title[1:]
page_url = VCinemaUtils.generate_wikipedia_url(page_title)
if page_title in films_by_reference.keys():
films_by_reference[page_title]["keywords"].append(keyword)
if viewing not in films_by_reference[page_title]["films"]:
films_by_reference[page_title]["films"].append(viewing)
else:
films_by_reference[page_title] = {"url": page_url,
"keywords": [keyword],
"films": [viewing]}
return films_by_reference
def update_page(token_id, token_secret, films_by_reference_keyword):
@ -21,14 +70,22 @@ def update_page(token_id, token_secret, films_by_reference_keyword):
Bookstack.update_page(VCinemaUtils.JACKNET_WIKI_URL, token_id, token_secret, PAGE_ID, markdown=page)
def build_page(films_by_reference_keyword):
reference_keywords_sorted = OrderedDict(sorted(films_by_reference_keyword.items(), key=lambda t: t[0]))
def build_page(films_by_reference):
films_by_reference = OrderedDict(sorted(films_by_reference.items(), key=lambda t: t[0]))
table = MarkdownUtils.MarkdownTable(["Referenced", "Films"])
for year in reference_keywords_sorted.keys():
row_data = [VCinemaUtils.generate_wikipedia_page_link(string.capwords(year[13:].replace("-", " "))),
VCinemaUtils.get_film_list(reference_keywords_sorted[year])]
table.add_row(row_data)
for reference, referenced in films_by_reference.items():
table += "\n"
row_data = []
reference_url = referenced["url"]
referenced_films = referenced["films"]
row_data.append(VCinemaUtils.generate_markdown_link(reference, reference_url))
row_data.append(VCinemaUtils.get_film_list(referenced_films))
table += " | ".join(row_data)
return table