This commit is contained in:
@@ -269,6 +269,34 @@ def get_user_subscriptions_evt(user_id):
|
|||||||
finally:
|
finally:
|
||||||
conn.close()
|
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):
|
def save_mark_to_db(post_id, user_id, user_name):
|
||||||
"""Сохраняет отметку пользователя в базе данных"""
|
"""Сохраняет отметку пользователя в базе данных"""
|
||||||
conn = create_db_connection()
|
conn = create_db_connection()
|
||||||
@@ -878,6 +906,13 @@ def handle_list(message):
|
|||||||
display_name = f"Анонс ВК {vk_post_id}"
|
display_name = f"Анонс ВК {vk_post_id}"
|
||||||
|
|
||||||
response += f"• <a href='{post_link}'>{display_name}</a>\n"
|
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"
|
response += "\n"
|
||||||
|
|
||||||
# Добавляем подписки на события
|
# Добавляем подписки на события
|
||||||
@@ -971,6 +1006,13 @@ def handle_callback(call):
|
|||||||
display_name = f"Анонс ВК {vk_post_id}"
|
display_name = f"Анонс ВК {vk_post_id}"
|
||||||
|
|
||||||
response += f"• <a href='{post_link}'>{display_name}</a>\n"
|
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"
|
response += "\n"
|
||||||
|
|
||||||
# Добавляем подписки на события
|
# Добавляем подписки на события
|
||||||
|
|||||||
Reference in New Issue
Block a user