Compare commits
No commits in common. "95e7804a4accbea78778989b192196e1968562cb" and "35d3637cd987a9fd27c960b309afa46cc7f5130d" have entirely different histories.
95e7804a4a
...
35d3637cd9
@ -1,5 +1,5 @@
|
||||
from collections import OrderedDict
|
||||
import wikipedia
|
||||
import string
|
||||
|
||||
from bookstack import Bookstack
|
||||
from vcinema_utils import VCinemaUtils
|
||||
@ -9,52 +9,10 @@ PAGE_ID = 62
|
||||
|
||||
|
||||
def get_films_by_reference(viewings):
|
||||
films_by_reference = {}
|
||||
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")}
|
||||
|
||||
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:
|
||||
referenced = keyword[13:].replace("-", " ")
|
||||
|
||||
if referenced.startswith("a "):
|
||||
referenced = referenced[2:]
|
||||
|
||||
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 e1:
|
||||
page_title = e1.title
|
||||
page_url = "https://en.wikipedia.org/wiki/{}".format(e1.title.replace(" ", "_"))
|
||||
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 e2:
|
||||
page_title = e2.title
|
||||
page_url = "https://en.wikipedia.org/wiki/{}".format(e2.title.replace(" ", "_"))
|
||||
|
||||
if page_title in films_by_reference.keys():
|
||||
films_by_reference[page_title]["films"].append(viewing)
|
||||
films_by_reference[page_title]["keywords"].append(keyword)
|
||||
else:
|
||||
films_by_reference[page_title] = {"url": page_url,
|
||||
"keywords": [keyword],
|
||||
"films": [viewing]}
|
||||
|
||||
return films_by_reference
|
||||
return viewings_filtered_by_reference_keyword
|
||||
|
||||
|
||||
def update_page(token_id, token_secret, films_by_reference_keyword):
|
||||
@ -62,22 +20,17 @@ 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):
|
||||
films_by_reference_sorted = OrderedDict(sorted(films_by_reference.items(), key=lambda t: t[0]))
|
||||
def build_page(films_by_reference_keyword):
|
||||
reference_keywords_sorted = OrderedDict(sorted(films_by_reference_keyword.items(), key=lambda t: t[0]))
|
||||
|
||||
table = "| Referenced | Films |\n| - | - |"
|
||||
|
||||
for reference, referenced in films_by_reference_sorted.items():
|
||||
for year in reference_keywords_sorted.keys():
|
||||
table += "\n"
|
||||
|
||||
row_data = []
|
||||
|
||||
reference_url = referenced["url"]
|
||||
reference_title = reference
|
||||
referenced_films = referenced["films"]
|
||||
|
||||
row_data.append("[{}]({})".format(reference_title, reference_url))
|
||||
row_data.append(VCinemaUtils.get_film_list(referenced_films))
|
||||
row_data.append("[{}](https://en.wikipedia.org/wiki/{})".format(str(string.capwords(year[13:].replace("-", " "))), str(string.capwords(year[13:].replace("-", " ")).replace(" ", "_"))))
|
||||
row_data.append(VCinemaUtils.get_film_list(reference_keywords_sorted[year]))
|
||||
|
||||
table += " | ".join(row_data)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user