Update webhook_handler.py
Browse files- webhook_handler.py +32 -1
webhook_handler.py
CHANGED
@@ -2,7 +2,9 @@
|
|
2 |
|
3 |
# webhook_handler.py
|
4 |
|
5 |
-
|
|
|
|
|
6 |
# Проверяем тип события
|
7 |
if data['type'] == 'confirmation':
|
8 |
# Возвращаем подтверждение
|
@@ -13,6 +15,25 @@ def handle_webhook(data, key_callback_vk):
|
|
13 |
user_id = data['object']['user_id']
|
14 |
group_id = data['group_id']
|
15 |
print(f"User {user_id} subscribed to the mailing list of group {group_id}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
return 'ok'
|
17 |
|
18 |
# Обработка события отписки от рассылки
|
@@ -20,6 +41,16 @@ def handle_webhook(data, key_callback_vk):
|
|
20 |
user_id = data['object']['user_id']
|
21 |
group_id = data['group_id']
|
22 |
print(f"User {user_id} unsubscribed from the mailing list of group {group_id}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
return 'ok'
|
24 |
|
25 |
# Если тип события неизвестен, возвращаем ошибку
|
|
|
2 |
|
3 |
# webhook_handler.py
|
4 |
|
5 |
+
import sqlite3
|
6 |
+
|
7 |
+
def handle_webhook(data, key_callback_vk, db_name):
|
8 |
# Проверяем тип события
|
9 |
if data['type'] == 'confirmation':
|
10 |
# Возвращаем подтверждение
|
|
|
15 |
user_id = data['object']['user_id']
|
16 |
group_id = data['group_id']
|
17 |
print(f"User {user_id} subscribed to the mailing list of group {group_id}")
|
18 |
+
|
19 |
+
# Записываем информацию о подписке в базу данных
|
20 |
+
conn = sqlite3.connect(db_name)
|
21 |
+
cursor = conn.cursor()
|
22 |
+
|
23 |
+
# Проверяем, существует ли запись для данного пользователя
|
24 |
+
cursor.execute("SELECT * FROM contacts WHERE vk_id = ?", (user_id,))
|
25 |
+
result = cursor.fetchone()
|
26 |
+
|
27 |
+
if result:
|
28 |
+
# Обновляем запись, если пользователь уже существует
|
29 |
+
cursor.execute("UPDATE contacts SET canal = 1 WHERE vk_id = ?", (user_id,))
|
30 |
+
else:
|
31 |
+
# Создаем новую запись, если пользователь не существует
|
32 |
+
cursor.execute("INSERT INTO contacts (vk_id, canal) VALUES (?, 1)", (user_id,))
|
33 |
+
|
34 |
+
conn.commit()
|
35 |
+
conn.close()
|
36 |
+
|
37 |
return 'ok'
|
38 |
|
39 |
# Обработка события отписки от рассылки
|
|
|
41 |
user_id = data['object']['user_id']
|
42 |
group_id = data['group_id']
|
43 |
print(f"User {user_id} unsubscribed from the mailing list of group {group_id}")
|
44 |
+
|
45 |
+
# Удаляем информацию о подписке из базы данных
|
46 |
+
conn = sqlite3.connect(db_name)
|
47 |
+
cursor = conn.cursor()
|
48 |
+
|
49 |
+
cursor.execute("UPDATE contacts SET canal = NULL WHERE vk_id = ?", (user_id,))
|
50 |
+
|
51 |
+
conn.commit()
|
52 |
+
conn.close()
|
53 |
+
|
54 |
return 'ok'
|
55 |
|
56 |
# Если тип события неизвестен, возвращаем ошибку
|