mirror of
https://github.com/home-assistant/core.git
synced 2025-07-07 13:27:09 +00:00
parent
56083c0c64
commit
0d3fa59d77
@ -89,7 +89,7 @@ class PushBulletNotificationService(BaseNotificationService):
|
||||
|
||||
if not targets:
|
||||
# Backward compatibility, notify all devices in own account
|
||||
self._push_data(filepath, message, title, url)
|
||||
self._push_data(filepath, message, title, self.pushbullet, url)
|
||||
_LOGGER.info("Sent notification to self")
|
||||
return
|
||||
|
||||
@ -104,7 +104,8 @@ class PushBulletNotificationService(BaseNotificationService):
|
||||
# Target is email, send directly, don't use a target object
|
||||
# This also seems works to send to all devices in own account
|
||||
if ttype == 'email':
|
||||
self._push_data(filepath, message, title, url, tname)
|
||||
self._push_data(filepath, message, title, url,
|
||||
self.pushbullet, tname)
|
||||
_LOGGER.info("Sent notification to email %s", tname)
|
||||
continue
|
||||
|
||||
@ -123,27 +124,27 @@ class PushBulletNotificationService(BaseNotificationService):
|
||||
# Attempt push_note on a dict value. Keys are types & target
|
||||
# name. Dict pbtargets has all *actual* targets.
|
||||
try:
|
||||
if url:
|
||||
self.pbtargets[ttype][tname].push_link(
|
||||
title, url, body=message)
|
||||
else:
|
||||
self.pbtargets[ttype][tname].push_note(title, message)
|
||||
self._push_data(filepath, message, title, url,
|
||||
self.pbtargets[ttype][tname])
|
||||
_LOGGER.info("Sent notification to %s/%s", ttype, tname)
|
||||
except KeyError:
|
||||
_LOGGER.error("No such target: %s/%s", ttype, tname)
|
||||
continue
|
||||
except self.pushbullet.errors.PushError:
|
||||
_LOGGER.error("Notify failed to: %s/%s", ttype, tname)
|
||||
continue
|
||||
|
||||
def _push_data(self, filepath, message, title, url, tname=None):
|
||||
if url:
|
||||
self.pushbullet.push_link(
|
||||
title, url, body=message, email=tname)
|
||||
elif filepath and self.hass.config.is_allowed_path(filepath):
|
||||
with open(filepath, "rb") as fileh:
|
||||
filedata = self.pushbullet.upload_file(fileh, filepath)
|
||||
self.pushbullet.push_file(title=title, body=message,
|
||||
**filedata)
|
||||
else:
|
||||
self.pushbullet.push_note(title, message, email=tname)
|
||||
def _push_data(self, filepath, message, title, url, pusher, tname=None):
|
||||
from pushbullet import PushError
|
||||
try:
|
||||
if url:
|
||||
pusher.push_link(title, url, body=message, email=tname)
|
||||
elif filepath and self.hass.config.is_allowed_path(filepath):
|
||||
with open(filepath, "rb") as fileh:
|
||||
filedata = self.pushbullet.upload_file(fileh, filepath)
|
||||
if filedata.get('file_type') == 'application/x-empty':
|
||||
_LOGGER.error("Failed to send an empty file.")
|
||||
return
|
||||
pusher.push_file(title=title, body=message, **filedata)
|
||||
else:
|
||||
pusher.push_note(title, message, email=tname)
|
||||
|
||||
except PushError as err:
|
||||
_LOGGER.error("Notify failed: %s", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user