This commit is contained in:
@@ -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"• <a href='{post_link}'>{display_name}</a>\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" └─ <a href='{event_link}'>{event['name']}</a>\n"
|
||||
response += "\n"
|
||||
|
||||
# Добавляем подписки на события
|
||||
@@ -971,6 +1006,13 @@ def handle_callback(call):
|
||||
display_name = f"Анонс ВК {vk_post_id}"
|
||||
|
||||
response += f"• <a href='{post_link}'>{display_name}</a>\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" └─ <a href='{event_link}'>{event['name']}</a>\n"
|
||||
response += "\n"
|
||||
|
||||
# Добавляем подписки на события
|
||||
|
||||
Reference in New Issue
Block a user