l10, l11, l12

This commit is contained in:
2025-04-04 11:47:09 -07:00
parent d8f0bf76e3
commit 0659f3d4d9
5 changed files with 297 additions and 19 deletions

93
L10.json Normal file
View File

@@ -0,0 +1,93 @@
[
{
"group_name": "Nouns",
"words": [
{"hiragana": "きせつ", "jp": "季節", "en": "season"},
{"hiragana": "はる", "jp": "春", "en": "spring"},
{"hiragana": "あき", "jp": "秋", "en": "fall"},
{"hiragana": "ぎゅうにゅう", "jp": "牛乳", "en": "milk"},
{"hiragana": "ケーキ", "jp": "", "en": "cake"},
{"hiragana": "すし", "jp": "", "en": "sushi"},
{"hiragana": "てんぷら", "jp": "天ぷら", "en": "tempura"},
{"hiragana": "りんご", "jp": "", "en": "apple"},
{"hiragana": "りょうり", "jp": "料理", "en": "cuisine"},
{"hiragana": "サッカー", "jp": "", "en": "soccer"},
{"hiragana": "やきゅう", "jp": "野球", "en": "baseball"},
{"hiragana": "いしゃ", "jp": "医者", "en": "doctor"},
{"hiragana": "おかねもち", "jp": "お金持ち", "en": "rich person"},
{"hiragana": "ゆうめいじん", "jp": "有名人", "en": "celebrity"},
{"hiragana": "かお", "jp": "顔", "en": "face"},
{"hiragana": "としうえ", "jp": "年上", "en": "someone older"},
{"hiragana": "えき", "jp": "駅", "en": "station"},
{"hiragana": "しんかんせん", "jp": "新幹線", "en": "Shinkansen; “Bullet Train”"},
{"hiragana": "ちかてつ", "jp": "地下鉄", "en": "subway"},
{"hiragana": "ふね", "jp": "船", "en": "ship; boat"},
{"hiragana": "ひこうき", "jp": "飛行機", "en": "airplane"},
{"hiragana": "よやく", "jp": "予約", "en": "reservation"},
{"hiragana": "ツアー", "jp": "", "en": "tour"},
{"hiragana": "どうぶつえん", "jp": "動物園", "en": "zoo"},
{"hiragana": "じかん", "jp": "時間", "en": "time"},
{"hiragana": "せかい", "jp": "世界", "en": "world"},
{"hiragana": "びよういん", "jp": "美容院", "en": "beauty parlor"},
{"hiragana": "てぶくろ", "jp": "手袋", "en": "gloves"},
{"hiragana": "せいかつ", "jp": "生活", "en": "life; living"},
{"hiragana": "ことし", "jp": "今年", "en": "this year"}
]
},
{
"group_name": "い-Adjectives",
"words": [
{"hiragana": "あたたかい", "jp": "暖かい", "en": "warm"},
{"hiragana": "すずしい", "jp": "涼しい", "en": "cool (weather—not used for things)"},
{"hiragana": "つめたい", "jp": "冷たい", "en": "cold (things/people)"},
{"hiragana": "おそい", "jp": "遅い", "en": "slow; late"},
{"hiragana": "ねむい", "jp": "眠い", "en": "sleepy"}
]
},
{
"group_name": "な-Adjective",
"words": [
{"hiragana": "かんたん(な)", "jp": "簡単", "en": "easy; simple"}
]
},
{
"group_name": "U-Verbs",
"words": [
{"hiragana": "かかる", "jp": "", "en": "to take (amount of time/money)"},
{"hiragana": "とまる", "jp": "泊まる", "en": "to stay (at a hotel, etc.)"},
{"hiragana": "なる", "jp": "", "en": "to become"}
]
},
{
"group_name": "Ru-Verbs",
"words": [
{"hiragana": "きめる", "jp": "決める", "en": "to decide"}
]
},
{
"group_name": "Irregular-Verbs",
"words": [
{"hiragana": "ごろごろする", "jp": "", "en": "to chill out at home; to stay home and do nothing"},
{"hiragana": "りょこうする", "jp": "旅行する", "en": "to travel"},
{"hiragana": "れんしゅうする", "jp": "練習する", "en": "to practice"}
]
},
{
"group_name": "Adverbs_and_Other_Expressions",
"words": [
{"hiragana": "いちばん", "jp": "一番", "en": "best"},
{"hiragana": "どっち/どちら", "jp": "", "en": "which"},
{"hiragana": "はやく", "jp": "早く/速く", "en": "(do something) early; fast"},
{"hiragana": "あるいて", "jp": "歩いて", "en": "on foot"},
{"hiragana": "〜で", "jp": "", "en": "by (means of transportation); with (a tool)"},
{"hiragana": "どうやって", "jp": "", "en": "how; by what means"},
{"hiragana": "どのぐらい", "jp": "", "en": "how much; how long"},
{"hiragana": "〜しゅうかん", "jp": "〜週間", "en": "for . . . weeks"},
{"hiragana": "〜かげつ", "jp": "〜か月", "en": "for . . . months"},
{"hiragana": "〜ねん", "jp": "〜年", "en": ". . . years"},
{"hiragana": "このごろ", "jp": "", "en": "these days"},
{"hiragana": "〜ご", "jp": "〜後", "en": "in . . . time; after . . ."},
{"hiragana": "〜か〜", "jp": "", "en": "or"}
]
}
]

