Initial commit: Batch Bot - Telegram Comment Bot
0.0.1 Features: - Multi-account support via session files - AI comments generation via Ollama (local LLM) - Telegram bot for moderation (approve/reject/regenerate) - Docker support (controller + worker) - Auto-join public groups - Comment regeneration on group re-add - Statistics tracking Tech stack: - Python 3.11 - Telethon 1.34 (Telegram user client) - Aiogram 3.4 (Telegram bot framework) - SQLite (Database) - Docker & Docker Compose - Ollama (Local LLM)
This commit is contained in:
57
bot/config.py
Normal file
57
bot/config.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Загрузка переменных окружения
|
||||
load_dotenv()
|
||||
|
||||
# Пути
|
||||
BASE_DIR = Path(__file__).parent.parent # Корень проекта (batch-bot/)
|
||||
DATA_DIR = BASE_DIR / "data" # Примонтированная директория для данных
|
||||
SESSIONS_DIR = BASE_DIR / "sessions"
|
||||
LOGS_DIR = DATA_DIR / "logs"
|
||||
DB_PATH = DATA_DIR / "comments.db"
|
||||
|
||||
# Telegram Bot (контроллер)
|
||||
BOT_TOKEN = os.getenv("BOT_TOKEN")
|
||||
|
||||
# Telegram API (воркеры)
|
||||
API_ID = int(os.getenv("TELEGRAM_API_ID", "0"))
|
||||
API_HASH = os.getenv("TELEGRAM_API_HASH", "")
|
||||
|
||||
# Группы (добавляются через бота)
|
||||
LOG_GROUP_ID = int(os.getenv("LOG_GROUP_ID", "0"))
|
||||
|
||||
# Ollama
|
||||
OLLAMA_URL = os.getenv("OLLAMA_URL", "http://localhost:11434").rstrip("/")
|
||||
OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "qwen3:30b-a3b")
|
||||
PROMPT_FILE = os.getenv("PROMPT_FILE", "prompt.txt")
|
||||
|
||||
# Сканирование
|
||||
INITIAL_SCAN_LIMIT = int(os.getenv("INITIAL_SCAN_LIMIT", "20"))
|
||||
|
||||
# Комментарии
|
||||
MAX_REGENERATIONS = int(os.getenv("MAX_REGENERATIONS", "3"))
|
||||
COMMENT_DELAY_MIN = int(os.getenv("COMMENT_DELAY_MIN", "1"))
|
||||
COMMENT_DELAY_MAX = int(os.getenv("COMMENT_DELAY_MAX", "5"))
|
||||
|
||||
# Админы
|
||||
ADMIN_IDS = [int(x.strip()) for x in os.getenv("ADMIN_IDS", "").split(",") if x.strip()]
|
||||
|
||||
# Проверка конфигурации
|
||||
def validate_config():
|
||||
errors = []
|
||||
|
||||
if not BOT_TOKEN:
|
||||
errors.append("BOT_TOKEN не задан")
|
||||
|
||||
if not API_ID or not API_HASH:
|
||||
errors.append("TELEGRAM_API_ID или TELEGRAM_API_HASH не заданы")
|
||||
|
||||
if not LOG_GROUP_ID:
|
||||
errors.append("LOG_GROUP_ID не задан")
|
||||
|
||||
if not ADMIN_IDS:
|
||||
errors.append("ADMIN_IDS не заданы")
|
||||
|
||||
return errors
|
||||
Reference in New Issue
Block a user