Move I/O to executor thread pool (#23589)
* Move I/O to executor thread pool * Check if image is in whitelist_external_dir * Move import to top of file * Fix bad indentation
This commit is contained in:
parent
d9d5c91adc
commit
beb678e259
1 changed files with 13 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
||||||
"""Discord platform for notify component."""
|
"""Discord platform for notify component."""
|
||||||
import logging
|
import logging
|
||||||
|
import os.path
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
@ -33,6 +34,13 @@ class DiscordNotificationService(BaseNotificationService):
|
||||||
self.token = token
|
self.token = token
|
||||||
self.hass = hass
|
self.hass = hass
|
||||||
|
|
||||||
|
def file_exists(self, filename):
|
||||||
|
"""Check if a file exists on disk and is in authorized path."""
|
||||||
|
if not self.hass.config.is_allowed_path(filename):
|
||||||
|
return False
|
||||||
|
|
||||||
|
return os.path.isfile(filename)
|
||||||
|
|
||||||
async def async_send_message(self, message, **kwargs):
|
async def async_send_message(self, message, **kwargs):
|
||||||
"""Login to Discord, send message to channel(s) and log out."""
|
"""Login to Discord, send message to channel(s) and log out."""
|
||||||
import discord
|
import discord
|
||||||
|
@ -49,11 +57,14 @@ class DiscordNotificationService(BaseNotificationService):
|
||||||
data = kwargs.get(ATTR_DATA)
|
data = kwargs.get(ATTR_DATA)
|
||||||
|
|
||||||
if ATTR_IMAGES in data:
|
if ATTR_IMAGES in data:
|
||||||
import os.path
|
|
||||||
images = list()
|
images = list()
|
||||||
|
|
||||||
for image in data.get(ATTR_IMAGES):
|
for image in data.get(ATTR_IMAGES):
|
||||||
if os.path.isfile(image):
|
image_exists = await self.hass.async_add_executor_job(
|
||||||
|
self.file_exists,
|
||||||
|
image)
|
||||||
|
|
||||||
|
if image_exists:
|
||||||
images.append(image)
|
images.append(image)
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning("Image not found: %s", image)
|
_LOGGER.warning("Image not found: %s", image)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue