LINUX.ORG.RU

Телеграм бот не отвечает с первого сообщения

 , , ,


1

1

Телеграм бот ( telebot ) не отвечает с первого сообщения /start. Если отправить повторно /start он отвечает, работает исправно. Если отправить /admin он реагирует с первого раза. Если человек есть в базе данных он реагирует с первой отправки сообщения /start. Если человек новый и его нет в базе данных он реагирует со второй отправки сообщения /start. Помогите пожалуйста.

# Command start
@bot.message_handler(commands=['start'])
def handler_start(message):
    chat_id = message.chat.id
    func.first_join(user_id=chat_id, name=message.from_user.username)
    bot.send_message(chat_id,
                     text='Добро пожаловать {}!'.format(message.from_user.first_name),
                     reply_markup=menu.cities)

# Command admin
@bot.message_handler(commands=['admin'])
def handler_admin(message):
    chat_id = message.chat.id
    if chat_id in settings.admin_ids:
        bot.send_message(chat_id, 'Вы перешли в меню админа', reply_markup=menu.admin_menu)

# Обработка данных
@bot.callback_query_handler(func=lambda call: True)
def handler_call(call):
    chat_id = call.message.chat.id
    message_id = call.message.message_id

    # Main menu
    if call.data == 'edit_price':
        msg = bot.send_message(
            chat_id=chat_id,
            text=f'Выберите каталог:\n{func.edit_price_list_c()}'
        )


Последнее исправление: Marischka010 (всего исправлений: 4)

Не нужно кросспостить в разные разделы, одного поста в одном разделе вполне достаточно. Вам не отвечают потому что сказать ничего внятного не могут, а не потому что не видят сообщение. Кросспостингом вы не удвоите шансы получить ответ, но заслужите удаление темы со снятием скора.

Если вы не в состоянии прочитать, понять и разобраться в руководстве по разметке сообщений, возможно вам рано прграммировать и стоит для начала научиться читать и понимать технический текст? Никто не будет вникать и пытаться разбирать неотформатированную кашу из кода. Способов форматирования аж два, markdown и lorсode, выберите какой нибудь один (по дефолту markdown), разберитесь в описании разметки и разметьте уже ваше сообщение.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от X512

Строчку убрала. Бот отвечает сразу. Но теперь не записывает ник и ид человека в бд sqlite. И не работает профиль в боте

Marischka010
() автор топика
Ответ на: комментарий от Marischka010

Очевидно, что у тебя твой first_join падает на каком-то этапе. Поймай исключение и посмотри трейс

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

Показывает эту ошибку. Подскажите как исправить?

2020-08-11 17:18:01,805 (util. py:68 WorkerThread1) ERROR - TeleBot: "OperationalError occurred, args=('no such table: users',) Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/li b/python3.8/site-packages/telebot/util.py", line 62, in run
task(*args, **kwargs)
File "<string>", line 28, in handler_start File "/storage/emulated/0/Download/Bot mari/bots/functions.py", li
ne 279, in first_join
cursor. execute(f'INSERT INTO users VALUES (" (user_id)", "[name]" "[datetime. datetime. now()1", "(settings.LOGIN_ADMIN)", "(setting".
LOGIN_BOT)")') sqlite3.OperationalError: no such table: users
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/isec_run/ii
ec_run.py", line 31, in <module> start( fakepyfile, mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/isec_run/ii
ec_run,py", line 30, in start
exec(open(mainpyfile).read(),
main
dict )
File "<string>", line 908, in <module> File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/li b/python3,8/site-packages/telebot/_init py", line 415, in polling
self. threaded_polling(none_stop, interval, timeout)
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/li b/python3.8/site-packages/telebot/_init_ py", line 439, in threa ded_polling
self. worker_pool.raise_exceptions()
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/li b/python3.8/site-packages/telebot/util.py", line 111, in raise_excep tions
six. reraise(self.exc_info[0], self. exc_info[1], self. exc_info[2] File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/li
b/python3,8/site-packages/six.py", line 703, in reraise
raise value
File "/data/user/0/ru.iiec.pydroid3/files/aarch64- linux-android/li b/python3.8/site-packages/telebot/util.py", line 62, in run
task(*args, **kwargs)
File "<string>", line 28, in handler_start File "/storage/emulated/0/Download/Bot mari/bots/functions.py", li ne 279, in first_join cursor. execute(f'INSERT INTO users VALUES ("(user_id)", "(name)" "(datetime. datetime. now())", "[settings.LOGIN_ADMIN]", " (settings.
LOGIN_BOT)")") sqlite3.OperationalError: no such table: users
[Program finished]
Marischka010
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.