94
L11.json Normal file
View File

@@ -0,0 +1,94 @@
[
{
"group_name": "Nouns",
"words": [
{ "hiragana": "がいこく", "jp": "外国", "en": "foreign country" },
{ "hiragana": "オーストラリア", "jp": "", "en": "Australia" },
{ "hiragana": "かわ", "jp": "川", "en": "river" },
{ "hiragana": "おんせん", "jp": "温泉", "en": "spa; hot spring" },
{ "hiragana": "つり", "jp": "", "en": "fishing" },
{ "hiragana": "みずうみ", "jp": "湖", "en": "lake" },
{ "hiragana": "やま", "jp": "山", "en": "mountain" },
{ "hiragana": "キャンプ", "jp": "", "en": "camp" },
{ "hiragana": "ドライブ", "jp": "", "en": "drive" },
{ "hiragana": "じんじゃ", "jp": "神社", "en": "shrine" },
{ "hiragana": "びじゅつかん", "jp": "美術館", "en": "art museum" },
{ "hiragana": "しゃちょう", "jp": "社長", "en": "president of a company" },
{ "hiragana": "かしゅ", "jp": "歌手", "en": "singer" },
{ "hiragana": "ルームメイト", "jp": "", "en": "roommate" },
{ "hiragana": "ホストファミリー", "jp": "", "en": "host family" },
{ "hiragana": "しょうらい", "jp": "将来", "en": "future" },
{ "hiragana": "ゆめ", "jp": "夢", "en": "dream" },
{ "hiragana": "おまつり", "jp": "お祭り", "en": "festival" },
{ "hiragana": "おしょうがつ", "jp": "お正月", "en": "New Year's" },
{ "hiragana": "おかし", "jp": "お菓子", "en": "snack; sweets" },
{ "hiragana": "ビール", "jp": "", "en": "beer" },
{ "hiragana": "おもちゃ", "jp": "", "en": "toy" },
{ "hiragana": "こんがっき", "jp": "今学期", "en": "this semester" },
{ "hiragana": "らいがっき", "jp": "来学期", "en": "next semester" },
{ "hiragana": "じゅぎょう", "jp": "授業", "en": "class" },
{ "hiragana": "こちら", "jp": "", "en": "this person (polite)" }
]
},
{
"group_name": "U-Verbs",
"words": [
{ "hiragana": "うそをつく", "jp": "", "en": "to tell a lie" },
{ "hiragana": "おなかがすく", "jp": "", "en": "to become hungry" },
{ "hiragana": "かう", "jp": "飼う", "en": "to own (a pet)(~を)" },
{ "hiragana": "サボる", "jp": "", "en": "to cut (classes)(~を)" },
{ "hiragana": "とる", "jp": "取る", "en": "to take (a class); to get (a grade)(~を)" },
{ "hiragana": "ならう", "jp": "習う", "en": "to learn" },
{ "hiragana": "のぼる", "jp": "登る", "en": "to climbplace に)" },
{ "hiragana": "はしる", "jp": "走る", "en": "to run" }
]
},
{
"group_name": "Ru-Verbs",
"words": [
{ "hiragana": "つかれる", "jp": "疲れる", "en": "to get tired" },
{ "hiragana": "やめる", "jp": "", "en": "to quit" }
]
},
{
"group_name": "Irregular-Verbs",
"words": [
{ "hiragana": "けんかする", "jp": "", "en": "to have a fight; to quarrel" },
{ "hiragana": "しょうかいする", "jp": "紹介する", "en": "to introduceperson に person を)" },
{ "hiragana": "ダイエットする", "jp": "", "en": "to go on a diet" },
{ "hiragana": "ちこくする", "jp": "遅刻する", "en": "to be late (for an appointment)(~に)" },
{ "hiragana": "りゅうがくする", "jp": "留学する", "en": "to study abroadplace に)" }
]
},
{
"group_name": "Adverbs_and_Other_Expressions",
"words": [
{ "hiragana": "しゅっしん", "jp": "出身", "en": "coming fromplace の)" },
{ "hiragana": "ひさしぶり", "jp": "久しぶり", "en": "it has been a long time" },
{ "hiragana": "まあまあ", "jp": "", "en": "okay; so-so" },
{ "hiragana": "もっと", "jp": "", "en": "more" },
{ "hiragana": "あと", "jp": "後", "en": "after (an event)event の)" },
{ "hiragana": "そして", "jp": "", "en": "and then" },
{ "hiragana": "~だけ", "jp": "", "en": "just . . . ; only . . ." },
{ "hiragana": "~てん", "jp": "~点", "en": ". . . points" }
]
},
{
"group_name": "Occupations",
"words": [
{ "hiragana": "さっか", "jp": "作家", "en": "writer" },
{ "hiragana": "ジャーナリスト", "jp": "", "en": "journalist" },
{ "hiragana": "けいさつかん", "jp": "警察官", "en": "police officer" },
{ "hiragana": "しょうぼうし", "jp": "消防士", "en": "firefighter" },
{ "hiragana": "きょうし", "jp": "教師", "en": "schoolteacher" },
{ "hiragana": "けんきゅうしゃ", "jp": "研究者", "en": "researcher" },
{ "hiragana": "うちゅうひこうし", "jp": "宇宙飛行士", "en": "astronaut" },
{ "hiragana": "スポーツせんしゅ", "jp": "スポーツ選手", "en": "athlete" },
{ "hiragana": "だいとうりょう", "jp": "大統領", "en": "president of a country" },
{ "hiragana": "はいゆう", "jp": "俳優", "en": "actor; actress" },
{ "hiragana": "かんごし", "jp": "看護師", "en": "nurse" },
{ "hiragana": "シェフ", "jp": "", "en": "chef" },
{ "hiragana": "まんがか", "jp": "漫画家", "en": "cartoonist" }
]
}
]

