File size: 1,154 Bytes
dd2233b
1112df1
 
 
dd2233b
 
f2efbc0
 
dd2233b
 
 
 
 
 
 
 
 
 
 
 
 
 
1112df1
f2efbc0
dd2233b
 
 
 
 
 
 
 
f2efbc0
dd2233b
 
 
 
 
 
 
 
 
 
 
 
 
f2efbc0
dd2233b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import sqlite3
import os

DATA_DIR = "./data"
DB_PATH = os.path.join(DATA_DIR, "sentences.db")


# 建立資料表(若不存在)
def init_db():
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute('''
    CREATE TABLE IF NOT EXISTS sentences (
        word TEXT PRIMARY KEY,
        phonetic TEXT,
        sentence TEXT,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    )
    ''')
    conn.commit()
    conn.close()


# 查句庫,傳回 (word, phonetic, sentence) 或 None
def get_sentence(word):
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute('SELECT word, phonetic, sentence FROM sentences WHERE word=?', (word,))
    result = c.fetchone()
    conn.close()
    return result


# 保存句子到 SQLite
def save_sentence(word, phonetic, sentence):
    conn = sqlite3.connect(DB_PATH)
    c = conn.cursor()
    c.execute('''
    INSERT INTO sentences (word, phonetic, sentence)
    VALUES (?, ?, ?)
    ON CONFLICT(word) DO UPDATE SET sentence=excluded.sentence, phonetic=excluded.phonetic
    ''', (word, phonetic, sentence))
    conn.commit()
    conn.close()


# 初始化資料表
init_db()