From 8a4500f72349c48e13e64f2852131a01ac805c5b Mon Sep 17 00:00:00 2001 From: Zichao Lin Date: Tue, 7 Jul 2026 11:35:00 +0800 Subject: [PATCH] chore: remove scripts and export_i18n.py from git, add to .gitignore --- .gitignore | 1 + app/locales/en.json | 5 +++++ app/locales/zh.json | 5 +++++ app/routers/web.py | 12 ++++++------ app/templates/base.html | 5 +++-- scripts/migrate_apikey_permissions.py | 20 -------------------- scripts/migrate_system_config.py | 24 ------------------------ 7 files changed, 20 insertions(+), 52 deletions(-) delete mode 100644 scripts/migrate_apikey_permissions.py delete mode 100644 scripts/migrate_system_config.py diff --git a/.gitignore b/.gitignore index 3b2993c..ba1ffc2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ uploads/* *.db .env server.log +scripts/ diff --git a/app/locales/en.json b/app/locales/en.json index e93792a..8d9e088 100644 --- a/app/locales/en.json +++ b/app/locales/en.json @@ -17,6 +17,11 @@ "admin.copyright_label": "Copyright Text", "admin.copyright_hint": "Displayed at the bottom of all pages. Leave empty to hide.", "admin.save_config": "Save", + "admin.invite_length_error": "Invite code must be 8 characters", + "admin.invite_exists_error": "Invite code already exists", + "admin.invite_created": "Invite code {code} created", + "admin.invite_updated": "Invite code {code} updated", + "admin.config_saved": "Settings saved", "login.title": "Login", "login.username": "Username", "login.password": "Password", diff --git a/app/locales/zh.json b/app/locales/zh.json index e19c233..40e515e 100644 --- a/app/locales/zh.json +++ b/app/locales/zh.json @@ -17,6 +17,11 @@ "admin.copyright_label": "Copyright 文本", "admin.copyright_hint": "将显示在所有页面底部,留空则不显示。", "admin.save_config": "保存设置", + "admin.invite_length_error": "邀请码必须为8个字符", + "admin.invite_exists_error": "邀请码已存在", + "admin.invite_created": "邀请码 {code} 已创建", + "admin.invite_updated": "邀请码 {code} 已更新", + "admin.config_saved": "设置已保存", "login.title": "登录", "login.username": "用户名", "login.password": "密码", diff --git a/app/routers/web.py b/app/routers/web.py index 321b84c..2b3a355 100644 --- a/app/routers/web.py +++ b/app/routers/web.py @@ -102,7 +102,7 @@ def _get_copyright() -> str: return "" -templates.env.globals["copyright_text"] = _get_copyright() +templates.env.globals["get_copyright"] = _get_copyright def _redirect(url: str) -> RedirectResponse: @@ -270,7 +270,7 @@ def admin_save_config( cfg = SystemConfig(key="copyright_text", value=copyright_text.strip()) db.add(cfg) db.commit() - return _admin_render(request, user, db, "config", success="Saved") + return _admin_render(request, user, db, "config", success=_t("admin.config_saved", user.language)) @router.post("/admin/invites/add") @@ -291,9 +291,9 @@ def admin_add_invite( else: code = code.strip() if len(code) != 8: - return _admin_render(request, user, db, "invites", error="邀请码必须为8个字符") + return _admin_render(request, user, db, "invites", error=_t("admin.invite_length_error", user.language)) if db.query(InviteCode).filter(InviteCode.code == code).first(): - return _admin_render(request, user, db, "invites", error="邀请码已存在") + return _admin_render(request, user, db, "invites", error=_t("admin.invite_exists_error", user.language)) # Parse limits m_uses = None exp_at = None @@ -307,7 +307,7 @@ def admin_add_invite( ) db.add(new_code) db.commit() - return _admin_render(request, user, db, "invites", success=f"邀请码 {code} 已创建") + return _admin_render(request, user, db, "invites", success=_t("admin.invite_created", user.language).format(code=code)) @router.post("/admin/invites/{code_id}/edit") @@ -335,7 +335,7 @@ def admin_edit_invite( code_obj.max_uses = None code_obj.expires_at = None db.commit() - return _admin_render(request, user, db, "invites", success=f"邀请码 {code_obj.code} 已更新") + return _admin_render(request, user, db, "invites", success=_t("admin.invite_updated", user.language).format(code=code_obj.code)) @router.post("/admin/invites/{code_id}/delete") diff --git a/app/templates/base.html b/app/templates/base.html index b6fd998..4753d05 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -39,9 +39,10 @@
{% block content %}{% endblock %}
- {% if copyright_text %} + {% set _c = get_copyright() %} + {% if _c %} {% endif %} diff --git a/scripts/migrate_apikey_permissions.py b/scripts/migrate_apikey_permissions.py deleted file mode 100644 index 1ea8a02..0000000 --- a/scripts/migrate_apikey_permissions.py +++ /dev/null @@ -1,20 +0,0 @@ -"""Migrate: add permissions column to api_keys table.""" -import sqlite3 -from pathlib import Path - -DB_PATH = Path(__file__).parent.parent / "postcard.db" - -conn = sqlite3.connect(str(DB_PATH)) -cur = conn.cursor() - -cur.execute("PRAGMA table_info(api_keys)") -cols = [r[1] for r in cur.fetchall()] - -if "permissions" not in cols: - cur.execute('ALTER TABLE api_keys ADD COLUMN permissions TEXT NOT NULL DEFAULT "[]"') - conn.commit() - print("OK: column 'permissions' added to api_keys") -else: - print("SKIP: column 'permissions' already exists") - -conn.close() diff --git a/scripts/migrate_system_config.py b/scripts/migrate_system_config.py deleted file mode 100644 index fd5f026..0000000 --- a/scripts/migrate_system_config.py +++ /dev/null @@ -1,24 +0,0 @@ -"""Migrate: create system_config table.""" -import sqlite3 -from pathlib import Path - -DB_PATH = Path(__file__).parent.parent / "postcard.db" - -conn = sqlite3.connect(str(DB_PATH)) -cur = conn.cursor() - -cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='system_config'") -if not cur.fetchone(): - cur.execute( - "CREATE TABLE system_config (" - "key TEXT PRIMARY KEY, " - "value TEXT NOT NULL DEFAULT '', " - "updated_at TIMESTAMP" - ")" - ) - conn.commit() - print("OK: system_config table created") -else: - print("SKIP: system_config table exists") - -conn.close()