90
L12.json Normal file
View File

@@ -0,0 +1,90 @@
[
{
"group_name": "Nouns",
"words": [
{ "hiragana": "おなか", "jp": "", "en": "stomach" },
{ "hiragana": "あし", "jp": "足", "en": "leg; foot" },
{ "hiragana": "のど", "jp": "", "en": "throat" },
{ "hiragana": "は", "jp": "歯", "en": "tooth" },
{ "hiragana": "インフルエンザ", "jp": "", "en": "influenza" },
{ "hiragana": "かぜ", "jp": "風邪", "en": "cold" },
{ "hiragana": "せき", "jp": "", "en": "cough" },
{ "hiragana": "ふつかよい", "jp": "二日酔い", "en": "hangover" },
{ "hiragana": "ホームシック", "jp": "", "en": "homesickness" },
{ "hiragana": "アレルギー", "jp": "", "en": "allergy" },
{ "hiragana": "ジュース", "jp": "", "en": "juice" },
{ "hiragana": "たまご", "jp": "卵", "en": "egg" },
{ "hiragana": "ふく", "jp": "服", "en": "clothes" },
{ "hiragana": "もの", "jp": "物", "en": "thing (concrete object)" },
{ "hiragana": "プレゼント", "jp": "", "en": "present" },
{ "hiragana": "きっぷ", "jp": "切符", "en": "train ticket" },
{ "hiragana": "〜だい", "jp": "〜代", "en": "charge; fee" },
{ "hiragana": "ようじ", "jp": "用事", "en": "business to take care of" },
{ "hiragana": "おてあらい", "jp": "お手洗い", "en": "restroom" },
{ "hiragana": "しあい", "jp": "試合", "en": "match; game" },
{ "hiragana": "せいじ", "jp": "政治", "en": "politics" },
{ "hiragana": "せいせき", "jp": "成績", "en": "grade (on a test, etc.)" },
{ "hiragana": "かのじょ", "jp": "彼女", "en": "she; girlfriend" },
{ "hiragana": "かれ", "jp": "彼", "en": "he; boyfriend" },
{ "hiragana": "かれし", "jp": "彼氏", "en": "boyfriend" },
{ "hiragana": "いみ", "jp": "意味", "en": "meaning" }
]
},
{
"group_name": "い-Adjectives",
"words": [
{ "hiragana": "せまい", "jp": "狭い", "en": "narrow; not spacious" },
{ "hiragana": "ひろい", "jp": "広い", "en": "wide; spacious" },
{ "hiragana": "わるい", "jp": "悪い", "en": "bad" },
{ "hiragana": "いたい", "jp": "痛い", "en": "hurt; painful" },
{ "hiragana": "あまい", "jp": "甘い", "en": "sweet" },
{ "hiragana": "おおい", "jp": "多い", "en": "there are many..." }
]
},
{
"group_name": "な-Adjective",
"words": [
{ "hiragana": "すてき(な)", "jp": "素敵", "en": "nice" }
]
},
{
"group_name": "U-Verbs",
"words": [
{ "hiragana": "あるく", "jp": "歩く", "en": "to walk" },
{ "hiragana": "かぜをひく", "jp": "風邪をひく", "en": "to catch a cold" },
{ "hiragana": "ねつがある", "jp": "熱がある", "en": "to have a fever" },
{ "hiragana": "のどがかわく", "jp": "のどが渇く", "en": "to become thirsty" },
{ "hiragana": "はらう", "jp": "払う", "en": "to pay" },
{ "hiragana": "なくす", "jp": "", "en": "to lose" },
{ "hiragana": "きょうみがある", "jp": "興味がある", "en": "to be interested (in . . .)topic に)" }
]
},
{
"group_name": "Ru-Verbs",
"words": [
{ "hiragana": "せきがでる", "jp": "せきが出る", "en": "to cough" },
{ "hiragana": "わかれる", "jp": "別れる", "en": "to break up; to separateperson と)" }
]
},
{
"group_name": "Irregular-Verbs",
"words": [
{ "hiragana": "きんちょうする", "jp": "緊張する", "en": "to get nervous" },
{ "hiragana": "しんぱいする", "jp": "心配する", "en": "to worry" }
]
},
{
"group_name": "Adverbs_and_Other_Expressions",
"words": [
{ "hiragana": "おだいじに", "jp": "お大事に", "en": "Get well soon." },
{ "hiragana": "げんきがない", "jp": "元気がない", "en": "dont look well" },
{ "hiragana": "できるだけ", "jp": "", "en": "as much as possible" },
{ "hiragana": "たぶん", "jp": "多分", "en": "probably; maybe" },
{ "hiragana": "もうすぐ", "jp": "", "en": "very soon; in a few moments/days" },
{ "hiragana": "はじめて", "jp": "初めて", "en": "for the first time" },
{ "hiragana": "にさんにち", "jp": "二三日", "en": "for two to three days" },
{ "hiragana": "それに", "jp": "", "en": "moreover, . . ." },
{ "hiragana": "おなじ", "jp": "同じ", "en": "same" }
]
}
]

