· 4 years ago · May 18, 2021, 12:14 PM
1import telebot
2import sqlite3
3
4from config import token, admin_id
5
6
7client = telebot.TeleBot(token)
8
9"""
10Подключение к базе данных
11Создаём таблицу users если она ещё не создана
12"""
13
14@client.message_handler(commands=['start'])
15def start_message(message):
16
17 connection = sqlite3.connect('server.db')
18 cursor = connection.cursor()
19
20 cursor.execute(
21 """CREATE TABLE IF NOT EXISTS users (
22 id BIGINT,
23 username TEXT,
24 balance INT
25 )""")
26
27 connection.commit()
28
29 """
30 Проверяем есть ли пользователь в бд
31 Если нет - добавляем и уведомляем об этом пользователя.
32 Если есть - уведомляем, что он просто перезагрузил бота.
33 """
34
35 cursor.execute("SELECT id FROM users WHERE id = (?)", (message.from_user.id, ))
36 data = cursor.fetchone()
37 if data is None:
38 cursor.execute("INSERT INTO users VALUES (?, ?, ?)", (message.from_user.id, message.from_user.username, 0))
39 connection.commit()
40 client.send_message(message.from_user.id, "Я добавил тебя в свою базу данных.")
41 else:
42 client.send_message(message.from_user.id, "Перезагрузка выполнена.\nБот готов к работе.")
43
44"""
45Проверяем является ли пользователь админом
46Если да - даём доступ к команде
47Если нет - уведомляем его, что недостаточно прав
48"""
49
50@client.message_handler(commands=['status'])
51def admin_status_command(message):
52
53 connection = sqlite3.connect('server.db')
54 cursor = connection.cursor()
55
56 if message.from_user.id == admin_id:
57 usernames = ['@' + username[0] for username in cursor.execute("SELECT username FROM users")]
58 client.send_message(message.from_user.id, '\n'.join(usernames))
59 print('\n'.join(usernames))
60
61 else:
62 client.send_message(message.from_user.id, "У тебя нет доступа к этой команде")
63
64@client.message_handler(commands=['balance'])
65def balance_screen(message):
66 connection = sqlite3.connect('server.db')
67 cursor = connection.cursor()
68 cursor.execute("SELECT balance FROM users WHERE id = (?)", (message.from_user.id, ))
69 data = cursor.fetchone()
70 client.send_message(message.from_user.id, data)
71
72@client.message_handler(commands=['pcheck'])
73def pcheck_update(message):
74 connection = sqlite3.connect('server.db')
75 cursor = connection.cursor()
76 price = 123
77 cursor.execute("UPDATE users SET balance = balance + (?) WHERE id = (?)", (price, message.from_user.id,))
78 connection.commit()
79
80
81client.polling()
82