Compare commits
18 Commits
d65ffbed43
...
e9a5b0ee51
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e9a5b0ee51 | ||
41860df682 | |||
c802c474a6 | |||
![]() |
8b39506689 | ||
4f0b7213fc | |||
![]() |
46647ef4d7 | ||
![]() |
d83f2f8dac | ||
64041803a6 | |||
![]() |
9c1e4caf68 | ||
![]() |
0f59b2cd67 | ||
![]() |
3c8afec775 | ||
![]() |
6e182deb6e | ||
![]() |
b8128be130 | ||
![]() |
19365a77d5 | ||
![]() |
f36660d5bd | ||
![]() |
95e7804a4a | ||
![]() |
9de7ec31c2 | ||
![]() |
e89eb33230 |
@ -132,8 +132,16 @@ def get_film_list(films):
|
|||||||
|
|
||||||
|
|
||||||
def generate_imdb_film_link(film):
|
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):
|
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(" ", "_"))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import string
|
import wikipedia
|
||||||
|
|
||||||
from bookstack import Bookstack
|
from bookstack import Bookstack
|
||||||
from markdown_utils import MarkdownUtils
|
from markdown_utils import MarkdownUtils
|
||||||
@ -10,10 +10,59 @@ PAGE_ID = 62
|
|||||||
|
|
||||||
|
|
||||||
def get_films_by_reference(viewings):
|
def get_films_by_reference(viewings):
|
||||||
viewings_filtered_by_keyword = VCinemaUtils.filter_viewings(viewings, "keywords")
|
films_by_reference = {}
|
||||||
viewings_filtered_by_reference_keyword = {k: v for k, v in viewings_filtered_by_keyword.items() if k.startswith("reference-to")}
|
|
||||||
|
|
||||||
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):
|
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)
|
Bookstack.update_page(VCinemaUtils.JACKNET_WIKI_URL, token_id, token_secret, PAGE_ID, markdown=page)
|
||||||
|
|
||||||
|
|
||||||
def build_page(films_by_reference_keyword):
|
def build_page(films_by_reference):
|
||||||
reference_keywords_sorted = OrderedDict(sorted(films_by_reference_keyword.items(), key=lambda t: t[0]))
|
films_by_reference = OrderedDict(sorted(films_by_reference.items(), key=lambda t: t[0]))
|
||||||
|
|
||||||
table = MarkdownUtils.MarkdownTable(["Referenced", "Films"])
|
table = MarkdownUtils.MarkdownTable(["Referenced", "Films"])
|
||||||
|
|
||||||
for year in reference_keywords_sorted.keys():
|
for reference, referenced in films_by_reference.items():
|
||||||
row_data = [VCinemaUtils.generate_wikipedia_page_link(string.capwords(year[13:].replace("-", " "))),
|
table += "\n"
|
||||||
VCinemaUtils.get_film_list(reference_keywords_sorted[year])]
|
|
||||||
table.add_row(row_data)
|
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
|
return table
|
||||||
|
Loading…
x
Reference in New Issue
Block a user