| <?php |
| |
|
|
| |
| $CONFIG = [ |
| 'data_dir' => './data-ekdvbq/', |
| 'db_path' => './data-ekdvbq/notes.db', |
| ]; |
|
|
| |
| if (!file_exists($CONFIG['data_dir'])) { |
| if (!mkdir($CONFIG['data_dir'], 0755, true)) { |
| die("无法创建数据目录:" . $CONFIG['data_dir'] . "\n"); |
| } |
| echo "已创建数据目录:" . $CONFIG['data_dir'] . "\n"; |
| } else { |
| echo "数据目录已存在:" . $CONFIG['data_dir'] . "\n"; |
| } |
|
|
| |
| if (!is_writable($CONFIG['data_dir'])) { |
| die("数据目录不可写:" . $CONFIG['data_dir'] . "\n"); |
| } |
|
|
| |
| if (file_exists($CONFIG['db_path'])) { |
| echo "数据库文件已存在。是否重新初始化?(y/N): "; |
| $handle = fopen("php://stdin", "r"); |
| $line = trim(fgets($handle)); |
| fclose($handle); |
| if (strtolower($line) !== 'y') { |
| die("操作取消\n"); |
| } |
| unlink($CONFIG['db_path']); |
| } |
|
|
| try { |
| $db = new SQLite3($CONFIG['db_path']); |
| |
| |
| $db->exec('CREATE TABLE IF NOT EXISTS notes ( |
| id INTEGER PRIMARY KEY AUTOINCREMENT, |
| uuid TEXT UNIQUE NOT NULL, |
| content TEXT NOT NULL, |
| created_at INTEGER NOT NULL, |
| expires_at INTEGER NOT NULL, |
| max_views INTEGER NOT NULL DEFAULT 0, |
| current_views INTEGER NOT NULL DEFAULT 0, |
| is_encrypted INTEGER NOT NULL DEFAULT 0, |
| is_markdown INTEGER NOT NULL DEFAULT 0 |
| )'); |
| |
| |
| $db->exec('CREATE TABLE IF NOT EXISTS settings ( |
| key TEXT PRIMARY KEY, |
| value TEXT NOT NULL |
| )'); |
| |
| |
| $db->exec('CREATE INDEX IF NOT EXISTS idx_uuid ON notes (uuid)'); |
| $db->exec('CREATE INDEX IF NOT EXISTS idx_expires_at ON notes (expires_at)'); |
| |
| |
| chmod($CONFIG['db_path'], 0644); |
| |
| echo "数据库初始化完成\n"; |
| |
| } catch (Exception $e) { |
| die("数据库初始化失败:" . $e->getMessage() . "\n"); |
| } |
|
|