zov-tech/bot/main.py
wasrusgen c41c938a67 rebrand: ZOV → @wasrusgen1 · сборщик (твой бренд)
Брендирование как ЛИЧНЫЙ CRM Руслана Васильева (не ЗОВ).

Splash:
- Убрана inline-SVG ZOV-лого
- Добавлена иконка пилы (assets/wasrusgen-saw.png, оранжевая,
  дыхательная анимация)
- Wordmark «@WASRUSGEN1» — Inter Black 28pt, серый #4A4A4A,
  «1» в оранжевом
- Подпись «сборщик» — Caveat 32pt оранж, поворот -3° (как в твоём лого)
- Полоса прогресса теперь оранжевая

Title окна: «WASRUSGEN1 · Кабинет»
Theme-color: #F08720 (для статусной строки Telegram WebApp)

Bot:
- Menu-кнопка слева от ввода: «Кабинет» (вместо «ЗОВ»)
- Welcome /start: «@wasrusgen1 · сборщик — Рабочий кабинет Руслана Васильева»

Footer клиента: «@wasrusgen1 · сборщик» + «Кабинет от Руслана Васильева»
Meta клиента без менеджера: «@wasrusgen1 · сборщик» (вместо «ЗОВ — кухонная мебель»)

ZOV-упоминания НЕ убраны там, где это про реальный контекст
(подбор техники для кухонь ЗОВ, AI-промпт, аудитория-менеджеры ЗОВ
в роли «Сотрудник»).

Cache bust v=20260513zd.
2026-05-13 21:38:45 +03:00

52 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.types import MenuButtonWebApp, WebAppInfo
from config import load_config
from handlers import start
async def main() -> None:
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
)
config = load_config()
bot = Bot(
token=config.bot_token,
default=DefaultBotProperties(parse_mode=ParseMode.HTML),
)
dp = Dispatcher()
dp["config"] = config
dp.include_router(start.router)
if config.use_webhook:
raise NotImplementedError("Webhook mode будет добавлен после MVP")
# Универсальная меню-кнопка — открывает MiniApp одним тапом.
# Внутри MiniApp пользователь выбирает роль (менеджер/клиент/сотрудник).
try:
await bot.set_chat_menu_button(
menu_button=MenuButtonWebApp(
text="Кабинет",
web_app=WebAppInfo(url=config.miniapp_url),
),
)
logging.info("Установлена меню-кнопка MiniApp: %s", config.miniapp_url)
except Exception as e:
logging.warning("Не удалось установить меню-кнопку: %s", e)
logging.info("Запуск в режиме polling")
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())