I want to write a function that will check the presence of a user in the database, but it gives an error . Help fix the code. The block of code that needs to be fixed.
usernametg = str(message.from_user.username)
print(usernametg)
with sqlite3.connect('allusers.db') as db:
cursor = db.cursor()
query = """ CREATE TABLE IF NOT EXISTS username_tg(username TEXT) """
cursor.execute(query)
print('abe')
usernamecheck = cursor.execute("SELECT COUNT(*) FROM allusers WHERE username = :username", username=usernametg)
if usernamecheck == 0:
bot.send_message(message.chat.id, 'Вас нет в базе данных, пройдите регистацию бла бла бла')
else:
bot.send_message(message.chat.id, f'Доброго времени суток, {message.from_user.username}')
The whole code
import telebot
import time
from telebot import types
import openpyxl
from openpyxl import load_workbook
import sqlite3
bot = telebot.TeleBot('nameofbot')
global b1
global usernametg
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
@bot.message_handler(commands=['start'])
def main(message):
usernametg = str(message.from_user.username)
print(usernametg)
with sqlite3.connect('allusers.db') as db:
cursor = db.cursor()
query = """ CREATE TABLE IF NOT EXISTS username_tg(username TEXT) """
cursor.execute(query)
print('abe')
usernamecheck = cursor.execute("SELECT COUNT(*) FROM allusers WHERE username = :username", username=usernametg)
if usernamecheck == 0:
bot.send_message(message.chat.id, 'Вас нет в базе данных, пройдите регистацию бла бла бла')
else:
bot.send_message(message.chat.id, f'Доброго времени суток, {message.from_user.username}')
markup = types.ReplyKeyboardMarkup()
site = (types.InlineKeyboardButton(text='Перейти на сайт', url='https://www.youtube.com/watch?v=dQw4w9WgXcQ'))
poisk = (types.InlineKeyboardButton("Проверить наличие ", callback_data='search'))
vzet = (types.InlineKeyboardButton(text='Взять электронику', callback_data='take'))
vern = (types.InlineKeyboardButton(text='Вернуть электронику', callback_data='return'))
markup.row(site, poisk)
markup.row(vzet, vern)
tabla = (types.InlineKeyboardButton(text='Получить таблицу', callback_data='table'))
helpa = (types.InlineKeyboardButton(text='Как правильно вводить', callback_data='guide'))
domoi = (types.InlineKeyboardButton(text='Домой', callback_data='guide'))
markup.row(tabla, helpa, domoi)
bot.send_message(message.chat.id, 'Выберите дейстивие', reply_markup=markup)
'''
with sqlite3.connect('allusers.db') as db:
cursor = db.cursor()
query = """ CREATE TABLE IF NOT EXISTS username_tg(username TEXT) """
cursor.execute(query)
cursor.execute("insert into if not exists username_tg(username) values (?)", (usernametg,))
db.commit()
'''
@bot.message_handler(content_types=['text'])
def site(message):
if message.text == 'Перейти на сайт':
bot.send_message(message.chat.id, 'www.youtube.com/watch?v=dQw4w9WgXcQ')
elif message.text == 'Проверить наличие ':
sent = bot.send_message(message.chat.id, "Введите название ")
bot.register_next_step_handler(sent, review)
elif message.text == 'Взять электронику':
sent2 = bot.send_message(message.chat.id, "Введите название ")
bot.register_next_step_handler(sent2, review2)
elif message.text == 'Вернуть электронику':
sent3 = bot.send_message(message.chat.id, "Введите название ")
bot.register_next_step_handler(sent3, review3)
elif message.text == 'Получить таблицу':
file = open('nname.xlsx', 'rb')
bot.send_message(message.chat.id, "В данной таблице содержиться список всех компелктующих на данный момент")
bot.send_document(message.chat.id, file)
elif message.text == 'Как правильно вводить':
bot.send_message(message.chat.id, 'Далее будет представлены примеры ввода \nЕсли не знаете полного название лучше посмотрите через таблицу \n \
\nрезистор + значение + ед.измерения\nрезистор 100 Ом \nрезистор 100 кОм\n \
\nконденсатор + тип + ед. измерения \nконденсатор электролитический 1000 мкФ \nконденсатор керамический 22 нФ \n \
\nсветодиод + цвет + диаметр \nсветодиод красный 5мм\nсветодиод желтый 5мм')
elif message.text == 'Домой':
print('Домой бота')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
'''
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == 'search':
sent = bot.send_message(call.message.chat.id, "Введите название ")
bot.register_next_step_handler(sent, review)
elif call.data == 'take':
sent2 = bot.send_message(call.message.chat.id, "Введите название ")
bot.register_next_step_handler(sent2, review2)
elif call.data == 'return':
sent3 = bot.send_message(call.message.chat.id, "Введите название ")
bot.register_next_step_handler(sent3, review3)
elif call.data == 'table':
file = open('nname.xlsx', 'rb')
bot.send_message(call.message.chat.id, "В данной таблице содержиться список всех компелктующих на данный момент")
bot.send_document(call.message.chat.id, file)
elif call.data == 'guide':
bot.send_message(call.message.chat.id, 'Далее будет представлены примеры ввода \nЕсли не знаете полного название лучше посмотрите через таблицу \n' \
' \nрезистор + значение + ед.измерения\nрезистор 100 Ом \nрезистор 100 кОм\n' \
' \nконденсатор + тип + ед. измерения \nконденсатор электролитический 1000 мкФ \nконденсатор керамический 22 нФ \n'\
' \nсветодиод + цвет + диаметр \nсветодиод красный 5мм\nсветодиод желтый 5мм')
'''
def review(message):
message_to_save = message.text
b = message_to_save
if b == 'Домой':
print('вернулся на главную')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
else:
print(b)
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
if A_stlb.count(b):
index = A_stlb.index(b)
index2 = B_stlb[index]
bot.send_message(message.chat.id, 'Количество в наличии = ' + str(index2))
print('Количество', index2)
else:
bot.send_message(message.chat.id, 'Нет в наличии')
print("Нет в наличии")
def review2(message):
message_to_save = message.text
global b
b = message_to_save
if b == 'Домой':
print('вернулся на главную')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
else:
print('b', b)
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
if A_stlb.count(b):
index = A_stlb.index(b)
index2 = B_stlb[index]
bot.send_message(message.chat.id, 'Количество в наличие = ' + str(index2))
sent2 = bot.send_message(message.chat.id, 'Введите количество')
bot.register_next_step_handler(sent2, echo_message)
print('Количество', index2)
else:
bot.send_message(message.chat.id, 'Нет в наличии')
print("Нет в наличии")
def review3(message):
message_to_save = message.text
global b
b = message_to_save
if b == 'Домой':
print('вернулся на главную')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
else:
print('b', b)
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
if A_stlb.count(b):
index = A_stlb.index(b)
index2 = B_stlb[index]
bot.send_message(message.chat.id, 'Количество в наличие = ' + str(index2))
sent3 = bot.send_message(message.chat.id, 'Введите количество')
bot.register_next_step_handler(sent3, echo_message2)
print('Количество', index2)
else:
bot.send_message(message.chat.id, 'Нет в наличии')
print("Нет в наличии")
wb = load_workbook(filename="nname.xlsx")
ws = wb['Лист1']
@bot.message_handler(func=lambda message: True)
def echo_message(message):
b3 = message.text
if b3 == 'Домой':
print('вернулся на главную')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
else:
b2 = int(b3)
print('b2', b2)
print('b1', b)
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
if A_stlb.count(b):
index_p = A_stlb.index(b)
index_p2 = B_stlb[index_p]
'''print('dddd')
print(b2)'''
z = 'B' + str(index_p + 1)
ws[z] = index_p2 - b2
bot.send_message(message.chat.id, 'Ваш запрос учтён')
print(ws[z].value)
wb.save('nname.xlsx')
else:
print('Нет в наличии2')
def echo_message2(message):
b3 = message.text
if b3 == 'Домой':
print('вернулся на главную')
bot.send_message(message.chat.id, 'Вы вернулись на главную страницу')
else:
b2 = int(b3)
print('b2', b2)
print('b1', b)
workbook = load_workbook(filename="nname.xlsx")
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 200:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 200:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
if A_stlb.count(b):
index_p = A_stlb.index(b)
index_p2 = B_stlb[index_p]
'''print('dddd')
print(b2)'''
z = 'B' + str(index_p + 1)
ws[z] = index_p2 + b2
bot.send_message(message.chat.id, 'Ваш возврат учтён')
print(ws[z].value)
wb.save('nname.xlsx')
else:
print('Нет в наличии2')
if __name__ == '__main__':
while True:
try:
bot.polling(none_stop=True)
except Exception as e:
time.sleep(3)
print(e)
wb.save('nname.xlsx')
I tried to insert a small code that in theory should have worked, but it gave an error.
ith sqlite3.connect('allusers.db') as db:
cursor = db.cursor()
query = """ CREATE TABLE IF NOT EXISTS username_tg(username TEXT) """
cursor.execute(query)
print('abe')
usernamecheck = cursor.execute("SELECT COUNT(*) FROM allusers WHERE username = :username", username=usernametg)
if usernamecheck == 0:
bot.send_message(message.chat.id, 'Вас нет в базе данных, пройдите регистацию бла бла бла')
else:
error = execute() takes no keyword arguments