|
<?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"); |
|
} |
|
|