Telegram bot + data base. execute() takes no keyword arguments

53 views Asked by At

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

0

There are 0 answers