/notes-assistant

Open-source self-hosted Telegram bot for taking notes

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

EN RU

GitHub Actions Workflow Status

Bot for organizing notes by dates.

Storing, adding, editing and deleting notes by date. You can tag a note with an emoji. Convenient search by emoji statuses and dates. Birthdays and holidays are marked on the calendar (you need to set an emoji status).

Installation instructions


Commands

start

Greets the user

Buttons Actions
/menu Same as /menu command
/calendar Same as /calendar command
Add a bot to a group Calls up a dialog box for selecting a group

menu

Navigation through bot functions

Buttons Actions
๐Ÿ“š Help Same as /help
๐Ÿ“†Calendar Same as /calendar
๐Ÿ‘ค Account Personal account and data export
๐Ÿ‘ฅ Groups Group settings
๐Ÿ“† 7 days Events in the next 7 days
๐Ÿ”” Notifications View events that will be included in the notification
โš™๏ธSettings Same as /settings
๐Ÿ—‘ Cart Recycle bin with deleted events (premium)

help

Gives access to information about the bot's capabilities

calendar

Calendar

January (1.2000) (Leap ๐Ÿฒ) (52-5)
Mo Tu! We Th Fr Sa Su
#1 2
3 4!* 5 6* 7 8 9
10! 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
<<<โŸณ>>>

Designations

First button

When pressed, a yearly calendar appears.

Designation Meaning
January Names of the month
(1.2000) Month and year numbers
(Leap ๐Ÿฒ) Is it a leap year and the animal of this year
(52-5) Numbers of the first and last week

Days of the week

When pressed, they do nothing. The text on the button may end with the ! character. This means that on this day of the week there are repeating events with an interval of a week (more about statuses).

Button for the day

When pressed, it calls up message for one day

Sign Designation
# Today
* There are events on this day
If there are less than 10 events then it will consist of degree icons
indicating the number of events
! There is an important event on this day
For example, with the status birthday ๐ŸŽ‰ or holiday ๐ŸŽŠ

Navigation buttons

Sign Designation
<< Show calendar for one year ago
< Show calendar for one month ago
โŸณ Show calendar for current date
> Show calendar one month ahead
>> Show calendar for one year ahead

account

groups

week_event_list

Message with events in the next 7 days.

notifications

Message with events for today, tomorrow, after tomorrow, after after tomorrow and in a week.

settings

Message with settings.

๐Ÿ—ฃ ru ๐Ÿ”— True โฌ†๏ธ ๐Ÿ”• โฌ›๏ธ
-3 -1 3 ๐ŸŒ +1 +3
-1h -10m 08:00 โฐ +10m +1h
Default settings
Sign Designation
๐Ÿ—ฃ Language (default ru)
๐Ÿ”— Should I shorten links (https://en.wikipedia.org/wiki/Hyperlink -> en.wikipedia.org)
โฌ‡๏ธ / โฌ†๏ธ Event sort order
๐Ÿ”• Whether to enable notifications (disabled by default)
โฌœ๏ธ / โฌ›๏ธ Bot theme (replaces dark emoticons with light ones)
๐ŸŒ Your time zone
โฐ Notification Time

trash

List of deleted events.

๐Ÿ”ผ โ†•๏ธ
๐Ÿงน ๐Ÿ”„
Sign Designation
๐Ÿ”ผ Select one event
โ†•๏ธ Select multiple events
๐Ÿงน Empty Trash
๐Ÿ”„ Update cart

today

โž• ๐Ÿ”ผ โ†•๏ธ Menu
๐Ÿ”™ < > ๐Ÿ”„
Sign Designation
โž• Add event
๐Ÿ”ผ Select one event
โ†•๏ธ Select multiple events
Menu Return to menu
๐Ÿ”™ Return to calendar
< Show message for yesterday
> Show message for tomorrow
๐Ÿ”„ Update message

weather

forecast

export

Export events in different file formats csv, xml, json, jsonl.

Message for one day

๐Ÿ“๐Ÿท / ๐Ÿšฉ๐Ÿ—‘
๐Ÿ“… Change date
๐Ÿ”™โ„น๏ธ๐Ÿ”„

When you click on a button in the calendar with a date, today's date opens.

Button Action
๐Ÿ“ Edit event text
๐Ÿท / ๐Ÿšฉ Add status to event
๐Ÿ—‘ Delete event
๐Ÿ“… Change event date
๐Ÿ”™ Return to message for the day
โ„น๏ธ Event Information
๐Ÿ”„ Update message

Event statuses

A status is one or more emoji to mark an event or add different effects. An event can have a maximum of 5 statuses.

There are incompatible statuses. They cannot be placed together in the same event. If you have one event from a pair, then you will not be able to place the second one.

Incompatible statuses
๐Ÿ”— (Link) and ๐Ÿ’ป (Code)
๐Ÿชž (Hidden) and ๐Ÿ’ป (Code)
๐Ÿ”— (Link) and โ›“ (No link shortening)
๐Ÿงฎ (Numbered List) and ๐Ÿ—’ (List)

Effects on statuses are applied only when displaying events in a message. The event text itself does not change in the database.

Limits

There are limits for different user groups

Maximum possible values

user_status event
day
symbol
day
event
month
symbol
month
event
year
symbol
year
event
all
symbol
all
default 20 4000 75 10000 500 80000 500 100000
premium 40 8000 100 15000 750 100000 900 150000
admin 60 20000 200 65000 1000 120000 2000 200000

Search

The bot has a search by events. You can search using the commands #query or /search query. This search attempts to find all matches.
Query #1 2 searches for all events that contain the numbers 1 OR 2 (t1ext, tex2t, 2te1xt)