initial commit (backend)

This commit is contained in:
2026-09-20 11:45:58 +00:00
commit 033adf023e
65 changed files with 28292 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
import os
from dotenv import load_dotenv
load_dotenv()
# Проверка критических переменных
for var in ["BOT_TOKEN", "DB_PASSWORD", "BOT_SECRET"]:
if var not in os.environ:
raise RuntimeError(f"Missing required environment variable: {var}")
BOT_TOKEN = os.environ["BOT_TOKEN"]
BOT_SECRET = os.environ["BOT_SECRET"]
# Together AI для AI-помощника
TOGETHER_API_KEY = os.getenv("TOGETHER_API_KEY", "")
DB_CONFIG = {
"user": os.getenv("DB_USER", "filwords"),
"password": os.environ["DB_PASSWORD"],
"database": os.getenv("DB_NAME", "filwords"),
"host": os.getenv("DB_HOST", "localhost"),
"port": int(os.getenv("DB_PORT", "5432")),
}
ADMIN_IDS = [int(id_str) for id_str in os.getenv("ADMIN_IDS", "6694989403").split(",") if id_str]
FRONTEND_ORIGIN = os.getenv("FRONTEND_ORIGIN", "https://filwordspl.com")
# 🔧 ИСПРАВЛЕНО: единое значение — 24 часа.
# Раньше в auth.py было локально 24 часа, а здесь 3600 (1 час) — это был конфликт.
# Теперь значение берётся ТОЛЬКО отсюда.
MAX_INITDATA_AGE = 24 * 60 * 60 # 24 часа в секундах
SUPPORTED_LANGUAGES = {"pl", "ru", "uk", "en"}
# ============ 🔧 НОВОЕ (18.09.2026): настройки для FeedModal ============
# Папка для хранения картинок feed-постов.
# Путь совпадает с backend/, файлы доступны как static mounts (см. main.py при необходимости).
UPLOADS_DIR = os.getenv("UPLOADS_DIR", "/root/filwordspl/backend/uploads")
# Автосоздание папки — безопасно запускать повторно (exist_ok=True)
os.makedirs(UPLOADS_DIR, exist_ok=True)
# Секции карусели (совпадают с SECTION_CONFIG в FeedModal.tsx)
FEED_SECTIONS = {"news", "partners", "contacts", "apps"}
# Лимит картинок на один пост (совпадает с описанием — до 3)
MAX_FEED_ATTACHMENTS = 3
# Лимит размера одной картинки — 5 МБ
MAX_FEED_IMAGE_SIZE_MB = 5
MAX_FEED_IMAGE_SIZE_BYTES = MAX_FEED_IMAGE_SIZE_MB * 1024 * 1024
# Разрешённые MIME-типы для картинок feed
FEED_ALLOWED_IMAGE_TYPES = {
"image/jpeg",
"image/jpg",
"image/png",
"image/webp",
"image/gif",
}
# Языки, на которые переводим feed-посты (используется в admin_feed translate)
FEED_TARGET_LANGUAGES = ["pl", "ru", "uk", "en"]