Skip to content

magnickolas/remindee-bot

Repository files navigation

Stand With Ukraine

remindee-bot

Telegram bot for managing reminders.

Installation

  1. Setup your bot with @botfather.

Method 1: Rust's package manager

  1. Install Rust.

  2. Install the crate and start the bot:

    cargo install remindee-bot
    remindee-bot --token <BOT TOKEN> --database <FILE>

    Instead of flags you can use environment variables to specify the token and the database location:

    export BOT_TOKEN=<BOT TOKEN>
    export REMINDEE_DB=<FILE> # default is to store in the user's data directory
    remindee-bot

Method 2: release archive

  1. Download the archive for your system architecture from the latest release page.

  2. Unpack the archive:

    • for Linux, you can run tar xf remindee-bot-<version>-<architecture>.tar.gz;
    • for macOS, you can use the default zip extractor or run unzip remindee-bot-<version>-<architecture>.zip;
    • for Windows, you can use the default zip extractor.
  3. Navigate to the directory and start the bot:

    cd remindee-bot-<version>-<architecture>
    ./remindee-bot --token <BOT TOKEN> --database <FILE>

Method 3: Docker container

  1. Build the image from this repository:

    docker build --tag remindee-bot 'https://github.com/magnickolas/remindee-bot.git#master'
  2. Initialize and run a container from the built image:

     docker run -d -v <LOCAL DATABASE DIRECTORY>:/data -e BOT_TOKEN=<BOT TOKEN> remindee-bot

    See Docker's documentation for more.

Method 4: from source

  1. Install Rust.

  2. Clone the repository with Git:

    git clone https://github.com/magnickolas/remindee-bot
  3. Build the crate and start the bot:

    cargo install --path remindee-bot
    remindee-bot --token <BOT TOKEN> --database <FILE>

Using bot

Send /start command to the bot and follow its instructions 🤖.

Setting reminders

The formats descriptions with examples can be viewed at readthedocs or docs/index.rst.

You may also find it useful to refer to the pest grammar playground to try out some reminders and see how they are parsed (select reminder at the bottom of the list of choices next to the second code block and play with it).