Files
youtube-dl/lib/tool/notify.py

55 lines
2.8 KiB
Python
Raw Normal View History

2022-10-06 14:39:43 +09:00
import traceback
2022-10-07 01:48:42 +09:00
from datetime import datetime
2022-10-06 14:39:43 +09:00
from framework import F
2025-12-25 19:42:32 +09:00
from support import SupportDiscord, SupportTelegram, SupportYaml, SupportSlack
2022-10-06 14:39:43 +09:00
from . import logger
class ToolNotify(object):
2022-10-07 01:48:42 +09:00
@classmethod
2022-10-06 14:39:43 +09:00
def send_message(cls, text, message_id=None, image_url=None):
if F.SystemModelSetting.get_bool('notify_advaned_use'):
return cls.send_advanced_message(text, image_url=image_url, message_id=message_id)
else:
if F.SystemModelSetting.get_bool('notify_telegram_use'):
2022-10-07 01:48:42 +09:00
SupportTelegram.send_telegram_message(text, image_url=image_url, bot_token=F.SystemModelSetting.get('notify_telegram_token'), chat_id=F.SystemModelSetting.get('notify_telegram_chat_id'))
2022-10-06 14:39:43 +09:00
if F.SystemModelSetting.get_bool('notify_discord_use'):
2022-10-26 20:32:58 +09:00
SupportDiscord.send_discord_message(text, image_url=image_url, webhook_url=F.SystemModelSetting.get('notify_discord_webhook'))
2025-12-25 19:42:32 +09:00
if F.SystemModelSetting.get_bool('notify_slack_use'):
SupportSlack.send_slack_message(text, image_url=image_url, webhook_url=F.SystemModelSetting.get('notify_slack_webhook'))
2022-10-06 14:39:43 +09:00
@classmethod
2022-10-07 01:48:42 +09:00
def send_advanced_message(cls, text, image_url=None, policy=None, message_id=None):
2022-10-06 14:39:43 +09:00
try:
2022-10-07 01:48:42 +09:00
message_id = message_id.strip()
policy = SupportYaml.read_yaml(F.config['notify_yaml_filepath'])
if message_id is None or message_id not in policy:
2022-10-06 14:39:43 +09:00
message_id = 'DEFAULT'
2022-10-07 01:48:42 +09:00
now = datetime.now()
for item in policy[message_id]:
if item.get('enable_time') != None:
tmp = item.get('enable_time').split('-')
if now.hour < int(tmp[0]) or now.hour > int(tmp[1]):
2022-10-06 14:39:43 +09:00
continue
2022-10-07 01:48:42 +09:00
if item.get('type') == 'telegram':
if item.get('token', '') == '' or item.get('chat_id', '') == '':
continue
SupportTelegram.send_telegram_message(text, image_url=image_url, bot_token=item.get('token'), chat_id=item.get('chat_id'), disable_notification=item.get('disable_notification', False))
elif item.get('type') == 'discord':
if item.get('webhook', '') == '':
continue
2025-12-25 19:42:32 +09:00
SupportDiscord.send_discord_message(text, image_url=image_url, webhook_url=item.get('webhook'))
elif item.get('type') == 'slack':
if item.get('webhook', '') == '':
continue
SupportSlack.send_slack_message(text, image_url=image_url, webhook_url=item.get('webhook'))
2022-10-06 14:39:43 +09:00
return True
2025-12-25 19:42:32 +09:00
except Exception as e:
logger.error(f"Exception:{str(e)}")
2022-10-06 14:39:43 +09:00
logger.error(traceback.format_exc())
return False