2021-07-31 17:37:36 +04:00
|
|
|
|
from random import choice
|
|
|
|
|
|
|
|
|
|
import telebot
|
|
|
|
|
|
2021-07-31 18:05:28 +04:00
|
|
|
|
token = ''
|
2021-07-31 17:37:36 +04:00
|
|
|
|
|
|
|
|
|
bot = telebot.TeleBot(token)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RANDOM_TASKS = ['Написать Гвидо письмо', 'Выучить Python', 'Записаться на курс в Нетологию', 'Посмотреть 4 сезон Рик и Морти']
|
|
|
|
|
|
|
|
|
|
todos = dict()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HELP = '''
|
|
|
|
|
Список доступных команд:
|
|
|
|
|
* print - напечать все задачи на заданную дату
|
|
|
|
|
* todo - добавить задачу
|
|
|
|
|
* random - добавить на сегодня случайную задачу
|
|
|
|
|
* help - Напечатать help
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add_todo(date, task):
|
|
|
|
|
date = date.lower()
|
|
|
|
|
if todos.get(date) is not None:
|
|
|
|
|
todos[date].append(task)
|
|
|
|
|
else:
|
|
|
|
|
todos[date] = [task]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['help'])
|
|
|
|
|
def help(message):
|
|
|
|
|
bot.send_message(message.chat.id, HELP)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['random'])
|
|
|
|
|
def random(message):
|
|
|
|
|
task = choice(RANDOM_TASKS)
|
|
|
|
|
add_todo('сегодня', task)
|
|
|
|
|
bot.send_message(message.chat.id, f'Задача {task} добавлена на сегодня')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['add'])
|
|
|
|
|
def add(message):
|
|
|
|
|
_, date, tail = message.text.split(maxsplit=2)
|
|
|
|
|
task = ' '.join([tail])
|
|
|
|
|
# TODO: 1
|
|
|
|
|
if len(task) < 3:
|
|
|
|
|
bot.send_message(message.chat.id, 'Задачи должны быть больше 3х символов')
|
|
|
|
|
add_todo(date, task)
|
|
|
|
|
bot.send_message(message.chat.id, f'Задача {task} добавлена на дату {date}')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['print'])
|
|
|
|
|
def print_(message):
|
|
|
|
|
# TODO: 2
|
|
|
|
|
dates = message.text.split()[1].lower().split()
|
|
|
|
|
response = ''
|
|
|
|
|
for date in dates:
|
|
|
|
|
tasks = todos.get(date)
|
|
|
|
|
response += f'{date}: \n'
|
|
|
|
|
for task in tasks:
|
|
|
|
|
response += f'[ ] {task}\n'
|
|
|
|
|
response += '\n'
|
|
|
|
|
bot.send_message(message.chat.id, response)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bot.polling(none_stop=True)
|