diff --git a/.env b/.env
index 33d0062..536cc07 100644
--- a/.env
+++ b/.env
@@ -9,6 +9,11 @@ WORKMODE = "VOLK"
+# Webhook Responder-bot
+WEBHOOK_URL = "https://bot.aabpro.ru/volk_bot"
+WEBHOOK_PORT = 5010
+WEBHOOK_SECRET = "cc0dbc1841660da0b14d7df86ab5e0ed973c"
+
# Webhook Responder-bot
# WEBHOOK_URL = "https://bot.aabpro.ru/testbot"
# WEBHOOK_PORT = 5005
@@ -59,8 +64,12 @@ MDB_PW = 'T38tU83r69'
POSTER_BOT_TOKEN = "8215624618:AAF6VtqRtFr4twFRTiTjedSDE6txkbIy6rc"
# VOLK production bot @VOLK_informer_bot
# POSTER_BOT_TOKEN = "8279661544:AAEsJee6icCUn_AbWxhDpk2CLxQhzaartuI"
+# VOLK responder bot
+RESPONDER_BOT_TOKEN = "8072579275:AAFiyKN1EPPnP5ZVZNTDGEriYJf1xADbfsY"
+RESPONDER_BOT_NAME = "@VOLK_responder_bot"
+
+
# @posto_1638_bot
-# NOT NEEDED FOR VOLK MODE
# RESPONDER_BOT_TOKEN = "8301828103:AAHDuBkw7EUkmMvv5TPpVJaLeeBLu-EB21U"
# Zilant info bot
# BOT_TOKEN = "7951721805:AAEW6Go9yvOOcJSWjgJZ7E2XLPtii2qG7UU"
@@ -72,7 +81,6 @@ POSTER_BOT_TOKEN = "8215624618:AAF6VtqRtFr4twFRTiTjedSDE6txkbIy6rc"
# POSTER_BOT_TOKEN = "8115998792:AAHamcNBlTgTXG0Birc1gNbZ5B7z4jMEdik"
# RESPONDER_BOT_TOKEN = "7951721805:AAEW6Go9yvOOcJSWjgJZ7E2XLPtii2qG7UU"
# RESPONDER_BOT_NAME = "Zilant_info_bot"
-# NOT NEEDED FOR VOLK MODE
# RESPONDER_BOT_NAME = "posto_1638_bot"
# Parameters
@@ -126,7 +134,7 @@ AUTO_PUBLISH = true
AUTO_PUB_EVT = true
PROCESS_EVENT_UPDATES = false
PUBLISH_SILENTLY = true
-USE_SUBSCRIPTION_BOT = false
+USE_SUBSCRIPTION_BOT = true
LOG_DEBUG_DATA = false
diff --git a/services/testbot-git.service b/services/testbot-git.service
index eaf83d7..43b9525 100644
--- a/services/testbot-git.service
+++ b/services/testbot-git.service
@@ -6,7 +6,7 @@ After=network.target
[Service]
User=root
WorkingDirectory=/opt/testbot-git
-ExecStart=/opt/testbot-git/venv/bin/gunicorn --bind 192.168.0.109:5005 --workers 4 wsgi_bot:app
+ExecStart=/opt/testbot-git/venv/bin/gunicorn --bind 192.168.0.109:5010 --workers 4 wsgi_bot:app
Restart=always
[Install]
diff --git a/tg_mainbot.py b/tg_mainbot.py
index ef79e22..3f33827 100644
--- a/tg_mainbot.py
+++ b/tg_mainbot.py
@@ -40,6 +40,57 @@ MAX_TEXT_LENGTH = int(os.getenv('MAX_TEXT_LENGTH', 4000))
# Устанавливаем единое ограничение длины текста
UNIFIED_MAX_LENGTH = 800
+# Режим работы бота (ZILANT или VOLK)
+BOT_MODE = os.getenv('BOT_MODE', 'ZILANT').upper()
+if BOT_MODE not in ('ZILANT', 'VOLK'):
+ logger.warning(f"Неизвестный режим бота: {BOT_MODE}, используем ZILANT")
+ BOT_MODE = 'ZILANT'
+logger.info(f"Режим работы бота: {BOT_MODE}")
+
+def get_welcome_text():
+ """Возвращает приветственный текст в зависимости от режима"""
+ if BOT_MODE == 'VOLK':
+ return (
+ "🌟 Привет! 🌟\n\n"
+ "Я - информационный бот ВОЛКа. "
+ "Здесь можно подписаться на интересные события будущего конвента - и потом напомнить самому себе, "
+ "что именно показалось интересным.\n\n"
+ )
+ else: # ZILANT
+ return (
+ "🌟 Привет! 🌟\n\n"
+ "Я - информационный бот Зиланткона. "
+ "Здесь можно подписаться на интересные события будущего Зиланта - и я напомню,"
+ "когда их можно будет включить в свой План Захвата Конвента.\n\n"
+ )
+
+def get_help_text():
+ """Возвращает текст справки в зависимости от режима"""
+ if BOT_MODE == 'VOLK':
+ return (
+ "ℹ️ Подсказка информ-бота ВОЛКа\n\n"
+ "Я запоминаю, кто чем интересовался, и позволяю "
+ "вспомнить, что именно вызывало интерес.\n\n"
+ "Доступные команды:\n"
+ "• /start - начать работу с ботом (вы уже здесь!)\n"
+ "• /help - показать эту справку\n"
+ "• /home - перейти в основной канал ВОЛКа\n"
+ "• /list - показать текущие подписки\n\n"
+ "Используйте кнопки ниже для быстрого доступа:"
+ )
+ else: # ZILANT
+ return (
+ "ℹ️ Подсказка информ-бота Зиланткона\n\n"
+ "Я запоминаю, кто чем интересовался, и напоминаю, "
+ "когда это становится можно включить в План Захвата.\n\n"
+ "Доступные команды:\n"
+ "• /start - начать работу с ботом (вы уже здесь!)\n"
+ "• /help - показать эту справку\n"
+ "• /home - перейти в основной канал Зиланткона\n"
+ "• /list - показать текущие подписки\n\n"
+ "Используйте кнопки ниже для быстрого доступа:"
+ )
+
# Извлекаем путь из WEBHOOK_URL
if WEBHOOK_URL:
try:
@@ -853,12 +904,7 @@ def handle_start(message):
return
# Команда /start без параметров
- welcome_text = (
- "🌟 Привет! 🌟\n\n"
- "Я - информационный бот Зиланткона. "
- "Здесь можно подписаться на интересные события будущего Зиланта - и я напомню,"
- "когда их можно будет включить в свой План Захвата Конвента.\n\n"
- )
+ welcome_text = get_welcome_text()
bot.send_message(
message.chat.id,
@@ -877,9 +923,10 @@ def handle_home(message):
"""Обработчик команды /home - переход в основной канал"""
try:
channel_link = format_channel_link()
+ channel_name = "ВОЛКа" if BOT_MODE == 'VOLK' else "Зиланткона"
bot.send_message(
message.chat.id,
- "📢 Основной канал Зиланткона\n\n",
+ f"📢 Основной канал {channel_name}\n\n",
reply_markup=InlineKeyboardMarkup().row(
InlineKeyboardButton("📢 Перейти в канал", url=channel_link)
),
@@ -895,17 +942,7 @@ def handle_home(message):
def handle_help(message):
"""Обработчик команды /help"""
try:
- help_text = (
- "ℹ️ Подсказка информ-бота Зиланткона\n\n"
- "Я запоминаю, кто чем интересовался, и напоминаю, "
- "когда это становится можно включить в План Захвата.\n\n"
- "Доступные команды:\n"
- "• /start - начать работу с ботом (вы уже здесь!)\n"
- "• /help - показать эту справку\n"
- "• /home - перейти в основной канал Зиланткона\n"
- "• /list - показать текущие подписки\n\n"
- "Используйте кнопки ниже для быстрого доступа:"
- )
+ help_text = get_help_text()
bot.send_message(
message.chat.id,
@@ -928,7 +965,7 @@ def handle_list(message):
# Получаем подписки на посты и события
post_subscriptions = get_user_subscriptions(user_id)
- event_subscriptions = get_user_subscriptions_evt(user_id)
+ event_subscriptions = get_user_subscriptions_evt(user_id) if BOT_MODE == 'ZILANT' else []
# Формируем ответ
response = "📋 Ваши подписки\n\n"
@@ -953,16 +990,17 @@ def handle_list(message):
# Названия постов выводим подчеркнутыми и жирным шрифтом
response += f"• {display_name}\n"
- # Получаем связанные мероприятия (только опубликованные)
- linked_events = get_linked_events_for_post(post_id)
- if linked_events:
- for event in linked_events:
- event_link = format_channel_link(event['tg_message_id'])
- response += f" └─ {event['name']}\n"
+ # Получаем связанные мероприятия (только опубликованные) - только для ZILANT
+ if BOT_MODE == 'ZILANT':
+ linked_events = get_linked_events_for_post(post_id)
+ if linked_events:
+ for event in linked_events:
+ event_link = format_channel_link(event['tg_message_id'])
+ response += f" └─ {event['name']}\n"
response += "\n"
- # Добавляем подписки на события
- if event_subscriptions:
+ # Добавляем подписки на события (только для ZILANT)
+ if BOT_MODE == 'ZILANT' and event_subscriptions:
response += "🎭 Мероприятия:\n"
for sub in event_subscriptions:
event_id = sub['event_id']
@@ -1012,17 +1050,7 @@ def handle_callback(call):
if call.data.startswith("cmd_"):
command = call.data[4:]
if command == "help":
- help_text = (
- "ℹ️ Подсказка информ-бота Зиланткона\n\n"
- "Я запоминаю, кто чем интересовался, и напоминаю, "
- "когда это становится можно включить в План Захвата.\n\n"
- "Доступные команды:\n"
- "• /start - начать работу с ботом (вы уже здесь!)\n"
- "• /help - показать эту справку\n"
- "• /home - перейти в основной канал Зиланткона\n"
- "• /list - показать текущие подписки\n\n"
- "Используйте кнопки ниже для быстрого доступа:"
- )
+ help_text = get_help_text()
bot.send_message(
call.message.chat.id,
@@ -1037,7 +1065,7 @@ def handle_callback(call):
# Получаем подписки на посты и события
post_subscriptions = get_user_subscriptions(user_id)
- event_subscriptions = get_user_subscriptions_evt(user_id)
+ event_subscriptions = get_user_subscriptions_evt(user_id) if BOT_MODE == 'ZILANT' else []
# Формируем ответ
response = "📋 Ваши подписки\n\n"
@@ -1062,16 +1090,17 @@ def handle_callback(call):
# Названия постов выводим подчеркнутыми и жирным шрифтом
response += f"• {display_name}\n"
- # Получаем связанные мероприятия (только опубликованные)
- linked_events = get_linked_events_for_post(post_id)
- if linked_events:
- for event in linked_events:
- event_link = format_channel_link(event['tg_message_id'])
- response += f" └─ {event['name']}\n"
+ # Получаем связанные мероприятия (только опубликованные) - только для ZILANT
+ if BOT_MODE == 'ZILANT':
+ linked_events = get_linked_events_for_post(post_id)
+ if linked_events:
+ for event in linked_events:
+ event_link = format_channel_link(event['tg_message_id'])
+ response += f" └─ {event['name']}\n"
response += "\n"
- # Добавляем подписки на события
- if event_subscriptions:
+ # Добавляем подписки на события (только для ZILANT)
+ if BOT_MODE == 'ZILANT' and event_subscriptions:
response += "🎭 Мероприятия:\n"
for sub in event_subscriptions:
event_id = sub['event_id']
@@ -1108,12 +1137,7 @@ def handle_callback(call):
log_event("list_request", user_info)
elif command == "back":
# Возврат к главному меню
- welcome_text = (
- "🌟 Привет! 🌟\n\n"
- "Я - информационный бот Зиланткона. "
- "Здесь можно подписаться на интересные события будущего Зиланта - и я напомню,"
- "когда их можно будет включить в свой План Захвата Конвента.\n\n"
- )
+ welcome_text = get_welcome_text()
bot.send_message(
call.message.chat.id,