NuWeather
A weather plugin for Limnoria. It supports multiple weather and geocoding backends:
Weather Backends
- OpenWeatherMap (default, API key required)
- weatherstack, formerly Apixu (current conditions only, API key required)
- Dark Sky (API key required, but new signups are no longer accepted)
Geocoding Backends
- OpenStreetMap Nominatim (default, no API key required)
- Google Maps (API key required)
- OpenCage (API key required)
Quick start
-
Pick your preferred weather backend:
config help plugins.NuWeather.defaultBackend
-
Grab an API key. OpenWeatherMap | weatherstack |
Dark Sky(new signups no longer accepted) -
Configure it:
/msg yourbot config plugins.NuWeather.apikeys.BACKENDNAME YOUR-API-KEY
-
Set your default weather location:
setweather <your-preferred-location>
-
Obtain weather:
weather [<optional location>]
Migrating from the Weather plugin
This plugin includes a script to migrate from the Weather plugin's SQLite DB to NuWeather's binary format.
$ ./weather-migrate.py -h
usage: weather-migrate [-h] infile outfile
Migrates user locations from the Weather plugin to NuWeather.
positional arguments:
infile input filename (BOT_DATA_DIR/Weather.db)
outfile output filename (e.g. BOT_DATA_DIR/NuWeather.db)
optional arguments:
-h, --help show this help message and exit
Migration instructions
-
If you have not loaded NuWeather previously, load the plugin for the first time so that config entries are populated.
-
Then, unload the plugin before running the migration script. You may also wish to make a backup of your current
NuWeather.db
if it is of any use. -
Run the script on the right files:
./weather-migrate.py BOT_DATA_DIR/Weather.db BOT_DATA_DIR/NuWeather.db
-
After performing the migration, set the
plugins.NuWeather.DBAddressingMode
option tonicks
(since the previous database tracks locations by nick):
config plugins.NuWeather.DBAddressingMode nicks
- Load the plugin again for these changes to take effect.
(If you're comfortable with re-creating your database from scratch, the other options tell NuWeather to save location by Supybot account (the default) or ident@host.)
Location lookup (Geocoding) backends
- weatherstack provides weather lookup by place name directly, and does not need further configuration.
- Dark Sky and OpenStreetMap backends use a separate service to translate place names into GPS coordinates, a process known as geocoding.
The default geocoding backend is OpenStreetMap's Nominatim; this can be configured via the plugins.NuWeather.geocodeBackend
option.
Other options include Google Maps and OpenCage. These may provide more relevant results for North America (e.g. US ZIP codes), but both require API keys: Google Maps (credit card required) | OpenCage
API keys for geocoding backends are configured as plugins.NuWeather.apikeys.BACKENDNAME
.