Download settings.php from xiaozhian/MoeNote: direct link, hf CLI and curl.
- Browser
- Download file 4.46 kB
-
https://huggingface.co/spaces/xiaozhian/MoeNote/resolve/main/settings.php
- Command line
-
hf download hf://spaces/xiaozhian/MoeNote/settings.php
-
curl -L -o settings.php https://huggingface.co/spaces/xiaozhian/MoeNote/resolve/main/settings.php
4.46 kB
| // settings.php | |
| class Settings { | |
| private $db = null; | |
| private $defaultSettings = [ | |
| 'site_name' => 'MoeNote', | |
| 'site_description' => 'A simple online note that focuses on safe sharing.', | |
| 'data_directory' => '/var/www/html/data/', | |
| 'db_path' => '/var/www/html/data/notes.db', | |
| 'favicon_path' => '/favicon.png', | |
| 'max_expire_time' => 31536000, // 1yr | |
| ]; | |
| public function __construct() { | |
| $this->initializeDatabase(); | |
| } | |
| private function initializeDatabase() { | |
| // 确保数据目录存在 | |
| $dataDir = dirname($this->defaultSettings['db_path']); | |
| if (!file_exists($dataDir)) { | |
| if (!mkdir($dataDir, 0777, true)) { | |
| throw new Exception('无法创建数据目录,请检查权限'); | |
| } | |
| // 创建 .htaccess 文件来保护数据目录 | |
| $htaccess = $dataDir . '/.htaccess'; | |
| if (!file_exists($htaccess)) { | |
| $htaccess_content = "Require all denied\n"; | |
| $htaccess_content .= "Options -Indexes\n"; | |
| file_put_contents($htaccess, $htaccess_content); | |
| } | |
| // 创建 index.html | |
| $index_html = $dataDir . '/index.html'; | |
| if (!file_exists($index_html)) { | |
| file_put_contents($index_html, '<!DOCTYPE html><html><head><title>403 Forbidden</title></head><body><h1>403 Forbidden</h1></body></html>'); | |
| } | |
| } | |
| // 连接或创建数据库 | |
| $this->db = new SQLite3($this->defaultSettings['db_path']); | |
| // 创建必要的表 | |
| $this->db->exec(' | |
| CREATE TABLE IF NOT EXISTS settings ( | |
| key TEXT PRIMARY KEY, | |
| value TEXT | |
| ) | |
| '); | |
| $this->db->exec(' | |
| CREATE TABLE IF NOT EXISTS notes ( | |
| uuid TEXT PRIMARY KEY, | |
| content TEXT, | |
| created_at INTEGER, | |
| expires_at INTEGER, | |
| max_views INTEGER DEFAULT 0, | |
| current_views INTEGER DEFAULT 0, | |
| is_markdown INTEGER DEFAULT 0, | |
| is_encrypted INTEGER DEFAULT 0 | |
| ) | |
| '); | |
| // 在 initializeDatabase 方法中添加新表 | |
| $this->db->exec(' | |
| CREATE TABLE IF NOT EXISTS files ( | |
| code TEXT PRIMARY KEY, -- 提取码 | |
| filename TEXT, -- 原始文件名 | |
| filepath TEXT, -- 存储路径 | |
| content TEXT, -- 文本内容(如果是文本类型) | |
| type TEXT, -- 类型:file 或 text | |
| created_at INTEGER, -- 创建时间 | |
| expires_at INTEGER, -- 过期时间 | |
| max_downloads INTEGER DEFAULT 0, -- 最大下载/查看次数 | |
| current_downloads INTEGER DEFAULT 0 -- 当前下载/查看次数 | |
| ) | |
| '); | |
| // 初始化默认设置 | |
| foreach ($this->defaultSettings as $key => $value) { | |
| $stmt = $this->db->prepare('INSERT OR IGNORE INTO settings (key, value) VALUES (:key, :value)'); | |
| $stmt->bindValue(':key', $key, SQLITE3_TEXT); | |
| $stmt->bindValue(':value', $value, SQLITE3_TEXT); | |
| $stmt->execute(); | |
| } | |
| } | |
| public function getSetting($key, $default = null) { | |
| try { | |
| $stmt = $this->db->prepare('SELECT value FROM settings WHERE key = :key'); | |
| $stmt->bindValue(':key', $key, SQLITE3_TEXT); | |
| $result = $stmt->execute(); | |
| if ($row = $result->fetchArray(SQLITE3_ASSOC)) { | |
| return $row['value']; | |
| } | |
| } catch (Exception $e) { | |
| // 如果发生错误,返回默认值 | |
| } | |
| return isset($this->defaultSettings[$key]) ? $this->defaultSettings[$key] : $default; | |
| } | |
| public function setSetting($key, $value) { | |
| $stmt = $this->db->prepare('INSERT OR REPLACE INTO settings (key, value) VALUES (:key, :value)'); | |
| $stmt->bindValue(':key', $key, SQLITE3_TEXT); | |
| $stmt->bindValue(':value', $value, SQLITE3_TEXT); | |
| return $stmt->execute(); | |
| } | |
| public function getDefaultSettings() { | |
| return $this->defaultSettings; | |
| } | |
| } | |