Source code for notifiers.providers.popcornnotify

from ..core import Provider
from ..core import Response
from ..utils import requests
from ..utils.schema.helpers import list_to_commas
from ..utils.schema.helpers import one_or_more


[docs]class PopcornNotify(Provider): """Send PopcornNotify notifications""" base_url = "https://popcornnotify.com/notify" site_url = "https://popcornnotify.com/" name = "popcornnotify" path_to_errors = ("error",) _required = {"required": ["message", "api_key", "recipients"]} _schema = { "type": "object", "properties": { "message": {"type": "string", "title": "The message to send"}, "api_key": {"type": "string", "title": "The API key"}, "recipients": one_or_more( { "type": "string", "format": "email", "title": "The recipient email address or phone number." " Or an array of email addresses and phone numbers", } ), "subject": { "type": "string", "title": "The subject of the email. It will not be included in text messages.", }, }, } def _prepare_data(self, data: dict) -> dict: if isinstance(data["recipients"], str): data["recipients"] = [data["recipients"]] data["recipients"] = list_to_commas(data["recipients"]) return data def _send_notification(self, data: dict) -> Response: response, errors = requests.post( url=self.base_url, json=data, path_to_errors=self.path_to_errors ) return self.create_response(data, response, errors)