up_fail / webhook_handler.py
DmitrMakeev's picture
Update webhook_handler.py
f473aea verified
raw
history blame
2.2 kB
# webhook_handler.py
# webhook_handler.py
import sqlite3
def handle_webhook(data, key_callback_vk, db_name):
# Проверяем тип события
if data['type'] == 'confirmation':
# Возвращаем подтверждение
return key_callback_vk
# Обработка события подписки на рассылку
if data['type'] == 'message_allow':
user_id = data['object']['user_id']
group_id = data['group_id']
print(f"User {user_id} subscribed to the mailing list of group {group_id}")
# Записываем информацию о подписке в базу данных
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
# Проверяем, существует ли запись для данного пользователя
cursor.execute("SELECT * FROM contacts WHERE vk_id = ?", (user_id,))
result = cursor.fetchone()
if result:
# Обновляем запись, если пользователь уже существует
cursor.execute("UPDATE contacts SET canal = 1 WHERE vk_id = ?", (user_id,))
else:
# Создаем новую запись, если пользователь не существует
cursor.execute("INSERT INTO contacts (vk_id, canal) VALUES (?, 1)", (user_id,))
conn.commit()
conn.close()
return 'ok'
# Обработка события отписки от рассылки
if data['type'] == 'message_deny':
user_id = data['object']['user_id']
group_id = data['group_id']
print(f"User {user_id} unsubscribed from the mailing list of group {group_id}")
# Удаляем информацию о подписке из базы данных
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
cursor.execute("UPDATE contacts SET canal = NULL WHERE vk_id = ?", (user_id,))
conn.commit()
conn.close()
return 'ok'
# Если тип события неизвестен, возвращаем ошибку
return 'unknown event', 400