29 lines
883 B
Python
29 lines
883 B
Python
|
|
import logging
|
||
|
|
import re
|
||
|
|
|
||
|
|
from web.notifications.base import EmailProvider, SMSProvider
|
||
|
|
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
|
||
|
|
class ConsoleEmailProvider(EmailProvider):
|
||
|
|
def send(self, to: str, subject: str, html_body: str) -> None:
|
||
|
|
# Extract plain URLs from HTML for readability in dev logs
|
||
|
|
urls = re.findall(r'href=["\']([^"\']+)["\']', html_body)
|
||
|
|
logger.info("=" * 50)
|
||
|
|
logger.info("EMAIL")
|
||
|
|
logger.info("Кому: %s", to)
|
||
|
|
logger.info("Тема: %s", subject)
|
||
|
|
for url in urls:
|
||
|
|
logger.info("Ссылка: %s", url)
|
||
|
|
logger.info("=" * 50)
|
||
|
|
|
||
|
|
|
||
|
|
class ConsoleSMSProvider(SMSProvider):
|
||
|
|
def send(self, to: str, text: str) -> None:
|
||
|
|
logger.info("=" * 50)
|
||
|
|
logger.info("SMS")
|
||
|
|
logger.info("Номер: %s", to)
|
||
|
|
logger.info("Текст: %s", text)
|
||
|
|
logger.info("=" * 50)
|