~goorzhel/sota-slack-spotter

SOTA spots for your radio club

e6d379c Format flake.nix with Alejandra

2 months ago

354042d Use HasSummit

2 months ago

#SOTA Slack Spotter

A Slack bot that notifies you when a member of your workspace has been spotted on Summits on the Air. It does this by scraping callsigns from the list of Slack users, fetching spot data from the SOTA API, and messaging a channel whenever a member's callsign appears in a spot.

An example on Slack, with a message reading "N6TNO spotted at W6/CC-063" and thread-replies such as "on 7.0375 MHz (CW) at 17:54:02Z by RBNHOLE ('RBNHOLE at W6YX 14 WPM 25 dB SNR')" (this earned a muscle-emoji reaction from a clubmate).

#Usage

#Environment

#Required
  • SLACK_BOT_TOKEN: Begins with xoxb.
  • SLACK_CHANNEL: The channel where the bot will post spots.
#Optional
  • CACHE_DIR: Where to store cached data. Defaults to /cache.
  • EXTRA_CALLSIGNS: Comma-separated list of callsigns to track in addition to those extracted from Slack.
  • RUST_LOG: Controls logging verbosity. Upstream default is error.

#Fly

SLACK_BOT_TOKEN=<...>
SLACK_CHANNEL=<...>
REGION=<...> # e.g.: sjc
RUST_LOG=info


flyctl apps create sota-slack-spotter
flyctl secrets set SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN SLACK_CHANNEL=$SLACK_CHANNEL RUST_LOG=$RUST_LOG
flyctl deploy -r $REGION

#Docker

cat > .env <<EOF
SLACK_BOT_TOKEN=<...>
SLACK_CHANNEL=<...>
EOF
docker-compose up -d