import datetime
import time
from telegram import Bot
from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
# Ваш токен бота
TOKEN = 'YOUR_BOT_TOKEN'
# ID чата, куда будут отправляться сообщения (можно получить с помощью @getidsbot в Telegram)
CHAT_ID = 'YOUR_CHAT_ID'
# Дата и время события (первый запуск бота)
event_date = datetime.datetime.now() + datetime.timedelta(days=1)
event_date = event_date.replace(hour=0, minute=0, second=0, microsecond=0)
def send_message(context: CallbackContext):
now = datetime.datetime.now()
time_until_event = event_date - now
if time_until_event.days > 0:
hours, remainder = divmod(time_until_event.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
message = f"До следующего месяца осталось: {time_until_event.days} дн. {hours} час. {minutes} мин."
context.bot.send_message(chat_id=CHAT_ID, text=message)
def start(update: Update, context: CallbackContext):
update.message.reply_text("Бот запущен! Ожидание первого события...")
def main():
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher
# Команда /start
dispatcher.add_handler(CommandHandler("start", start))
# Запуск отправки сообщения раз в 5 часов
job_queue = updater.job_queue
job_queue.run_repeating(send_message, interval=5 * 60 * 60, first=0)
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()