The Tell module is an interstellar answering machine that allows users to leave messages for other users who may not be online at the moment. When the recipient joins a channel or sends a message, they will receive all pending messages that were left for them.

Features

  • Leave messages for offline users with tell <username> <message>
  • Delete your own messages with rmtell <message-id>
  • List your pending messages with list-tells
  • Automatic delivery of pending messages when users are active
  • Persistent storage using SQLite database
  • Rate limiting to prevent abuse
  • Multi-platform support

Usage

tell Someone Something

To leave a message for someone who is not currently online:

  tell <username> <message>
  

Example:

  tell alice Hey, check out this cool link!
  

Removing Your Messages

To remove a message you previously sent:

  rmtell <message-id>
  

Example:

  rmtell a1b2c3d4-e5f6-7890-abcd-ef1234567890
  

The message ID is provided when your message is stored for delivery to the recipient.

Listing Your Pending Messages

To see your pending tell messages:

  list-tells
  

The bot will respond with a list of your pending messages and their IDs.

Configuration

To deploy the tell module, add it to your bot’s botModules configuration with moduleName: "tell":

  botModules:
- name: tell
  spec:
    size: 1
    image: ghcr.io/eeveebot/tell:latest
    pullPolicy: Always
    metrics: true
    metricsPort: 8080
    ipcConfig: my-eevee-bot
    moduleName: tell
    moduleConfig: |
      ratelimit:
        mode: drop
        level: user
        limit: 5
        interval: 1m
  

Requirements

This module uses better-sqlite3 for persistent storage, which requires native compilation during npm install. Ensure your build environment has a C++ compiler and Python 3 (for node-gyp).