NotSoToothless 25990c361f docs(tally): add tally to /help + website docs; translate to all locales (#1342)
- Add a 'Voice channel tally' group to /help with the three commands.
- Add a Voice Channel Tally section to the website docs (docs.ejs).
- Translate the commands.tally bot strings + help_group_tally into all 10
  other bot locales, and the new docs.* web strings into all 10 web locales.
- Fix stale need_one_input string (ign/squadron_short -> username/squadron).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 01:56:32 -07:00
2026-05-31 01:43:19 -07:00
2026-05-31 01:43:19 -07:00
2026-06-05 12:57:20 -07:00

Installation

  1. Clone the repository

    git clone git@github.com:FURRO404/BOTS.git
    cd BOTS/SREBOT
    
  2. Set up the shared Python virtual environment (used by both SREBOT and TSSBOT)

    python3 -m venv ../SHARED/.venv
    source ../SHARED/.venv/bin/activate
    
  3. Install dependencies

    pip install -r ../SHARED/requirements.txt
    
  4. Configure environment variables

    nano .env
    

    .env is the single source of truth for runtime config — ecosystem.config.js has no env: blocks; it loads .env via require('dotenv').config() and PM2 inherits the variables when spawning each app. Keys SREBOT reads:

    DISCORD_KEY=your_discord_bot_token_here
    DEEPL_KEY=your_deepl_api_key_here  # Optional
    GITHUB_WEBHOOK_SECRET=your_webhook_secret  # For auto-deployment
    STORAGE_VOL_PATH=/absolute/path/to/storage  # Shared with TSSBOT
    SREBOT_API_BEARER_TOKEN=your_internal_api_token  # Optional, protects /api/*
    SREBOT_API_PORT=6000
    SREBOT_WEB_PORT=3001
    SREBOT_WEBHOOK_PORT=9000
    SREBOT_TTL_ALERT_WEBHOOK_URL=https://discord.com/api/webhooks/...
    SREBOT_EXTERNAL_HOST=0.0.0.0
    SREBOT_EXTERNAL_PORT=18081
    SREBOT_EXTERNAL_BEARER_TOKEN=your_external_bridge_token  # Optional, protects the bridge API and websocket
    SREBOT_EXTERNAL_UPSTREAM_URL=http://127.0.0.1:6000
    SREBOT_TTL_ALERT_WEBHOOK_URL=https://discord.com/api/webhooks/...  # Optional, maintains one Discord status message for TTL degradation/recovery
    NODE_ENV=production
    PYTHONUNBUFFERED=1
    
  5. Run the bot

    python BotScript.py
    

AXBot bridge process

ecosystem.config.js now includes a dedicated PM2 app named srebot-axbot. It proxies read-only SREBOT queries and broadcasts replay/GOB envelopes over websocket on the same external port. Its outbox/state files live under the shared storage volume configured in .env via STORAGE_VOL_PATH.

Useful commands:

pm2 start ecosystem.config.js --only srebot-api
pm2 start ecosystem.config.js --only srebot-axbot
pm2 logs srebot-axbot

Clients should point their query client at:

SREBOT_API_BASE_URL=http://<srebot-host>:18081

The bridge app logs both sides of the transfer:

  • incoming client HTTP requests
  • outgoing proxy responses
  • websocket envelopes broadcast to connected clients

test

S
Description
Toothless SQB Discord Bot - War Thunder squadron statistics
Readme 87 MiB
Languages
Python 82.3%
JavaScript 17.6%