qrmbot
qrmbot copied to clipboard
qrm ham radio IRC bot and associated scripts
qrm IRC bot and command line tools
A collection of command line tools and wrapper scripts for the eggdrop IRC bot.
Eggdrop is an IRC bot written in C with a built-in TCL scripting environment. These IRC bot scripts are based around command-line tools written in perl with a TCL wrapper layer. The command line tools are designed to be standalone with VT220/ANSI terminal output, and have been adapted for IRC color output.
License
All original code is 2-clause BSD licensed. See LICENSE file.
The astro
program has portions derived from K1JT Joe Taylor's
wsjt program and is GPLv3 licensed. See COPYING file.
Usage
See the /r/amateurradio wiki page for qrm bot.
Dependencies
As tested on Debian:
-
curl
-
perl
-
perl-base
-
perl-modules
-
libastro-satpass-perl
(Astro::Coord::ECI
-- see instructions below) -
libclone-perl
-
libdate-manip-perl
-
libdatetime-format-strptime-perl
-
libdatetime-perl
-
libjson-perl
-
libmath-bigint-perl
-
libmath-round-perl
-
libswitch-perl
-
libtext-csv-perl
-
liburi-perl
-
libdbd-sqlite3-perl
-
libdbi-perl
-
libsqlite3-0
Building libastro-satpass-perl
$ sudo apt-get install git dh-make-perl apt-file
$ sudo apt-file update
$ git clone 'https://github.com/trwyant/perl-Astro-Coord-ECI.git'
$ cd perl-Astro-Coord-ECI
$ git checkout 'v00.077'
$ dh-make-perl --vcs none --build
Would you like to configure as much as possible automatically? yes
What approach do you want? manual
$ sudo dpkg -i ../libastro-satpass-perl_0.077-1_all.deb
Configuration files
-
$HOME/.aerisweather
-- API key for aerisweather.com -
$HOME/.aprs.fi
-- required aprs.fi API key foraprs
tool -
$HOME/.bitlyapikey
-- key for bit.ly API -
$HOME/.clublogapikey
-- API key for clublog.org -
$HOME/.coinmarketcapkey
-- API key for coinmarketcap.com -
$HOME/.darksky
-- API key for darksky.com -
$HOME/.deeplapikey
-- API key for deepl.com translation -
$HOME/.googleapikeys
-- key for Google APIs -
$HOME/.hamspotlogin
-- required login credentials for hamspots.net use -
$HOME/.imgurkey
-- API key for imgur.com -
$HOME/.nicks.csv
-- irc and reddit nicknames -- optional, will override repository data -
$HOME/.qrzlogin
-- required login credentials for qrz.com lookup -
$HOME/.wunderground
-- required API key for WUnderground weather lookup
Cache files / state
-
$HOME/.clublogusers.gz
-- cache of clublog.org user data -
$HOME/.cty.dat
-- cached DXCC data from country-files.com -
$HOME/.dmr-id-repeaters.csv
-- cache of DMR repeater IDs -
$HOME/.dmr-id-users.csv
-- cache of DMR user IDs -
$HOME/.hamspotcookies
-- HTTP cookies for hamspots.net session -
$HOME/.icao-types
-- cache of ICAO aircraft type data -
$HOME/.lotw-dates.txt
-- cached LOTW upload dates -
$HOME/.mostwanted.txt
-- cached DXCC "most wanted" data from clublog.org -
$HOME/.qrzcookies
-- HTTP cookies for qrz.com session -
$HOME/.spottimestamps
-- used for spots monitor mode; safe to remove -
$HOME/.qrmbot/cache/radmon.txt
-- cached rad monitor data; safe to remove -
$HOME/.qrmbot/db/spots.sqlite
-- database of user-added radio spots
Security
Reasonable precautions have been made to filter out or escape shell special characters and so forth, but this is not foolproof. I suggest running the bot inside a minimal chroot without any setuid binaries, or a suitable VM, as needed.
TODO
- Clean up and modularize TCL scripts
- Document how to use and configure TCL scripts
- ~~Accept other formats for
!setgeo
~~ - Use geo grid for
!activity
- Cleanup needed in
qrz
script - Add a preferred wx station in addition to
!setgeo
geo coords - If no callsign is specified with
!spots
use irc nick. - Requested by K1NZ:
!untappd
for beer info -- they are not giving out API keys. :( - ~~Add clublog log check or clublog log search~~
- Add clublog DXCC activity data
- ~~Add POTA~~
- Move dotfiles to a dot dir
- ~~Add clublog league status~~
- ~~Add free space path loss calculation using gnu units.~~
- Add wavelength and frequency calculation (free space and in-wire w/ velocity factor).
- ~~Add coax loss calculation by length, frequency/band and type.~~
- ~~Add nearest fires command from aeris wx api.~~
Contributors
- Chris K2CR
- AA4JQ
- Dan VK3DAN
- Josh W9VFR
- Oliver M6WRF
- Andrew KC2G
- Asara WX0R
- Jack WA6CR