Как выводить лог бота в консоль в Python с pytelegrambotapi?
Как вывести лог в консоль типа (время отправки, ник пользователя, сообщение) Вот код:
import telebot
import config
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(content_types=['text'])
def get_message(message):
if message.text.lower() == 'привет':
bot.send_message(message.chat.id, 'хай')
else:
bot.send_message(message.chat.id, 'хз что это')
bot.polling(none_stop=True, interval=0)
Ответы (3 шт):
Автор решения: Sadykhzadeh
→ Ссылка
Можно внутри get_message() выводить информацию через print.
В твоём случае:
print(f"Message from {str(message.chat.first_name)} {str(message.chat.last_name)} (id: {str(message.from.id)})")
print(f"Text: {str(message.text)}")
Автор решения: Mike
→ Ссылка
def main():
a = input("Bot: Для получения справки введите help или no если она вам не нужна \nUser: ")
if a == "help":
helpp()
label .restart
a = input("Bot: Введите имя pdf файла с расширением или опишите то что вы умеете как можно подробнее \nUser: ")
if "pdf" in a:
try:
text = pdf_text(a)
except Exception:
print("Bot: smth went wrong")
goto .restart
else:
print("Bot: Вы ввели: ", a)
text = a
text = cleaning(text)
print("Bot: loading model")
model = load_model(filename="model.pkl")
n = int(input("Bot: Сколько вы хотите получить предсказанных компетенций: \nUser: "))
R = make_pred(text, model, p_num=n)
print("<========RESULT========>")
for i in R:
print(i)
print("<========RESULT========>")
Автор решения: Mike
→ Ссылка
def make_pred(words, model, p_num=1):
if p_num==1:
pred = model.predict([words])
return pred
else:
R = []
allpreds = model.decision_function([words]).reshape(-1)
for i in allpreds.argsort()[-p_num:][::-1]:
R.append(model.classes_[i])
return R