SideNotifyer/message_controller.py

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("테스트 타이틀", "테스트 본문입니다.")