File size: 2,759 Bytes
86c8341 f473aea 86c8341 b8763bd 86c8341 b89a231 d6ef436 b89a231 fbcfeb4 f473aea b89a231 86c8341 b89a231 d6ef436 b89a231 fbcfeb4 f473aea e4435ed f473aea e4435ed f473aea 86c8341 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# 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("SELECT * FROM contacts WHERE vk_id = ?", (user_id,))
result = cursor.fetchone()
if result:
# Обновляем запись, если пользователь уже существует
cursor.execute("UPDATE contacts SET canal = 0 WHERE vk_id = ?", (user_id,))
else:
# Создаем новую запись, если пользователь не существует
cursor.execute("INSERT INTO contacts (vk_id, canal) VALUES (?, 0)", (user_id,))
conn.commit()
conn.close()
return 'ok'
# Если тип события неизвестен, возвращаем ошибку
return 'unknown event', 400 |