chrismou/phergie-irc-plugin-react-weather

Phergie plugin for returning weather information for a given location

v2.1.0 2016-01-01 23:30 UTC

README

Phergie plugin for returning weather information for a given location.

Build Status Test Coverage Code Climate Buy me a beer

About

This plugin provides a method for performing weather lookups for a specified town/city/zip code. OpenWeatherMap, the default provider, simply requires a location to search on, whereas the Wunderground provider requires a location and a country. Future providers may have similar inconsistencies, but if you're using the CommandHelp plugin you should always be able to find the correct syntax for your provider of choice by by running "help weather" from within IRC.

Install

The recommended method of installation is through composer.

composer require chrismou/phergie-irc-plugin-react-weather

See Phergie documentation for more information on installing and enabling plugins.

Configuration

This plugin requires the Command plugin to recognise commands, and the http plugin to query Google for your search results.

If you're new to Phergie or Phergie plugins, see the Phergie setup instructions for more information. Otherwise, add the following references to your config file:

return array(
	// ...
    'plugins' => array(
		new \Phergie\Irc\Plugin\React\Command\Plugin,   // dependency
		new \Phergie\Plugin\Dns\Plugin,                 // dependency
		new \Phergie\Plugin\Http\Plugin,                // dependency
		new \Chrismou\Phergie\Plugin\Weather\Plugin(array(
        
            "config" => array("appId" => "YOUR_APP_ID")
        
        ))
	)
)

The default provider is OpenWeatherSearch, which requires a free api key to use (you can get one from here). To use OpenWeatherMap, you only need to provide the API key.

There's also a Weather Underground provider included. It's a bit of a work in progress - it currently requires a city and country and tends to not find the location as often - but it does work. If you think you can improve it, feel free to fork/fix/pull request or send me your suggestions. :)

Weather underground also requires an API key, which can you get for free from here. You'll also need to specify you're using this provider in your Phergie config:

new \Chrismou\Phergie\Plugin\Weather\Plugin(array(
	
	'provider' => 'Chrismou\\Phergie\\Plugin\\Weather\\Provider\\Wunderground',
    "config" => array("appId" => "YOUR_APP_ID")

))

Or if you know of any other weather services, you can write your own - feel free to fork and improve!

Current request limits:

  • Open Weather Map: 4,000,000/day (max. 3000/min)
  • Weather Underground: 500/day (max. 10/min)

Tests

To run the unit test suite:

curl -s https://getcomposer.org/installer | php
php composer.phar install
./vendor/bin/phpunit

If you use docker, you can also run the test suite against all supported PHP versions:

./vendor/bin/dunit

License

Released under the BSD License. See LICENSE.