|
|
@ -205,13 +205,23 @@ class NotifyTelegram(NotifyBase): |
|
|
|
'default': True, |
|
|
|
'default': True, |
|
|
|
'map_to': 'detect_owner', |
|
|
|
'map_to': 'detect_owner', |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
'silent': { |
|
|
|
|
|
|
|
'name': _('Silent Notification'), |
|
|
|
|
|
|
|
'type': 'bool', |
|
|
|
|
|
|
|
'default': False, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
'preview': { |
|
|
|
|
|
|
|
'name': _('Web Page Preview'), |
|
|
|
|
|
|
|
'type': 'bool', |
|
|
|
|
|
|
|
'default': False, |
|
|
|
|
|
|
|
}, |
|
|
|
'to': { |
|
|
|
'to': { |
|
|
|
'alias_of': 'targets', |
|
|
|
'alias_of': 'targets', |
|
|
|
}, |
|
|
|
}, |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, bot_token, targets, detect_owner=True, |
|
|
|
def __init__(self, bot_token, targets, detect_owner=True, |
|
|
|
include_image=False, **kwargs): |
|
|
|
include_image=False, silent=None, preview=None, **kwargs): |
|
|
|
""" |
|
|
|
""" |
|
|
|
Initialize Telegram Object |
|
|
|
Initialize Telegram Object |
|
|
|
""" |
|
|
|
""" |
|
|
@ -229,6 +239,14 @@ class NotifyTelegram(NotifyBase): |
|
|
|
# Parse our list |
|
|
|
# Parse our list |
|
|
|
self.targets = parse_list(targets) |
|
|
|
self.targets = parse_list(targets) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Define whether or not we should make audible alarms |
|
|
|
|
|
|
|
self.silent = self.template_args['silent']['default'] \ |
|
|
|
|
|
|
|
if silent is None else bool(silent) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Define whether or not we should display a web page preview |
|
|
|
|
|
|
|
self.preview = self.template_args['preview']['default'] \ |
|
|
|
|
|
|
|
if preview is None else bool(preview) |
|
|
|
|
|
|
|
|
|
|
|
# if detect_owner is set to True, we will attempt to determine who |
|
|
|
# if detect_owner is set to True, we will attempt to determine who |
|
|
|
# the bot owner is based on the first person who messaged it. This |
|
|
|
# the bot owner is based on the first person who messaged it. This |
|
|
|
# is not a fool proof way of doing things as over time Telegram removes |
|
|
|
# is not a fool proof way of doing things as over time Telegram removes |
|
|
@ -513,7 +531,12 @@ class NotifyTelegram(NotifyBase): |
|
|
|
'sendMessage' |
|
|
|
'sendMessage' |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
payload = {} |
|
|
|
payload = { |
|
|
|
|
|
|
|
# Notification Audible Control |
|
|
|
|
|
|
|
'disable_notification': self.silent, |
|
|
|
|
|
|
|
# Display Web Page Preview (if possible) |
|
|
|
|
|
|
|
'disable_web_page_preview': not self.preview, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Prepare Email Message |
|
|
|
# Prepare Email Message |
|
|
|
if self.notify_format == NotifyFormat.MARKDOWN: |
|
|
|
if self.notify_format == NotifyFormat.MARKDOWN: |
|
|
@ -717,6 +740,8 @@ class NotifyTelegram(NotifyBase): |
|
|
|
params = { |
|
|
|
params = { |
|
|
|
'image': self.include_image, |
|
|
|
'image': self.include_image, |
|
|
|
'detect': 'yes' if self.detect_owner else 'no', |
|
|
|
'detect': 'yes' if self.detect_owner else 'no', |
|
|
|
|
|
|
|
'silent': 'yes' if self.silent else 'no', |
|
|
|
|
|
|
|
'preview': 'yes' if self.preview else 'no', |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Extend our parameters |
|
|
|
# Extend our parameters |
|
|
@ -800,6 +825,15 @@ class NotifyTelegram(NotifyBase): |
|
|
|
# Store our bot token |
|
|
|
# Store our bot token |
|
|
|
results['bot_token'] = bot_token |
|
|
|
results['bot_token'] = bot_token |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Silent (Sends the message Silently); users will receive |
|
|
|
|
|
|
|
# notification with no sound. |
|
|
|
|
|
|
|
results['silent'] = \ |
|
|
|
|
|
|
|
parse_bool(results['qsd'].get('silent', False)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Show Web Page Preview |
|
|
|
|
|
|
|
results['preview'] = \ |
|
|
|
|
|
|
|
parse_bool(results['qsd'].get('preview', False)) |
|
|
|
|
|
|
|
|
|
|
|
# Include images with our message |
|
|
|
# Include images with our message |
|
|
|
results['include_image'] = \ |
|
|
|
results['include_image'] = \ |
|
|
|
parse_bool(results['qsd'].get('image', False)) |
|
|
|
parse_bool(results['qsd'].get('image', False)) |
|
|
|