kulti / task-list-bot Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
New sprint is created by the following command
/ns 04.01 - 10.01
Task created by sending a simple text. The following formats should be supported:
2 task description
creates task with 2 pointstask description 2
also creates task with 2 pointstask description
creates task with 1 point.If the task has the following format: 25.04 - Do smth good
it should be marked as today at 25.04.
04.01 - 10.01
Total (102/210) ⎥⣷ 8 16 24 32 40 70 100⎢
Today Tasks
1 ⎥⠀⠀⠀⎢ (2/10) Task 1
2 ⎥⠀⠀⠀⎢ (1/8) Task 2
3 ⎥⠀⠀⠀⎢ (12/16) Task 5
Tasks
4 ⎥⠀⠀⠀⎢ (3/10) asd8as asd9 asd asd
5 ⎥⠀⠀⠀⎢ (2/10) asdfasdf
6 ⎥⠀⠀⠀⎢ (1/8) Task 3
7 ⎥⠀⠀⠀⎢ (12/16) Task 4
8 ⎥⠀⠀⠀⎢ (3/10) asd8as asd9 asd asd
9 ⎥⠀⠀⠀⎢ (3/10) asd8as asd9 asd asd
10 ⎥⠀⠀⠀⎢ (7/10) Task 11 asd asd
11 ⎥⠀⠀⠀⎢ (1/10) gasd asd as
Done tasks
12 ⎥⣿⣿⣿⎢ (10/10) Task 21 asdfasdf
13 ⎥⣿⣿⣿⎢ (8/8) Task 22 фыва фыва фыв
14 ⎥⣿⣿⣿⎢ (16/16) Task
15 ⎥⣿⣿⣿⎢ (10/10) asd8as asd9 asd asd
16 ⎥⣿⣿⣿⎢ (10/10) Task A asd asd
17 ⎥⣿⣿⣿⎢ (10/10) gasd asd as
It makes sense to show only 1-3 last changes.
At now it shows only one. Think about configuration or statically increasing this value.
If a user wants to show old sprint it should be possible by the following command:
/show 01.01 - 07.01
Or as a more useful variant with one date:
/show 05.01
That shows the week with that date.
Simple task list prints tasks line by line in the following format:
<task number> <points done/total> <task description>
and looks like:
1 (1/4) Read a book
2 (0/2) Fix the table
Tasks are sorted by name.
Some tasks can be postponed to the next week. It can be done by the following command:
/p <task number>
If the task has some burnt points they should stay in the current sprint.
Task can be canceled to "hide" from main task list (should be possible after #10). If task has some burnt points the total progress should notice that.
Task cancels by the following command:
/c <task number>
It also should add info message like:
The task "Fix the table" mark as canceled.
Some tasks can be started when we have more free time. E.g. I want to pass a free course and don't want to forget about it. So it should be possible to add a further task.
It can look like:
/ft Pass course about Russian punctuation
To create a new sprint please copy the following text, edit it if required, and send.
...
Also, you planned to do the following when having more time. Maybe it now?
0 Pass course about Russian punctuation
tgbotapi has a method SetLogger and an interface BotLogger.
It needs to implement zap logger wrapper to use it for tgbotapi logs.
Integration tests can use another main to emulate telegram bot API via HTTP.
It's possible to create sprint by template.
First of all sprint template should be crated by the following command
/nst
2 Fix the table
4 Read a book
After that new sprint can be created in two steps:
/ns
command without args returns a message:To create a new sprint please copy the following text, edit it if required and send.
/ns 04.01 - 10.01
2 Fix the table
4 Read a book
Tasks can be done step by step. It is also called "burn points". To burn some points it is possible to send extended done command:
/d <task number> <burnt points>
is a total burnt points. If this number is more then total tasks points, total points will be increased with attention message "❗ burnt more then available".
Some tasks need more attention. Or they have a specific day to be done.
Task marks as today by the following command:
/t <task number>
After that, the task list should be changed to:
Today tasks
1 (0/2) Fix the table
Tasks
2 (1/4) Read a book
Done tasks
3 (5/5) Cook a dinner
Sometimes task description need to be updated. It should be possible by the following command:
/et <task number> <new task description>
It also should add info message like:
The task description changed from "Fix the table" to "Fix the table in the kitchen".
After that change sprint list should have the following format:
Total (5/9)
Tasks
1 (3/7) Read a book
Done tasks
2 (2/2) Fix the table
Add all required scripts to deploy telegram bot to Heroku.
Add GitHub workflows to build and release this project.
Task can be marked as done by the following command:
/d <task number>
It also should add info message like:
The task "Fix the table" mark as done.
The new sprint has format [begin] - [end]. If begin >= end or begin < previous_end or misformatted it's probably a mistake.
In that case, the bot should answer with a message like this:
Begin date (07.05) should not be greater or equal end date (01.05). If you are sure you can create the custom sprint with incorrect dates. For that enter the following command:
/ns 07.05 - 01.05 [force]
A several tasks can be created by on command:
4 Read a book
2 Fix the table
If one or more tasks cannot be created — no one should be created.
After that change, a simple telegram bot can be started to demonstrate a workflow.
Sprint can be created with multiple tasks in one command:
/ns 04.01 - 10.01
4 Read a book
2 Fix the table
Task list should split main task list and done task list like this:
Tasks
1 (1/4) Read a book
2 (0/2) Fix the table
Done tasks
3 (5/5) Cook a dinner
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.