Skip to content

jlu5/Limnoria-NuWeather

Repository files navigation

NuWeather

A weather plugin for Limnoria. It supports multiple weather and geocoding backends:

Weather Backends

Geocoding Backends

Air Quality Index Backends

Install

Due to technical limitations, installation via Limnoria's PluginDownloader or pip is currently unavailable.

Via Git checkout

Clone the Git repository somewhere and add the parent directory to your bot's config directories.plugins setting. Make sure the directory that you save the plugin to matches the plugin name:

$ git clone https://github.com/jlu5/Limnoria-NuWeather NuWeather

After cloning, you can update your copy of the plugin in place by entering the NuWeather directory and running:

$ git pull

Quick start

  1. Pick your preferred weather backend: config help plugins.NuWeather.defaultBackend

  2. Grab an API key. OpenWeatherMap | weatherstack | Pirate Weather

    • WWIS is another option that requires no API key, but is limited (in most countries) to major cities only
    • Note that for OpenWeatherMap this plugin uses the "Professional collections" APIs, not the OneCall 3.0 API!
  3. Configure it: /msg yourbot config plugins.NuWeather.apikeys.BACKENDNAME YOUR-API-KEY

  4. Set your default weather location: setweather <your-preferred-location>

  5. 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

  1. If you have not loaded NuWeather previously, load the plugin for the first time so that config entries are populated.

  2. 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.

  3. Run the script on the right files: ./weather-migrate.py BOT_DATA_DIR/Weather.db BOT_DATA_DIR/NuWeather.db

  4. After performing the migration, set the plugins.NuWeather.DBAddressingMode option to nicks (since the previous database tracks locations by nick):

config plugins.NuWeather.DBAddressingMode nicks
  1. 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 Limnoria account (the default) or ident@host.)

Location lookup (Geocoding) backends

  • weatherstack provides weather lookup by place name directly, and does not need further configuration.
  • OpenStreetMap, WWIS, and Pirate Weather 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:

API keys for geocoding backends are similarly configured as plugins.NuWeather.apikeys.BACKENDNAME.

About

Weather plugin for Limnoria, with multiple configurable backends

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published