import os from pathlib import Path from datetime import timedelta, time from zoneinfo import ZoneInfo # --- Базовые пути --- BASE_DIR = Path(__file__).parent FONT_PATH = BASE_DIR / "impact.ttf" DEFAULT_TZ = os.getenv("TZ", "Europe/Moscow") # --- Настройки /penis --- PENIS_DB_PATH = "/db/penis_stats.sqlite3" CHAT_HISTORY_DB_PATH = "/db/chat_history.sqlite3" PENIS_START_LENGTH = 10.0 PENIS_MIN_DELTA = 0.1 PENIS_MAX_DELTA = 7.0 PENIS_COOLDOWN = timedelta(hours=24) PENIS_COOLDOWN_SECONDS = int(PENIS_COOLDOWN.total_seconds()) PENIS_TOP_LIMIT = 10 # --- Конфигурация макетов --- TEMPLATES = { "1": { "path": BASE_DIR / "maket" / "1.png", "anchor": (104, 240), "padding": 20, "label": "Владимир Владимирович Путин самый лучший президент", }, } # --- Расписание --- def make_time(h: int, m: int) -> time: return time(hour=h, minute=m) SCHEDULE = { 0: [ # Понедельник (make_time(9, 50), make_time(10, 35), 5), (make_time(10, 40), make_time(11, 25), 30), (make_time(11, 55), make_time(12, 40), 5), (make_time(12, 45), make_time(13, 30), 15), (make_time(13, 45), make_time(14, 30), 5), (make_time(14, 35), make_time(15, 20), 30), (make_time(15, 50), make_time(16, 35), 5), (make_time(16, 40), make_time(17, 25), None), ], 1: [ # Вторник (make_time(9, 50), make_time(10, 35), 5), (make_time(10, 40), make_time(11, 25), 30), (make_time(11, 55), make_time(12, 40), 5), (make_time(12, 45), make_time(13, 30), 15), (make_time(13, 45), make_time(14, 30), 5), (make_time(14, 35), make_time(15, 20), None), ], 2: [], # Среда 3: [ # Четверг (make_time(8, 0), make_time(8, 45), 5), (make_time(8, 50), make_time(9, 35), 15), (make_time(9, 50), make_time(10, 35), 5), (make_time(10, 40), make_time(11, 25), 30), (make_time(11, 55), make_time(12, 40), 5), (make_time(12, 45), make_time(13, 30), 15), (make_time(13, 45), make_time(14, 30), 5), (make_time(14, 35), make_time(15, 20), 30), (make_time(15, 50), make_time(16, 35), 5), (make_time(16, 40), make_time(17, 25), None), ], 4: [ # Пятница (make_time(9, 50), make_time(10, 35), 5), (make_time(10, 40), make_time(11, 25), 30), (make_time(11, 55), make_time(12, 40), 5), (make_time(12, 45), make_time(13, 30), 15), (make_time(13, 45), make_time(14, 30), 5), (make_time(14, 35), make_time(15, 20), None), ], } # --- Остальное --- KEYWORDS = {'крип', 'радиохэд', 'creep', 'radiohead'} # --- Авто-ответы ИИ --- AUTOREPLY_CHANCE = 0.10 AUTOREPLY_COOLDOWN = 120 AUTOREPLY_TRIGGERS = {'бот', 'фраер', 'кент', 'братуха', 'пацаны', 'чё как', 'базар', 'ебать', 'пизда', 'хуй', 'бля', 'сука', 'говно', 'пидор', 'пиздабол', 'пиздатый', 'пиздатая', 'пиздатое', 'пиздатые', 'пиздато', 'пиздато', 'пиздато', 'пиздато', 'ваномас'} def get_hint_text(templates_str: str) -> str: return ( "Команды:\n" f"• /maket «id» «текст» — доступные: {templates_str}.\n" "• /gen_mem Up:верх Down:низ — отправь с фото.\n" "• /break — узнать время до перекура.\n" "• /penis — миниигра 1 раз в 24 часа.\n" "• /top_penis — топ по длине.\n" "• /talk [текст] — ИИ базарит на фене.\n" "• /ebalnik — включить/выключить автоответы в чате.\n" "• /prices /fetch — цены.\n" "Подсказка: в группах пиши /команда@username_бота." )