5
groups.ts Normal file
View File

@@ -0,0 +1,5 @@
import data from "./L10.json";
for (const group of data) {
console.log(group.group_name);
}

View File

@@ -1,4 +1,4 @@
import fs from 'fs';
import vocabList from './L11.json';
import axios from 'axios';
interface VocabEntry {
@@ -7,17 +7,13 @@ interface VocabEntry {
en: string;
}
interface Group {
group_name: string;
words: VocabEntry[];
}
const DECK_NAME = 'Japanese::Lesson 10';
const MODEL_NAME = 'Basic'; // Update this to match your Anki note type
const FIELDS = ['Hiragana', 'Kanji', 'English']; // Update to match your note type fields
const DECK_NAME = 'JAPN 110';
const MODEL_NAME = 'Basic'; // Make sure this matches your Anki note type
const FIELDS = ['Front', 'Back'] as const;
async function addNote(entry: VocabEntry, tags: string[]) {
try {
const front = entry.jp.trim() || entry.hiragana.trim();
const result = await axios.post('http://localhost:8765', {
action: 'addNote',
version: 6,
@@ -26,9 +22,8 @@ async function addNote(entry: VocabEntry, tags: string[]) {
deckName: DECK_NAME,
modelName: MODEL_NAME,
fields: {
[FIELDS[0]]: entry.hiragana,
[FIELDS[1]]: entry.jp,
[FIELDS[2]]: entry.en,
[FIELDS[0]]: front,
[FIELDS[1]]: `${entry.hiragana}\n${entry.en}`,
},
options: {
allowDuplicate: false,
@@ -37,20 +32,21 @@ async function addNote(entry: VocabEntry, tags: string[]) {
}
}
});
console.log(`Added: ${entry.hiragana} - ${entry.en}`, result.data);
if (result?.data?.result === null){
console.error(`Failed to add: ${front} - ${entry.en}`, result.data.error);
} else {
console.log(`Added: ${front} - ${entry.en}`);
}
} catch (error) {
console.error(`Failed to add: ${entry.hiragana} - ${entry.en}`, error);
console.error(`Failed to add: ${entry.jp} - ${entry.en}`, error);
}
}
async function main() {
const raw = fs.readFileSync('./lesson10.json', 'utf-8');
const vocabList: Group[] = JSON.parse(raw);
for (const group of vocabList) {
const tag = group.group_name.replace(/\s+/g, '_').toLowerCase(); // e.g. "na-adjective" -> "na_adjective"
const tag = "Vocabulary::" + group.group_name;
for (const word of group.words) {
await addNote(word, [tag]);
await addNote(word, [tag, "Vocabulary::L11"]);
}
}
}