mirror of https://github.com/caronc/apprise
Python 3.11 test env
parent
e9c621c1fb
commit
ca52674969
|
@ -11,6 +11,7 @@ __pycache__/
|
||||||
|
|
||||||
# Distribution / packaging
|
# Distribution / packaging
|
||||||
.Python
|
.Python
|
||||||
|
.bash_*
|
||||||
env/
|
env/
|
||||||
.venv*
|
.venv*
|
||||||
build/
|
build/
|
||||||
|
|
|
@ -44,5 +44,9 @@ COPY dev-requirements.txt /
|
||||||
ENV PYTHONPATH /apprise
|
ENV PYTHONPATH /apprise
|
||||||
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py310
|
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py310
|
||||||
|
|
||||||
|
|
||||||
RUN pip install -r /requirements.txt -r /dev-requirements.txt
|
RUN pip install -r /requirements.txt -r /dev-requirements.txt
|
||||||
|
|
||||||
|
RUN addgroup --gid ${USER_GID:-1000} apprise
|
||||||
|
RUN adduser --system --uid ${USER_UID:-1000} --ingroup apprise --home /apprise --no-create-home --disabled-password apprise
|
||||||
|
|
||||||
|
USER apprise
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# BSD 3-Clause License
|
||||||
|
#
|
||||||
|
# Apprise - Push Notification Library.
|
||||||
|
# Copyright (c) 2023, Chris Caron <lead2gold@gmail.com>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
#
|
||||||
|
# 3. Neither the name of the copyright holder nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived from
|
||||||
|
# this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||||
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
# Base
|
||||||
|
FROM python:3.11-buster
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y libdbus-1-dev libgirepository1.0-dev build-essential musl-dev bash
|
||||||
|
RUN pip install dbus-python PyGObject
|
||||||
|
|
||||||
|
# Apprise Setup
|
||||||
|
VOLUME ["/apprise"]
|
||||||
|
WORKDIR /apprise
|
||||||
|
COPY requirements.txt /
|
||||||
|
COPY dev-requirements.txt /
|
||||||
|
ENV PYTHONPATH /apprise
|
||||||
|
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py311
|
||||||
|
|
||||||
|
RUN pip install -r /requirements.txt -r /dev-requirements.txt
|
||||||
|
|
||||||
|
RUN addgroup --gid ${USER_GID:-1000} apprise
|
||||||
|
RUN adduser --system --uid ${USER_UID:-1000} --ingroup apprise --home /apprise --no-create-home --disabled-password apprise
|
||||||
|
|
||||||
|
USER apprise
|
|
@ -44,5 +44,9 @@ COPY dev-requirements.txt /
|
||||||
ENV PYTHONPATH /apprise
|
ENV PYTHONPATH /apprise
|
||||||
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py36
|
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py36
|
||||||
|
|
||||||
|
|
||||||
RUN pip install -r /requirements.txt -r /dev-requirements.txt
|
RUN pip install -r /requirements.txt -r /dev-requirements.txt
|
||||||
|
|
||||||
|
RUN addgroup --gid ${USER_GID:-1000} apprise
|
||||||
|
RUN adduser --system --uid ${USER_UID:-1000} --ingroup apprise --home /apprise --no-create-home --disabled-password apprise
|
||||||
|
|
||||||
|
USER apprise
|
||||||
|
|
1
KEYWORDS
1
KEYWORDS
|
@ -61,6 +61,7 @@ Push Notifications
|
||||||
Pushover
|
Pushover
|
||||||
PushSafer
|
PushSafer
|
||||||
Reddit
|
Reddit
|
||||||
|
RingCentral
|
||||||
Rocket.Chat
|
Rocket.Chat
|
||||||
Ryver
|
Ryver
|
||||||
SendGrid
|
SendGrid
|
||||||
|
|
|
@ -137,6 +137,7 @@ The table below identifies the services this tool supports and some example serv
|
||||||
| [Kavenegar](https://github.com/caronc/apprise/wiki/Notify_kavenegar) | kavenegar:// | (TCP) 443 | kavenegar://ApiKey/ToPhoneNo<br/>kavenegar://FromPhoneNo@ApiKey/ToPhoneNo<br/>kavenegar://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
|
| [Kavenegar](https://github.com/caronc/apprise/wiki/Notify_kavenegar) | kavenegar:// | (TCP) 443 | kavenegar://ApiKey/ToPhoneNo<br/>kavenegar://FromPhoneNo@ApiKey/ToPhoneNo<br/>kavenegar://ApiKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN
|
||||||
| [MessageBird](https://github.com/caronc/apprise/wiki/Notify_messagebird) | msgbird:// | (TCP) 443 | msgbird://ApiKey/FromPhoneNo<br/>msgbird://ApiKey/FromPhoneNo/ToPhoneNo<br/>msgbird://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
| [MessageBird](https://github.com/caronc/apprise/wiki/Notify_messagebird) | msgbird:// | (TCP) 443 | msgbird://ApiKey/FromPhoneNo<br/>msgbird://ApiKey/FromPhoneNo/ToPhoneNo<br/>msgbird://ApiKey/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
||||||
| [MSG91](https://github.com/caronc/apprise/wiki/Notify_msg91) | msg91:// | (TCP) 443 | msg91://AuthKey/ToPhoneNo<br/>msg91://SenderID@AuthKey/ToPhoneNo<br/>msg91://AuthKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
| [MSG91](https://github.com/caronc/apprise/wiki/Notify_msg91) | msg91:// | (TCP) 443 | msg91://AuthKey/ToPhoneNo<br/>msg91://SenderID@AuthKey/ToPhoneNo<br/>msg91://AuthKey/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
||||||
|
| [RingCentral](https://github.com/caronc/apprise/wiki/Notify_ringcentral) | ringc:// | (TCP) 443 | ringc://SourcePhoneNo:JWTToken@ClientID/ClientSecret<br/>ringc://SourcePhoneNo:JWTToken@ClientID/ClientSecret/ToPhoneNo<br/>ringc://SourcePhoneNo:JWTToken@ClientID/ClientSecret/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
||||||
| [Signal API](https://github.com/caronc/apprise/wiki/Notify_signal) | signal:// or signals:// | (TCP) 80 or 443 | signal://hostname:port/FromPhoneNo<br/>signal://hostname:port/FromPhoneNo/ToPhoneNo<br/>signal://hostname:port/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
| [Signal API](https://github.com/caronc/apprise/wiki/Notify_signal) | signal:// or signals:// | (TCP) 80 or 443 | signal://hostname:port/FromPhoneNo<br/>signal://hostname:port/FromPhoneNo/ToPhoneNo<br/>signal://hostname:port/FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
||||||
| [Sinch](https://github.com/caronc/apprise/wiki/Notify_sinch) | sinch:// | (TCP) 443 | sinch://ServicePlanId:ApiToken@FromPhoneNo<br/>sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo<br/>sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/<br/>sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo<br/>sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
| [Sinch](https://github.com/caronc/apprise/wiki/Notify_sinch) | sinch:// | (TCP) 443 | sinch://ServicePlanId:ApiToken@FromPhoneNo<br/>sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo<br/>sinch://ServicePlanId:ApiToken@FromPhoneNo/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/<br/>sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo<br/>sinch://ServicePlanId:ApiToken@ShortCode/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/
|
||||||
| [SMSEagle](https://github.com/caronc/apprise/wiki/Notify_smseagle) | smseagle:// or smseagles:// | (TCP) 80 or 443 | smseagles://hostname:port/ToPhoneNo<br/>smseagles://hostname:port/@ToContact<br/>smseagles://hostname:port/#ToGroup<br/>smseagles://hostname:port/ToPhoneNo1/#ToGroup/@ToContact/
|
| [SMSEagle](https://github.com/caronc/apprise/wiki/Notify_smseagle) | smseagle:// or smseagles:// | (TCP) 80 or 443 | smseagles://hostname:port/ToPhoneNo<br/>smseagles://hostname:port/@ToContact<br/>smseagles://hostname:port/#ToGroup<br/>smseagles://hostname:port/ToPhoneNo1/#ToGroup/@ToContact/
|
||||||
|
|
|
@ -134,9 +134,14 @@ class NotifyRingCentral(NotifyBase):
|
||||||
# Define object templates
|
# Define object templates
|
||||||
templates = (
|
templates = (
|
||||||
# Auth
|
# Auth
|
||||||
|
'{schema}://{from_phone}:{password}@{client_id}/{secret}/',
|
||||||
|
'{schema}://{from_phone}:{password}@{client_id}/{secret}/{targets}',
|
||||||
'{schema}://{password}@{client_id}/{secret}/{from_phone}',
|
'{schema}://{password}@{client_id}/{secret}/{from_phone}',
|
||||||
'{schema}://{password}@{client_id}/{secret}/{from_phone}/{targets}',
|
'{schema}://{password}@{client_id}/{secret}/{from_phone}/{targets}',
|
||||||
|
|
||||||
# JWT
|
# JWT
|
||||||
|
'{schema}://{from_phone}:{token}@{client_id}/{secret}/',
|
||||||
|
'{schema}://{from_phone}:{token}@{client_id}/{secret}/{targets}',
|
||||||
'{schema}://{token}@{client_id}/{secret}/{from_phone}',
|
'{schema}://{token}@{client_id}/{secret}/{from_phone}',
|
||||||
'{schema}://{token}@{client_id}/{secret}/{from_phone}/{targets}',
|
'{schema}://{token}@{client_id}/{secret}/{from_phone}/{targets}',
|
||||||
)
|
)
|
||||||
|
@ -150,6 +155,12 @@ class NotifyRingCentral(NotifyBase):
|
||||||
'regex': (r'^[a-z0-9._-]+$', 'i'),
|
'regex': (r'^[a-z0-9._-]+$', 'i'),
|
||||||
'private': True,
|
'private': True,
|
||||||
},
|
},
|
||||||
|
'password': {
|
||||||
|
'name': _('Password'),
|
||||||
|
'type': 'string',
|
||||||
|
'required': True,
|
||||||
|
'private': True,
|
||||||
|
},
|
||||||
'client_id': {
|
'client_id': {
|
||||||
'name': _('Client ID'),
|
'name': _('Client ID'),
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
|
@ -214,7 +225,7 @@ class NotifyRingCentral(NotifyBase):
|
||||||
'alias_of': 'token',
|
'alias_of': 'token',
|
||||||
},
|
},
|
||||||
'secret': {
|
'secret': {
|
||||||
'alias_of': 'client_secret',
|
'alias_of': 'secret',
|
||||||
},
|
},
|
||||||
'mode': {
|
'mode': {
|
||||||
# This is automatically detected
|
# This is automatically detected
|
||||||
|
|
|
@ -14,6 +14,13 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/apprise
|
- ./:/apprise
|
||||||
|
|
||||||
|
test.py311:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile.py311
|
||||||
|
volumes:
|
||||||
|
- ./:/apprise
|
||||||
|
|
||||||
rpmbuild.el8:
|
rpmbuild.el8:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
|
|
|
@ -50,10 +50,10 @@ LaMetric, Line, MacOSX, Mailgun, Mastodon, Mattermost, Matrix, MessageBird,
|
||||||
Microsoft Windows, Microsoft Teams, Misskey, MQTT, MSG91, MyAndroid, Nexmo,
|
Microsoft Windows, Microsoft Teams, Misskey, MQTT, MSG91, MyAndroid, Nexmo,
|
||||||
Nextcloud, NextcloudTalk, Notica, Notifico, ntfy, Office365, OneSignal,
|
Nextcloud, NextcloudTalk, Notica, Notifico, ntfy, Office365, OneSignal,
|
||||||
Opsgenie, PagerDuty, PagerTree, ParsePlatform, PopcornNotify, Prowl, Pushalot,
|
Opsgenie, PagerDuty, PagerTree, ParsePlatform, PopcornNotify, Prowl, Pushalot,
|
||||||
PushBullet, Pushjet, Pushover, PushSafer, Reddit, Rocket.Chat, SendGrid,
|
PushBullet, Pushjet, Pushover, PushSafer, Reddit, RingCentral, Rocket.Chat,
|
||||||
ServerChan, Signal, SimplePush, Sinch, Slack, SMSEagle, SMTP2Go, Spontit,
|
SendGrid, ServerChan, Signal, SimplePush, Sinch, Slack, SMSEagle, SMTP2Go,
|
||||||
SparkPost, Super Toasty, Streamlabs, Stride, Syslog, Techulus Push, Telegram,
|
Spontit, SparkPost, Super Toasty, Streamlabs, Stride, Syslog, Techulus Push,
|
||||||
Twilio, Twitter, Twist, XBMC, Voipms, Vonage, Webex Teams}
|
Telegram, Twilio, Twitter, Twist, XBMC, Voipms, Vonage, Webex Teams}
|
||||||
|
|
||||||
Name: python-%{pypi_name}
|
Name: python-%{pypi_name}
|
||||||
Version: 1.4.0
|
Version: 1.4.0
|
||||||
|
|
Loading…
Reference in New Issue