Update project configuration files, and API routes accordingly. Add SQLite runtime file ignores to .gitignore for better file management.
Some checks failed
CI / Bot (Python) (push) Failing after 49s
CI / Dashboard (Next.js) (push) Failing after 11s

This commit is contained in:
TheOnlyMace
2026-07-21 17:11:38 +02:00
parent 5f34db4f3b
commit b4110c3d66
297 changed files with 2657 additions and 2768 deletions

56
bot/utils/db_paths.py Normal file
View File

@@ -0,0 +1,56 @@
"""Storage path helpers — multi-instance via BOT_INSTANCE_ID env var.
Without BOT_INSTANCE_ID (default):
db_path("prefix.db") -> bot/db/prefix.db
jsondb_path("x.json") -> bot/jsondb/x.json
With BOT_INSTANCE_ID=prod-a:
db_path("prefix.db") -> bot/db/prod-a/prefix.db
jsondb_path("x.json") -> bot/db/prod-a/jsondb/x.json
"""
from __future__ import annotations
import os
from pathlib import Path
_BOT_ROOT = Path(__file__).resolve().parent.parent
_INSTANCE_ID = os.getenv("BOT_INSTANCE_ID", "").strip()
def _instance_db_dir() -> Path:
base = _BOT_ROOT / "db"
if _INSTANCE_ID:
base = base / _INSTANCE_ID
base.mkdir(parents=True, exist_ok=True)
return base
def db_path(filename: str) -> str:
"""SQLite and other files under bot/db/ (or bot/db/<instance>/)."""
return str(_instance_db_dir() / filename)
def jsondb_path(filename: str) -> str:
"""JSON config files — bot/jsondb/ or bot/db/<instance>/jsondb/."""
if _INSTANCE_ID:
base = _instance_db_dir() / "jsondb"
else:
base = _BOT_ROOT / "jsondb"
base.mkdir(parents=True, exist_ok=True)
return str(base / filename)
def bot_root_json_path(filename: str) -> str:
"""Legacy JSON at bot/<filename> (e.g. ignore.json) — isolated per instance when set."""
if _INSTANCE_ID:
return jsondb_path(filename)
return str(_BOT_ROOT / filename)
def resolve_db_path(path: str) -> str:
"""Normalize legacy 'db/file.db' strings (safety net for API layer)."""
if path.startswith("db/"):
return db_path(path[3:])
if path.startswith("jsondb/"):
return jsondb_path(path[7:])
return path