Created
June 11, 2021 00:40
-
-
Save rogeruiz/bfa2e756372e83f3e45ec968bf3b8da2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import wikipedia | |
from bs4 import BeautifulSoup, Tag | |
import datetime | |
import urllib.parse | |
from ankisync2.apkg import Apkg | |
from ankisync2.anki20 import db | |
if __name__ == "__main__": | |
tdelta = datetime.timedelta(milliseconds=500) | |
apkg = Apkg("casp_plus_003_terms.apkg") | |
soup = BeautifulSoup() | |
anchor_tag = soup.new_tag("a") | |
front_of_card = "" | |
back_of_card = "" | |
wiki_search = "" | |
wiki_page = None | |
summary_of_card = "" | |
print("# CASP+ 003 Terms") | |
print("") | |
for note in db.Notes.filter(): | |
for k, v in note.data.items(): | |
if v == "Front": | |
front_of_card = k | |
if v == "Back": | |
back_of_card = k | |
if bool(BeautifulSoup(back_of_card, "html.parser").find()): | |
wiki_search = BeautifulSoup(back_of_card, "html.parser").contents[0] | |
else: | |
wiki_search = back_of_card.replace('/', '') | |
wikipedia.set_rate_limiting(True, min_wait=tdelta) | |
answer_wiki = wikipedia.search(wiki_search, results=1) | |
try: | |
wiki_page = wikipedia.page(title=answer_wiki, auto_suggest=False, redirect=True) | |
anchor_tag.string = back_of_card | |
anchor_tag["href"] = wiki_page.url | |
summary_of_card = wiki_page.summary | |
except wikipedia.exceptions.DisambiguationError as e: | |
anchor_tag.string = back_of_card | |
google_search_string = urllib.parse.quote_plus(back_of_card) | |
anchor_tag["href"] = f"https://www.google.com/search?q={google_search_string}" | |
except wikipedia.exceptions.PageError as e: None | |
print(f"## {front_of_card}") | |
print(f"{str(anchor_tag)}") | |
print(f"{summary_of_card}") | |
apkg.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ankisync2 == 0.3.2 | |
wikipedia == 1.4.0 | |
beautifulsoup4 == 4.9.3 |
Run this with:
# Create the directories we'll need for processing from MD to APKG.
mkdir -p input output
# Create the input/deck.md file.
pip install -r requirements.txt
python ./create_markdown_from_cards.py 2>/dev/null > input/deck.md
# Edit the results from the script.
$EDITOR input/deck.md
# Install tooling for Markdown to Anki Decks processing.
pip install markdown-anki-decks
# Create the new .apkg file.
mdankideck input output
This is the main repository that leverages this script. https://github.com/trussworks/casp_plus_anki_decks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is helpful for pulling Wikipedia page links and summaries by searching the contents from the "back" of a given card. Hope this helps someone else too.