Cisco Webex Teams (wxteams://) Life Cycle Support (#819)

This commit is contained in:
Chris Caron 2023-02-12 14:15:23 -05:00 committed by GitHub
parent 078ee799b0
commit b5a9c25e86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 5 deletions

View File

@ -95,7 +95,7 @@ class NotifyWebexTeams(NotifyBase):
service_url = 'https://webex.teams.com/'
# The default secure protocol
secure_protocol = 'wxteams'
secure_protocol = ('wxteams', 'webex')
# A URL that takes you to the setup/help of the specific protocol
setup_url = 'https://github.com/caronc/apprise/wiki/Notify_wxteams'
@ -124,7 +124,7 @@ class NotifyWebexTeams(NotifyBase):
'type': 'string',
'private': True,
'required': True,
'regex': (r'^[a-z0-9]{80}$', 'i'),
'regex': (r'^[a-z0-9]{80,160}$', 'i'),
},
})
@ -220,7 +220,7 @@ class NotifyWebexTeams(NotifyBase):
params = self.url_parameters(privacy=privacy, *args, **kwargs)
return '{schema}://{token}/?{params}'.format(
schema=self.secure_protocol,
schema=self.secure_protocol[0],
token=self.pprint(self.token, privacy, safe=''),
params=NotifyWebexTeams.urlencode(params),
)
@ -249,14 +249,15 @@ class NotifyWebexTeams(NotifyBase):
"""
result = re.match(
r'^https?://api\.ciscospark\.com/v[1-9][0-9]*/webhooks/incoming/'
r'^https?://(api\.ciscospark\.com|webexapis\.com)'
r'/v[1-9][0-9]*/webhooks/incoming/'
r'(?P<webhook_token>[A-Z0-9_-]+)/?'
r'(?P<params>\?.+)?$', url, re.I)
if result:
return NotifyWebexTeams.parse_url(
'{schema}://{webhook_token}/{params}'.format(
schema=NotifyWebexTeams.secure_protocol,
schema=NotifyWebexTeams.secure_protocol[0],
webhook_token=result.group('webhook_token'),
params='' if not result.group('params')
else result.group('params')))

View File

@ -57,11 +57,23 @@ apprise_url_tests = (
# Our expected url(privacy=True) startswith() response:
'privacy_url': 'wxteams://a...a/',
}),
('webex://{}'.format('a' * 140), {
# token provided - we're good
'instance': NotifyWebexTeams,
# Our expected url(privacy=True) startswith() response:
'privacy_url': 'wxteams://a...a/',
}),
# Support Native URLs
('https://api.ciscospark.com/v1/webhooks/incoming/{}'.format('a' * 80), {
# token provided - we're good
'instance': NotifyWebexTeams,
}),
# Support New Native URLs
('https://webexapis.com/v1/webhooks/incoming/{}'.format('a' * 100), {
# token provided - we're good
'instance': NotifyWebexTeams,
}),
# Support Native URLs with arguments
('https://api.ciscospark.com/v1/webhooks/incoming/{}?format=text'.format(
'a' * 80), {