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