40 lines
955 B
Python
40 lines
955 B
Python
import sqlite3
|
|
import os
|
|
from contextlib import contextmanager
|
|
|
|
DB_PATH = os.environ.get("DB_PATH", "/data/memo.db")
|
|
|
|
SCHEMA = """
|
|
CREATE TABLE IF NOT EXISTS memos (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
title TEXT NOT NULL,
|
|
description TEXT DEFAULT '',
|
|
reminder_time TEXT NOT NULL DEFAULT '09:00',
|
|
created_at TEXT DEFAULT (datetime('now', 'localtime')),
|
|
done_at TEXT,
|
|
is_done INTEGER DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS settings (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT NOT NULL DEFAULT ''
|
|
);
|
|
|
|
INSERT OR IGNORE INTO settings (key, value) VALUES ('discord_webhook', '');
|
|
INSERT OR IGNORE INTO settings (key, value) VALUES ('timezone', 'Europe/Paris');
|
|
"""
|
|
|
|
@contextmanager
|
|
def get_db():
|
|
conn = sqlite3.connect(DB_PATH)
|
|
conn.row_factory = sqlite3.Row
|
|
try:
|
|
yield conn
|
|
conn.commit()
|
|
finally:
|
|
conn.close()
|
|
|
|
def init_db():
|
|
with get_db() as conn:
|
|
conn.executescript(SCHEMA)
|