chrismou / phergie-irc-plugin-react-weather
Phergie plugin for returning weather information for a given location
Requires
- php: >=5.5.0
- phergie/phergie-irc-bot-react: ~2.0
- phergie/phergie-irc-plugin-http: ~4.0
- phergie/phergie-irc-plugin-react-command: ~2.0
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phake/phake: 2.0.0-beta2
- phergie/phergie-irc-plugin-react-autojoin: ~2.0
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: *
- vectorface/dunit: ^2
Suggests
- phergie/phergie-irc-plugin-react-commandalias: set up aliases for bot commands
- phergie/phergie-irc-plugin-react-commandhelp: provides interactive help for commands
README
Phergie plugin for returning weather information for a given location.
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
.