import ptbot import settings from pytimeparse import parse from progressbar import render_progressbar api_key = settings.APIKEY chat_id = settings.CHAT_ID bot = ptbot.Bot(api_key) bot.send_message(chat_id, 'На сколько запустить таймер?') def notify_progress(secs_left, message_id, time): bot.update_message( chat_id, message_id, 'Осталось {} секунды\n{}'.format(secs_left, render_progressbar(time, secs_left))) if secs_left == 0: bot.send_message(chat_id, 'Время вышло') def reply(text): time = parse(text) message_id = bot.send_message( chat_id, 'Осталось {} секунды\n{}'.format(time, render_progressbar(time, time))) bot.create_countdown(time, notify_progress, message_id=message_id, time=time)
format_progress_message(seconds_total, seconds_left)) def notify_time_is_over(): bot.send_message(tg_chat_id, "Время вышло!") def reply(time): parsed_time = pytimeparse.parse(time) if parsed_time is None: error_message = 'Я так не понимаю.\nНапишите что-то вроде "5s" или "1.2 minutes"' bot.send_message(tg_chat_id, error_message) return message_id = bot.send_message( tg_chat_id, format_progress_message(parsed_time, parsed_time)) bot.create_countdown(parsed_time, notify_progress, parsed_time, message_id) bot.create_timer(parsed_time, notify_time_is_over) if __name__ == "__main__": env = Env() env.read_env() tg_token = env.str("tg_token") tg_chat_id = env.int("tg_chat_id") bot = ptbot.Bot(tg_token) bot.send_message(tg_chat_id, "На какое время поставить таймер?") bot.reply_on_message(reply) bot.run_bot()
current_seconds = total_seconds - secs_left message = 'Осталось {} секунд(ы).\n\n'.format(secs_left) progressbar = render_progressbar(total_seconds, current_seconds) updated_message = message + progressbar bot.update_message(chat_id, message_id, updated_message) def notify(message: str) -> None: bot.send_message(chat_id, message) def reply(wait_time: str) -> None: wait_seconds = parse(wait_time) if wait_seconds != None: message_id = bot.send_message( chat_id, 'Таймер запущен на {} секунд.'.format(wait_seconds)) bot.create_timer(wait_seconds, notify, 'Время вышло') bot.create_countdown(wait_seconds, notify_progress, message_id=message_id, total_seconds=wait_seconds) else: bot.send_message(chat_id, 'Некорректные данные. Формат: 10s, 2m, 3h') chat_id = os.getenv('TELEGRAM_CHAT_ID') bot_token = os.getenv('TELEGRAM_BOT_TOKEN') bot = ptbot.Bot(bot_token) bot.send_message(chat_id, 'Привет. На сколько запустить таймер?') bot.wait_for_msg(reply)
start_message_id = bot.send_message( CHAT_ID, 'Таймер запущен на {0} секунд'.format(time)) start_progress = bot.send_message(CHAT_ID, render_progressbar(time, time)) bot.create_countdown(time, notify_progress, new_text=start_message_id, time=time, new_time=start_progress) bot.create_timer(time, notify) def render_progressbar(total, iteration, prefix='', suffix='', length=30, fill='█', zfill='░'): iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) bot = ptbot.Bot(TOKEN) bot.send_message(CHAT_ID, 'На сколько запустить таймер?') bot.reply_on_message(reply) bot.run_bot()
iteration, prefix='', suffix='', length=30, fill='█', zfill='░'): iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) def reply(msg_time): user_time = str(parse('{}'.format(msg_time))) message_id = bot.send_message( telegram_id_chat, 'Таймер запущен на {} {}'.format(user_time, 'секунд')) bot.create_timer(parse('{}'.format(msg_time)), notify, "Время вышло") bot.create_countdown(parse('{}'.format(msg_time)), notify_progress, update_message=message_id, full_time=int(user_time)) telegram_id_chat = os.getenv("TELEGRAM_ID_CHAT") telegram_id_token = os.getenv("TELEGRAM_ID_TOKEN") bot = ptbot.Bot(telegram_id_token) bot.send_message(telegram_id_chat, "На сколько запустить таймер?") bot.wait_for_msg(reply)
import ptbot import os from pytimeparse import parse import datetime telegram_bot_token = os.getenv("TELEGRAM_BOT_TOKEN") bot = ptbot.Bot(telegram_bot_token) telegram_chat_id = os.getenv("TELEGRAM_ID_CHAT") message_id = bot.send_message(telegram_chat_id, "На сколько запустить таймер?") def render_progressbar(total, iteration, prefix='', suffix='', length=30, fill='█', zfill='░'): iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) def notify_progress(secs_left, message_id): bot.update_message(telegram_chat_id, message_id, "Осталось {} {}".format(secs_left, "seconds"))
import ptbot from pytimeparse import parse token = "1594751729:AAEZd4HdD1WVf1AHaDty3oU8rkzJ1w0ZwmM" chatid = "367392748" def notify(): bot.up(chatid, "Times up") def notify_progress(secs_left): message_id = bot.send_message(chatid, secs_left) def reply(text): time = parse(text) timerr = str(time) msg = "Timer set on " + timerr + " seconds" bot.send_message(chatid, msg) bot.create_countdown(time, notify_progress) bot.create_timer(time, notify) bot = ptbot.Bot(token) bot.send_message(chatid, 'How much time do you want?') bot.reply_on_message(reply) bot.run_bot()
def notify_progress(secs_left, message_id, total_seconds): str_progressbar = render_progressbar(total_seconds, secs_left) bot.update_message(TELEGRAM_CHAT_ID, message_id, f'Осталось секунд: {secs_left} \n {str_progressbar}') def render_progressbar(total, iteration, prefix='', suffix='', length=30, fill='█', zfill='░'): iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) TELEGRAM_TOKEN = os.getenv('TELEGRAM_TOKEN') TELEGRAM_CHAT_ID = os.getenv('TELEGRAM_CHAT_ID') bot = ptbot.Bot(TELEGRAM_TOKEN) bot.send_message(TELEGRAM_CHAT_ID, 'На сколько запустить таймер?') bot.reply_on_message(reply) bot.run_bot()
print(render_progressbar (secs, secs_left)) sum_message = text_message + progressbar message_id = bot.send_message(CHAT_ID, sum_message) bot.update_message(CHAT_ID,message_id, sum_message) iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) #def notify(): bot.send_message(CHAT_ID, 'Время вышло') def notify_progress (secs, secs_left, total, iteration, prefix='', suffix='', length=30, fill='█', zfill='░'): iteration = min(total, iteration) percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) print(render_progressbar (10, 5)) #if __name__ == '__main__': bot = ptbot.Bot(TG_token) bot.send_message(CHAT_ID,'На сколько запустить таймер?') bot.reply_on_message(reply) bot.run_bot()
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import ptbot from pytimeparse import parse my_bot_token = os.getenv('MY_BOT_TOKEN') chat_id = os.getenv('CHAT_ID') initial_msg = 'На сколько запустить таймер?' bot = ptbot.Bot(my_bot_token) def finish_notify(): finish_notify_msg = 'Время вышло!' bot.send_message(chat_id, finish_notify_msg) def reply(user_input): seconds_quantity = parse(user_input) bot.create_timer(seconds_quantity, finish_notify) start_timer_msg = ('Таймер запущен на {} секунд'.format(seconds_quantity)) bot.send_message(chat_id, start_timer_msg) progress_msg = ('Осталось {} секунды'.format(seconds_quantity)) progressbar = render_progressbar(seconds_quantity, 0) progress_msg_id = bot.send_message(chat_id, progress_msg) progressbar_id = bot.send_message(chat_id, progressbar) bot.create_countdown(seconds_quantity, notify_progress, progress_msg_id=progress_msg_id, progressbar_id=progressbar_id,
percent = "{0:.1f}" percent = percent.format(100 * (iteration / float(total))) filled_length = int(length * iteration // total) pbar = fill * filled_length + zfill * (length - filled_length) return '{0} |{1}| {2}% {3}'.format(prefix, pbar, percent, suffix) def reply_msg(text): seconds = parse(text) message_id = bot.send_message( CHAT_ID, 'Таймер запущен на {} секунд'.format(seconds), ) bot.create_countdown(seconds, notify_progress, message_id=message_id, total_seconds=seconds) bot.create_timer(seconds, notify_finish) def launch_bot(): bot.send_message(CHAT_ID, 'Привет!') bot.send_message(CHAT_ID, 'На сколько запустить таймер?') bot.reply_on_message(reply_msg) bot.run_bot() if __name__ == '__main__': bot = ptbot.Bot(API_KEY) launch_bot()