Помогите с кодом на python для телеграмм бота. выключается через 3 секунды после включения
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
from telegram.ext import Updater, CommandHandler, MessageHandler, filters, ConversationHandler
import datetime
# Функция для обработки команды /start
def start(update, context):
update.message.reply_text('Привет! Я бот "Письмо в будущее".')
update.message.reply_text('Для начала скажи, как тебя зовут?')
return 'NAME'
# Функция для получения имени
def get_name(update, context):
user_data = context.user_data
user_data['name'] = update.message.text
update.message.reply_text(f'Приятно познакомиться, {user_data["name"]}!')
update.message.reply_text('Теперь напиши год своего выпуска:')
return 'GRADUATION_YEAR'
# Функция для получения года выпуска
def get_year(update, context):
user_data = context.user_data
year = int(update.message.text)
user_data['year'] = year
update.message.reply_text('Отлично! Теперь напиши свое письмо в будущее:')
return 'MESSAGE'
# Функция для получения письма
def get_message(update, context):
user_data = context.user_data
user_data['message'] = update.message.text
# Рассчитываем дату доставки
delivery_date = datetime.datetime(year=user_data['year'], month=7, day=1)
# Добавляем задание на отправку
context.job_queue.run_once(send_message, delivery_date, context=(update.message.chat_id, user_data['message']))
update.message.reply_text('Твоё письмо будет доставлено 1 июля года выпуска!')
return ConversationHandler.END
# Функция отправки сообщения
def send_message(context):
chat_id, message = context.job.context
context.bot.send_message(chat_id=chat_id, text=f"Пришло твоё письмо из прошлого:\n\n{message}")
# Основная функция
def main():
# Замените TOKEN на ваш токен бота
updater = Updater("тут написан мой токен", use_context=True)
dp = updater.dispatcher
# Создаем обработчик диалога
conv_handler = ConversationHandler(
entry_points=[CommandHandler('start', start)],
states={
'NAME': [MessageHandler(filters.text & ~filters.command, get_name)],
'GRADUATION_YEAR': [MessageHandler(filters.text & ~filters.command, get_year)],
'MESSAGE': [MessageHandler(filters.text & ~filters.command, get_message)]
},
fallbacks=[]
)
dp.add_handler(conv_handler)
# Запускаем бота
updater.start_polling()
updater.idle()
updater.dispatcher
if 'name' == '__main__':
main()
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
У тебя if 'name' == '__main__'
убери кавычки с name, дальше должно нормально.
А лучше так:
if __name__ == '__main__':
Если ты и генерируешь коды в ИИ, выбери себе telebot или aiogram
Больше по теме