@stikman

Как исправить ошибку, не у всех работает мой телеграмм бот после того как я вписал чтобы не известные команды мне отправлял на блокнот,как исправить?

Я сделал так, чтобы если бот не знал команду он отправлял мне на блокнот там все точно написано, но теперь не у всех работает мой бот, так как после того как они вели не известную команду или слово бот останавливается и вылетает ошибка:
Traceback (most recent call last):
File "F:\Python TG bot\wset4et4et4et4et4et4et4et4et4et4et4et4et4w - копия.py", line 93, in
bot.polling(none_stop=True, interval=0)
File "C:\Users\RusSLanD\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telebot\__init__.py", line 618, in polling
self.__threaded_polling(non_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "C:\Users\RusSLanD\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telebot\__init__.py", line 680, in __threaded_polling
raise e
File "C:\Users\RusSLanD\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telebot\__init__.py", line 640, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\RusSLanD\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telebot\util.py", line 143, in raise_exceptions
raise self.exception_info
File "C:\Users\RusSLanD\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telebot\util.py", line 89, in run
task(*args, **kwargs)
File "F:\Python TG bot\wset4et4et4et4et4et4et4et4et4et4et4et4et4w - копия.py", line 85, in get_text_messages
zz.write(message.from_user.last_name)
TypeError: write() argument must be str, not None


вот код
import telebot , time
from requests import get
import random
tconv = lambda x: time.strftime("%H:%M:%S %d.%m.%Y", time.localtime(x))
aa=random.randint(1,3)
if aa==1:
    bb='Колобок повесился'
if aa==2:
    bb='Русалка села на шпагат'
if aa==3:
    bb='Рыба потонула'

bot = telebot.TeleBot('Токен')
n=0
n1=''
'''

'''
@bot.message_handler(commands=["start"])
def start(message):
    bot.send_message(message.from_user.id, "Ballon на связи")
@bot.message_handler(commands=["wes"])
def wes(message):
    aa=random.randint(1,3)
    if aa==1:
        bb='Колобок повесился'
    if aa==2:
        bb='Русалка села на шпагат'
    if aa==3:
        bb='Рыба потонула'
    bot.send_message(message.from_user.id, bb)

@bot.message_handler(commands=["hello"])
def hello(message):
    bot.send_message(message.from_user.id, "Привет")
    bot.send_message(message.from_user.id, "Я бот красный шар, и меня зовут Ballon")
@bot.message_handler(commands=["help"])
def help(message):
    bot.send_message(message.from_user.id, "Вот что я умею")
    bot.send_message(message.from_user.id, "старт-""/start")
    bot.send_message(message.from_user.id, "Напиши привет-""/hello")
    bot.send_message(message.from_user.id, "Спой песню-""/sing")
    bot.send_message(message.from_user.id, "Спойлер-""/spoiler")
    bot.send_message(message.from_user.id, "Создать телеграмм бота-""/newbot")
    bot.send_message(message.from_user.id, "Давай поговорим-""/talk")
@bot.message_handler(commands=["sing"])
def sing(message):
    bot.send_message(message.from_user.id, "Антошка Антошка пошли копать картошку")
    bot.send_message(message.from_user.id, "Антошка Антошка пошли копать картошку")
@bot.message_handler(commands=["newbot"])
def newbot(message):
    bot.send_message(message.from_user.id, "Я скоро смогу создавать телеграмм ботов")

@bot.message_handler(commands=["spoiler"])
def spoiler(message):
    bot.send_message(message.from_user.id, " Я буду лутчим телеграм ботов")
    bot.send_message(message.from_user.id, "Потому что меня писал -R")  
@bot.message_handler(commands=["talk"])
def talk(message):
    global n
    n=1
    bot.send_message(message.from_user.id, "Меня зовут ballon")
    bot.send_message(message.from_user.id, "а тебя как зовут")
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    global n, n1
    if n==1:
        n1=message.text
        bot.send_message(message.from_user.id, "Привет "+n1)
        n=0
    elif message.text == "Классно" or message.text == "Отлично"or message.text == "класно"or message.text == "Жесть"or message.text == "жесть"or message.text == "здорово"or message.text == "Здорово"or message.text == "класс" or message.text== "окей"or message.text == "Окей" or message.text == "отлично"or message.text == "Класс" or message.text == "Идеал" or message.text == "Идеально":
        bot.send_message(message.from_user.id, "Спасибо")
    elif message.text == "Как дела?" or message.text == "Как дела" or message.text == "как дела" or message.text == "как дела?"or message.text == "А как дела?" or message.text == "А как дела" :
        bot.send_message(message.from_user.id,"Я бот, я не имею имотций")
    elif message.text == "Привет" or message.text == "привет":
        bot.send_message(message.from_user.id,"Привет ")
    else:
        bot.send_message(message.from_user.id, "Я не умею это делать. Напиши /help.")
#после введение этой команды у некоторых людей начало не работать не известные команды
#вот так выглядит в блокноте 19:10:41 07.05.2022 : 5555555555 , Пупкин , Вася , Молодец холодец
        zz=open('bot.txt','a')
        zz.write('\n')
        zz.write(tconv(message.date))
        zz.write(' : ')
        zz.write(str(message.from_user.id))
        zz.write(' , ')
        zz.write(message.from_user.last_name)
        zz.write(' , ')
        zz.write(message.from_user.first_name)
        zz.write(' , ')
        zz.write(message.text)
        zz.close()
bot.polling(none_stop=True, interval=0
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
borisdenis
@borisdenis
Ленив и вреден...
File "F:\Python TG bot\wset4et4et4et4et4et4et4et4et4et4et4et4et4w - копия.py", line 85, in get_text_messages
zz.write(message.from_user.last_name)
TypeError: write() argument must be str, not None


Очень похоже, что в 85 строке zz.write(message.from_user.last_name) в переменной message.from_user.last_name нет ничего argument must be str, not None, а ожидается текст. Нужна обработка ошибок, чтоб бот не падал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы