from fugashi_parser import * import os from pathlib import Path import shutil import hashlib def main(): parser = argparse.ArgumentParser() #parser.add_argument("--vocab-file", required=True) parser.add_argument("--markdown-file", required=True) parser.add_argument("--vocab-folder", required=False) args = parser.parse_args() if args.vocab_folder: destination_path = Path(args.vocab_folder) if destination_path.is_dir() == False: raise ValueError("Vocab Folder is not a directory.") return else: destination_path = Path(args.markdown_file).parent if not destination_path.joinpath('vocab').exists(): destination_path.joinpath('vocab').mkdir(parents=True, exist_ok=True) destination_path = destination_path.joinpath('vocab') # if args.text: # text = " ".join(args.text) # else: # text = sys.stdin.read() #print(args) vocab = {} #load_vocab('foo.json') ## Currently just doing this line by line with open(args.markdown_file, "r", encoding="utf-8") as f: lines = f.readlines() i = 0 file_changed = False while i < len(lines): ## Skip lines that start with certain elements if lines[i][0:6] == '' or lines[i][0] in ('#','>'): i+=1 continue ## If the line has japanese if has_japanese(lines[i]): print(lines[i]) result = analyze(lines[i],vocab) ## If the line changed at all if lines[i] != result['ruby_html']: lines[i] = '' + result['ruby_html'] + '' + "\n> [!summary]- Vocab\n>" + result['notes_link'] + "\n\n" # lost the new line file_changed = True i+=1 if file_changed == False: return ## vocab now ## Lookup vocab for word in vocab: write_word_note(word, destination_path) # if Path(destination_path.joinpath('/' + word + '.md')).exists() == False: # definitions = anki_fields_term(word) # if definitions.get("fields"): # with open(destination_path.as_posix() + '/' + word + '.md', 'w') as vocab_note: # for entry in definitions.get("fields"): # #vocab_note.write("\n") # #print(entry['expression'], file=vocab_note) # #print(entry['furigana-plain'], file=vocab_note) # print(entry['furigana'], file=vocab_note) # if entry['expression'] != entry['reading']: # print(entry['reading'], file=vocab_note) # print("> ",re.sub(r'<.*?>', '', entry['glossary-plain-no-dictionary']), "\n", file=vocab_note) # #print(f"Part of Speech: {entry['part-of-speech']}", file=vocab_note) # print(f"Frequency: {entry['frequency-average-rank']}", file=vocab_note) # #print(entry['glossary-plain-no-dictionary'], file=vocab_note) # vocab_note.write(entry['glossary-first']) # #print("##### Other Definitions", file=vocab_note) # print("\n", file=vocab_note) ## Output file with changes if changes with open(args.markdown_file, "w", encoding="utf-8") as f: f.writelines(lines) if __name__ == "__main__": main()