summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@valuemotive.com>2021-02-03 18:39:16 +0200
committerJan Tuomi <jan.tuomi@valuemotive.com>2021-02-03 18:39:16 +0200
commit0bc0462b37b45ce5534208e068b701e3471813f2 (patch)
treebed4ef58521b96bca3bde0d9706a8842c096414a
parent0cabed1a00e2ee16fafbfc1eb68945916209fc0e (diff)
Add example sentence if exists
-rw-r--r--kanji_info_fetcher/__init__.py4
-rw-r--r--kanji_info_fetcher/jisho_client.py19
2 files changed, 18 insertions, 5 deletions
diff --git a/kanji_info_fetcher/__init__.py b/kanji_info_fetcher/__init__.py
index c4b95bb..ef637fc 100644
--- a/kanji_info_fetcher/__init__.py
+++ b/kanji_info_fetcher/__init__.py
@@ -25,8 +25,8 @@ def main():
entries = io.read_from_file(file_path, row_format)
# fetch translations from Jisho
- print(f"[STATUS] Fetching English translations from Jisho")
- entries = jisho_client.inject_english_translation(entries)
+ print(f"[STATUS] Fetching English translations and example sentences from Jisho")
+ entries = jisho_client.inject_english_translation_and_note(entries)
# fetch kanji meanings from Jisho
print(f"[STATUS] Fetching kanji meaning data from Jisho")
diff --git a/kanji_info_fetcher/jisho_client.py b/kanji_info_fetcher/jisho_client.py
index e74412e..5dca87b 100644
--- a/kanji_info_fetcher/jisho_client.py
+++ b/kanji_info_fetcher/jisho_client.py
@@ -51,7 +51,7 @@ def inject_kanji_meanings(entries: list) -> list:
return entries_with_meanings
-def inject_english_translation(entries: list) -> list:
+def inject_english_translation_and_note(entries: list) -> list:
entries_with_translations = []
for index, entry in enumerate(entries):
@@ -81,12 +81,25 @@ def inject_english_translation(entries: list) -> list:
meaning_translations = meaning_wrapper.select(".meaning-wrapper .meaning-meaning")
meaning_translations_texts = map(lambda e: e.text.strip(), meaning_translations)
+ meaning_sentences = meaning_wrapper.select(".sentence")
+ meaning_sentence = meaning_sentences[0] if len(meaning_sentences) > 0 else None
+
+ if meaning_sentence is not None:
+ sentence_japanese_parts = meaning_sentence.select(".japanese .unlinked")
+ sentence_japanese_parts_texts = map(lambda e: e.text.strip(), sentence_japanese_parts)
+ sentence_japanese_text = "".join(sentence_japanese_parts_texts)
+ sentence_english_text = meaning_sentence.select(".english")[0].text.strip()
+ note_sentence = f"{sentence_japanese_text}<br>{sentence_english_text}"
+ else:
+ note_sentence = ""
+
meanings_zipped = zip(meaning_tag_abbrevs, meaning_translations_texts)
- first_translation_pair = list(meanings_zipped)[0]
- result = f"{first_translation_pair[0]} {first_translation_pair[1]}"
+ first_translation_tuple = list(meanings_zipped)[0]
+ result = f"{first_translation_tuple[0]} {first_translation_tuple[1]}"
entry.english = result
+ entry.note = note_sentence
entries_with_translations.append(entry)
return entries_with_translations