39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
from src.pushbullet import Pushbullet
|
|
from src.telegram import Telegram
|
|
from src.email import Email
|
|
from src.sms import SMS
|
|
from src.synology_chat import SynologyChat
|
|
from src.naver_line import NaverLine
|
|
import logging
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
class MessageController:
|
|
def __init__(self, method, **credentials):
|
|
self.method = method.lower()
|
|
self.credentials = credentials
|
|
self.message_service = self.create_service()
|
|
|
|
def create_service(self):
|
|
if self.method == 'pushbullet':
|
|
return Pushbullet(self.credentials['access_token'])
|
|
elif self.method == 'telegram':
|
|
return Telegram(self.credentials['api_key'])
|
|
elif self.method == 'email':
|
|
return Email(self.credentials['user'], self.credentials['password'])
|
|
elif self.method == 'sms':
|
|
return SMS(self.credentials['api_key'])
|
|
elif self.method == 'synology_chat':
|
|
return SynologyChat(self.credentials['url'], self.credentials['token'])
|
|
elif self.method == 'naver_line':
|
|
return NaverLine(self.credentials['access_token'])
|
|
else:
|
|
raise ValueError("지원하지 않는 메시지 전송 방식입니다.")
|
|
|
|
def send_message(self, title, body):
|
|
print(f"{self.method.title()}를 통해 메시지를 보내는 중...")
|
|
self.message_service.send_message(title, body)
|
|
|
|
def test_message(self):
|
|
self.send_message("테스트 타이틀", "테스트 본문입니다.")
|