diff --git a/tg_mainbot.py b/tg_mainbot.py
index 68ba9bd..e5e9c58 100644
--- a/tg_mainbot.py
+++ b/tg_mainbot.py
@@ -269,6 +269,34 @@ def get_user_subscriptions_evt(user_id):
finally:
conn.close()
+def get_linked_events_for_post(post_id):
+ """Возвращает список мероприятий, связанных с анонсом через таблицу interlinks"""
+ conn = create_db_connection()
+ if conn is None:
+ return []
+
+ try:
+ with conn.cursor() as cursor:
+ sql = """
+ SELECT e.name, e.tg_message_id
+ FROM interlinks i
+ JOIN events e ON i.event_id = e.id
+ JOIN posts p ON i.post_id = p.id
+ WHERE p.tg_message_id = %s AND e.name IS NOT NULL AND e.name != ''
+ ORDER BY e.name
+ """
+ cursor.execute(sql, (post_id,))
+ result = cursor.fetchall()
+
+ return [{'name': row['name'], 'tg_message_id': row['tg_message_id']} for row in result]
+ except pymysql.Error as e:
+ error_msg = f"Ошибка при получении связанных мероприятий: {e}"
+ logger.error(error_msg)
+ log_event("error", "system", message=error_msg)
+ return []
+ finally:
+ conn.close()
+
def save_mark_to_db(post_id, user_id, user_name):
"""Сохраняет отметку пользователя в базе данных"""
conn = create_db_connection()
@@ -878,6 +906,13 @@ def handle_list(message):
display_name = f"Анонс ВК {vk_post_id}"
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"
response += "\n"
# Добавляем подписки на события
@@ -971,6 +1006,13 @@ def handle_callback(call):
display_name = f"Анонс ВК {vk_post_id}"
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"
response += "\n"
# Добавляем подписки на события