#Импоритрование библиотек
import telebot
import sqlite3
#Токен
bot = telebot.TeleBot('токен')
#База данных
base = sqlite3.connect('base.db', check_same_thread=False)
curbase = base.cursor()
curbase.execute("""CREATE TABLE IF NOT EXISTS base(
id INT,
ind INT,
selo TEXT,
adres TEXT,
name TEXT,
phone INT
)""")
base.commit()
#Личная переменная
per = sqlite3.connect('per.db', check_same_thread=False)
curper = per.cursor()
curper.execute("""CREATE TABLE IF NOT EXISTS per(
id INT,
per INT
)""")
per.commit()
#Выбор языка
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Choose language. Type: "RU" or "KZ" ')
''''try:
curper.execute(
f'SELECT id FROM per WHERE id = {message.chat.id}')
data_per = curper.fetchone()
if data_per is None:
curbase.execute("INSERT INTO per VALUES(?, ?);",
(int(message.chat.id), 0))
per.commit()
else:
for value in curper.execute("SELECT * FROM per"):
print(value)
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка добавления id в БД: {value}')'''
#Изменение личн переменной на 0
try:
curper.execute(
"UPDATE per SET per = ? WHERE id = ?",
(0, message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при изменении личной переменной: {value}')
#Добавление id
try:
curbase.execute(
f'SELECT id FROM base WHERE id = {message.chat.id}')
data_base = curbase.fetchone()
if data_base is None:
curbase.execute("INSERT INTO base VALUES(?, ?, ?, ?, ?, ?);",
(message.chat.id, 0, '0', '0', '0', 0))
base.commit()
else:
for value in curbase.execute("SELECT * FROM base"):
print(value)
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка добавления id в БД: {value}')
#Прием информации
@bot.message_handler(content_types=['text'])
def send_text(message):
#Взятие переменной
rows = curper.execute("SELECT per FROM per WHERE id = ?", (message.chat.id,),).fetchall()
rows = str(rows)
row = rows.replace('[(', '')
row = row.replace(',)]', '')
'''row = int(row)'''
print(row)
#Глобализирование переменных
global index
global selo
global adres
global name
global phone
#Изменение переменной
def izmper(peremenn):
try:
curper.execute(
"UPDATE per SET per = ? WHERE id = ?",
(peremenn, message.chat.id)
)
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при изменении личной переменной: {value}')
#Приветсвие RU
if message.text.lower() == 'ru':
bot.send_message(message.chat.id, 'Здравствуйте, я помогу вам заполнить данные о вашей школе для получения энциклопедии')
bot.send_message(message.chat.id, 'Давайте начнем. Введите индекс вашей школы (пример: 050046): ')
izmper(1)
#Приветствие KZ
elif message.text.lower() == 'kz':
bot.send_message(message.chat.id, 'Сәлеметсіз бе, энциклопедия алу үшін сізге мектебіңіз туралы мәліметтерді толтыруға көмектесемін')
bot.send_message(message.chat.id, 'Бастайық. Мектебіңіздің пошта индексін енгізіңіз (мысалы: 050046):')
izmper(11)
#Русский
#Приём адреса школы
#Индекс
elif row == 1 and len(message.text) == 6:
try:
curbase.execute(
"UPDATE base SET ind = ? WHERE id = ?",
(int(message.text), message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при добавлении в бд: {value}')
bot.send_message(message.chat.id, 'Отлично! Теперь введите название вашего села (пример: Село Узынагаш):')
izmper(2)
#Неправильный индекс
elif row == 1 and len(message.text) != 6 and message.text.lower() != 'kz' and message.text.lower() != 'ru':
bot.send_message(message.chat.id, 'С индексом что то не так. Попробуйте ещё раз')
#Прием села
elif row == 2:
try:
curbase.execute(
"UPDATE base SET selo = ? WHERE id = ?",
(message.text, message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при добавлении в бд: {value}')
bot.send_message(message.chat.id, 'Отлично! Теперь введите улицу и дом (пример: Улица Гагарина дом 111):')
izmper(3)
#Неправильное село
elif row == 2 and message.text.lower()[0:4] != 'село':
bot.send_message(message.chat.id, 'С названием села что то не так. Попробуйте ещё раз')
#Прием улицы и дома
elif row == 3 and 'улица' in message.text.lower():
try:
curbase.execute(
"UPDATE base SET adres = ? WHERE id = ?",
(message.text, message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при добавлении в бд: {value}')
bot.send_message(message.chat.id, 'Отлично! Теперь введите ФИО ответственного лица:')
izmper(4)
#Неправильная улица
elif row == 3 and message.text.lower()[0:5] != 'улица':
bot.send_message(message.chat.id, 'С названием улицы что то не так. Попробуйте ещё раз')
#Прием ФИО
elif row == 4:
try:
curbase.execute(
"UPDATE base SET name = ? WHERE id = ?",
(message.text, message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при добавлении в бд: {value}')
bot.send_message(message.chat.id, 'Отлично! Теперь введите номер телефона привязанный к Whatsapp:')
izmper(5)
#Прием телефона
elif row == 5:
try:
curbase.execute(
"UPDATE base SET phone = ? WHERE id = ?",
(int(message.text), message.chat.id))
except Exception as value:
bot.send_message(message.chat.id, f'Ошибка при добавлении в бд: {value}')
bot.send_message(message.chat.id, 'Отлично! Я все записал.')
izmper(0)
#Вывод БД
elif message.text == '/list':
for value in curbase.execute("SELECT * FROM per"):
bot.send_message(message.chat.id, f'{value}\n')
#Зацикливание
bot.polling()
Помогите пожалуйста выводит такую ошибку:
File "C:\Users\Kirukato\PycharmProjects\school_bot\main.py", line 189, in send_text
for value in curbase.execute("SELECT * FROM per"):
sqlite3.OperationalError: no such table: per