forked from platypush/platypush
Removed DarkSky integration.
The API has gone and it's been merged into Apple Weather.
This commit is contained in:
parent
674c1036c5
commit
eec2908cc2
4 changed files with 0 additions and 299 deletions
|
@ -1,23 +0,0 @@
|
|||
from platypush.backend.weather import WeatherBackend
|
||||
|
||||
|
||||
class WeatherDarkskyBackend(WeatherBackend):
|
||||
"""
|
||||
Weather forecast backend that leverages the DarkSky API.
|
||||
|
||||
Requires:
|
||||
|
||||
* The :class:`platypush.plugins.weather.darksky.WeatherDarkskyPlugin` plugin configured
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, poll_seconds: int = 300, **kwargs):
|
||||
"""
|
||||
:param poll_seconds: How often the backend should check for updates (default: every 5 minutes).
|
||||
"""
|
||||
super().__init__(
|
||||
plugin_name='weather.darksky', poll_seconds=poll_seconds, **kwargs
|
||||
)
|
||||
|
||||
|
||||
# vim:sw=4:ts=4:et:
|
|
@ -1,8 +0,0 @@
|
|||
manifest:
|
||||
events:
|
||||
platypush.message.event.weather.NewWeatherConditionEvent: when there is a weather
|
||||
condition update
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.backend.weather.darksky
|
||||
type: backend
|
|
@ -1,262 +0,0 @@
|
|||
from platypush.plugins import action
|
||||
from platypush.plugins.http.request import HttpRequestPlugin
|
||||
from platypush.plugins.weather import WeatherPlugin
|
||||
|
||||
|
||||
class WeatherDarkskyPlugin(HttpRequestPlugin, WeatherPlugin):
|
||||
"""
|
||||
Plugin for getting weather updates through Darksky API.
|
||||
|
||||
**NOTE**: Shortly after being acquired by Apple, Darksky has [shut down their API](https://darksky.net/dev).
|
||||
If you have an API token already then it should keep working until the end of 2021, but no new signups are allowed -
|
||||
and yet again Apple hasn't lost a chance to stand against the developers.
|
||||
|
||||
Please use the :class:`platypush.plugins.weather.openweathermap.WeatherOpenweathermapPlugin` plugin instead of this.
|
||||
"""
|
||||
|
||||
def __init__(self, darksky_token, lat, long, units='si', **kwargs):
|
||||
"""
|
||||
:param darksky_token: Your token for using the Darksky API, see https://darksky.net/dev
|
||||
:type darksky_token: str
|
||||
|
||||
:param lat: Default forecast latitude
|
||||
:type lat: float
|
||||
|
||||
:param long: Default forecast longitude
|
||||
:type long: float
|
||||
|
||||
:param units: Weather units (default: "si").
|
||||
|
||||
Supported units:
|
||||
|
||||
* **si** (international system)
|
||||
* **us** (US imperial units)
|
||||
* **uk** (UK imperial units)
|
||||
* **ca** (Canada imperial units)
|
||||
|
||||
:type units: str
|
||||
"""
|
||||
|
||||
super().__init__(method='get', output='json', **kwargs)
|
||||
self.darksky_token = darksky_token
|
||||
self.units = units
|
||||
self.lat = lat
|
||||
self.long = long
|
||||
self.latest_bulletin = {}
|
||||
|
||||
def _get_url(self, lat=None, long=None):
|
||||
return 'https://api.darksky.net/forecast/{}/{},{}?units={}'. \
|
||||
format(self.darksky_token, (lat or self.lat), (long or self.long),
|
||||
self.units)
|
||||
|
||||
@action
|
||||
def get_current_weather(self, lat=None, long=None, **kwargs):
|
||||
"""
|
||||
Get the current weather.
|
||||
|
||||
:param lat: Weather latitude (default: configured latitude)
|
||||
:type lat: float
|
||||
|
||||
:param long: Weather longitude (default: configured longitude)
|
||||
:type long: float
|
||||
|
||||
:returns: A dictionary containing the current weather object.
|
||||
|
||||
Example output::
|
||||
|
||||
output = {
|
||||
"time": 1529947892,
|
||||
"summary": "Mostly Cloudy",
|
||||
"icon": "partly-cloudy-day",
|
||||
"precipIntensity": 0.0483,
|
||||
"precipProbability": 0.04,
|
||||
"precipType": "rain",
|
||||
"temperature": 27.94,
|
||||
"apparentTemperature": 29.6,
|
||||
"dewPoint": 20.01,
|
||||
"humidity": 0.62,
|
||||
"pressure": 1009.34,
|
||||
"windSpeed": 1.83,
|
||||
"windGust": 5.49,
|
||||
"windBearing": 192,
|
||||
"cloudCover": 0.66,
|
||||
"uvIndex": 0,
|
||||
"visibility": 16.09,
|
||||
"ozone": 273.74
|
||||
}
|
||||
"""
|
||||
|
||||
response = self.get(self._get_url(lat, long))
|
||||
return response.output['currently']
|
||||
|
||||
@action
|
||||
def get_hourly_forecast(self, lat=None, long=None):
|
||||
"""
|
||||
Get the hourly forecast.
|
||||
|
||||
:param lat: Weather latitude (default: configured latitude)
|
||||
:type lat: float
|
||||
|
||||
:param long: Weather longitude (default: configured longitude)
|
||||
:type long: float
|
||||
|
||||
:returns: A forecast object.
|
||||
|
||||
Example output::
|
||||
|
||||
output = {
|
||||
"summary": "Partly cloudy starting tomorrow morning, continuing until tomorrow evening.",
|
||||
"icon": "partly-cloudy-day",
|
||||
"data": [
|
||||
{
|
||||
"time": 1529946000,
|
||||
"summary": "Clear",
|
||||
"icon": "clear-day",
|
||||
"precipIntensity": 0,
|
||||
"precipProbability": 0,
|
||||
"temperature": 18.94,
|
||||
"apparentTemperature": 18.94,
|
||||
"dewPoint": 11.99,
|
||||
"humidity": 0.64,
|
||||
"pressure": 1025.53,
|
||||
"windSpeed": 5.1,
|
||||
"windGust": 6.22,
|
||||
"windBearing": 329,
|
||||
"cloudCover": 0.14,
|
||||
"uvIndex": 1,
|
||||
"visibility": 14.19,
|
||||
"ozone": 334.3
|
||||
},
|
||||
{
|
||||
"time": 1529949600,
|
||||
"summary": "Clear",
|
||||
"icon": "clear-day",
|
||||
"precipIntensity": 0,
|
||||
"precipProbability": 0,
|
||||
"temperature": 18.41,
|
||||
"apparentTemperature": 18.41,
|
||||
"dewPoint": 11.12,
|
||||
"humidity": 0.63,
|
||||
"pressure": 1025.54,
|
||||
"windSpeed": 4.6,
|
||||
"windGust": 6.18,
|
||||
"windBearing": 340,
|
||||
"cloudCover": 0.07,
|
||||
"uvIndex": 1,
|
||||
"visibility": 16.09,
|
||||
"ozone": 333.53
|
||||
},
|
||||
# ...
|
||||
}
|
||||
"""
|
||||
|
||||
response = self.get(self._get_url(lat, long))
|
||||
return response.output['hourly']
|
||||
|
||||
@action
|
||||
def get_daily_forecast(self, lat=None, long=None):
|
||||
"""
|
||||
Get the daily forecast.
|
||||
|
||||
:param lat: Weather latitude (default: configured latitude)
|
||||
:type lat: float
|
||||
|
||||
:param long: Weather longitude (default: configured longitude)
|
||||
:type long: float
|
||||
|
||||
:returns: A forecast object.
|
||||
|
||||
Example output::
|
||||
|
||||
"output": {
|
||||
"summary": "Light rain on Sunday, with high temperatures rising to 28°C on Sunday.",
|
||||
"icon": "rain",
|
||||
"data": [
|
||||
{
|
||||
"time": 1529877600,
|
||||
"summary": "Mostly cloudy until afternoon.",
|
||||
"icon": "partly-cloudy-day",
|
||||
"sunriseTime": 1529896835,
|
||||
"sunsetTime": 1529957280,
|
||||
"moonPhase": 0.42,
|
||||
"precipIntensity": 0,
|
||||
"precipIntensityMax": 0.0051,
|
||||
"precipIntensityMaxTime": 1529888400,
|
||||
"precipProbability": 0,
|
||||
"temperatureHigh": 20.04,
|
||||
"temperatureHighTime": 1529931600,
|
||||
"temperatureLow": 10.68,
|
||||
"temperatureLowTime": 1529982000,
|
||||
"apparentTemperatureHigh": 20.04,
|
||||
"apparentTemperatureHighTime": 1529931600,
|
||||
"apparentTemperatureLow": 10.68,
|
||||
"apparentTemperatureLowTime": 1529982000,
|
||||
"dewPoint": 12.18,
|
||||
"humidity": 0.77,
|
||||
"pressure": 1025.16,
|
||||
"windSpeed": 3.84,
|
||||
"windGust": 6.51,
|
||||
"windGustTime": 1529881200,
|
||||
"windBearing": 336,
|
||||
"cloudCover": 0.5,
|
||||
"uvIndex": 6,
|
||||
"uvIndexTime": 1529928000,
|
||||
"visibility": 14.08,
|
||||
"ozone": 331.24,
|
||||
"temperatureMin": 13.89,
|
||||
"temperatureMinTime": 1529960400,
|
||||
"temperatureMax": 20.04,
|
||||
"temperatureMaxTime": 1529931600,
|
||||
"apparentTemperatureMin": 13.89,
|
||||
"apparentTemperatureMinTime": 1529960400,
|
||||
"apparentTemperatureMax": 20.04,
|
||||
"apparentTemperatureMaxTime": 1529931600
|
||||
},
|
||||
{
|
||||
"time": 1529964000,
|
||||
"summary": "Partly cloudy throughout the day.",
|
||||
"icon": "partly-cloudy-day",
|
||||
"sunriseTime": 1529983261,
|
||||
"sunsetTime": 1530043677,
|
||||
"moonPhase": 0.45,
|
||||
"precipIntensity": 0,
|
||||
"precipIntensityMax": 0,
|
||||
"precipProbability": 0,
|
||||
"temperatureHigh": 20.95,
|
||||
"temperatureHighTime": 1530018000,
|
||||
"temperatureLow": 11.47,
|
||||
"temperatureLowTime": 1530064800,
|
||||
"apparentTemperatureHigh": 20.95,
|
||||
"apparentTemperatureHighTime": 1530018000,
|
||||
"apparentTemperatureLow": 11.47,
|
||||
"apparentTemperatureLowTime": 1530064800,
|
||||
"dewPoint": 10.19,
|
||||
"humidity": 0.69,
|
||||
"pressure": 1026.14,
|
||||
"windSpeed": 3.67,
|
||||
"windGust": 7.13,
|
||||
"windGustTime": 1530036000,
|
||||
"windBearing": 4,
|
||||
"cloudCover": 0.3,
|
||||
"uvIndex": 5,
|
||||
"uvIndexTime": 1530010800,
|
||||
"visibility": 16.09,
|
||||
"ozone": 328.59,
|
||||
"temperatureMin": 10.68,
|
||||
"temperatureMinTime": 1529982000,
|
||||
"temperatureMax": 20.95,
|
||||
"temperatureMaxTime": 1530018000,
|
||||
"apparentTemperatureMin": 10.68,
|
||||
"apparentTemperatureMinTime": 1529982000,
|
||||
"apparentTemperatureMax": 20.95,
|
||||
"apparentTemperatureMaxTime": 1530018000
|
||||
},
|
||||
# ...
|
||||
}
|
||||
"""
|
||||
|
||||
response = self.get(self._get_url(lat, long))
|
||||
return response.output['daily']
|
||||
|
||||
|
||||
# vim:sw=4:ts=4:et:
|
|
@ -1,6 +0,0 @@
|
|||
manifest:
|
||||
events: {}
|
||||
install:
|
||||
pip: []
|
||||
package: platypush.plugins.weather.darksky
|
||||
type: plugin
|
Loading…
Reference in a new issue