mirror of https://github.com/caronc/apprise
Python 3.11 test env
parent
e9c621c1fb
commit
ca52674969
|
@ -11,6 +11,7 @@ __pycache__/
|
|||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
.bash_*
|
||||
env/
|
||||
.venv*
|
||||
build/
|
||||
|
|
|
@ -44,5 +44,9 @@ COPY dev-requirements.txt /
|
|||
ENV PYTHONPATH /apprise
|
||||
ENV PYTHONPYCACHEPREFIX /apprise/__pycache__/py310
|
||||
|
||||
|
||||
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 PYTHONPYCACHEPREFIX /apprise/__pycache__/py36
|
||||
|
||||
|
||||
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
|
||||
PushSafer
|
||||
Reddit
|
||||
RingCentral
|
||||
Rocket.Chat
|
||||
Ryver
|
||||
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
|
||||
| [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/
|
||||
| [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/
|
||||
| [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/
|
||||
|
|
|
@ -134,9 +134,14 @@ class NotifyRingCentral(NotifyBase):
|
|||
# Define object templates
|
||||
templates = (
|
||||
# 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}/{targets}',
|
||||
|
||||
# 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}/{targets}',
|
||||
)
|
||||
|
@ -150,6 +155,12 @@ class NotifyRingCentral(NotifyBase):
|
|||
'regex': (r'^[a-z0-9._-]+$', 'i'),
|
||||
'private': True,
|
||||
},
|
||||
'password': {
|
||||
'name': _('Password'),
|
||||
'type': 'string',
|
||||
'required': True,
|
||||
'private': True,
|
||||
},
|
||||
'client_id': {
|
||||
'name': _('Client ID'),
|
||||
'type': 'string',
|
||||
|
@ -214,7 +225,7 @@ class NotifyRingCentral(NotifyBase):
|
|||
'alias_of': 'token',
|
||||
},
|
||||
'secret': {
|
||||
'alias_of': 'client_secret',
|
||||
'alias_of': 'secret',
|
||||
},
|
||||
'mode': {
|
||||
# This is automatically detected
|
||||
|
|
|
@ -14,6 +14,13 @@ services:
|
|||
volumes:
|
||||
- ./:/apprise
|
||||
|
||||
test.py311:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.py311
|
||||
volumes:
|
||||
- ./:/apprise
|
||||
|
||||
rpmbuild.el8:
|
||||
build:
|
||||
context: .
|
||||
|
|
|
@ -50,10 +50,10 @@ LaMetric, Line, MacOSX, Mailgun, Mastodon, Mattermost, Matrix, MessageBird,
|
|||
Microsoft Windows, Microsoft Teams, Misskey, MQTT, MSG91, MyAndroid, Nexmo,
|
||||
Nextcloud, NextcloudTalk, Notica, Notifico, ntfy, Office365, OneSignal,
|
||||
Opsgenie, PagerDuty, PagerTree, ParsePlatform, PopcornNotify, Prowl, Pushalot,
|
||||
PushBullet, Pushjet, Pushover, PushSafer, Reddit, Rocket.Chat, SendGrid,
|
||||
ServerChan, Signal, SimplePush, Sinch, Slack, SMSEagle, SMTP2Go, Spontit,
|
||||
SparkPost, Super Toasty, Streamlabs, Stride, Syslog, Techulus Push, Telegram,
|
||||
Twilio, Twitter, Twist, XBMC, Voipms, Vonage, Webex Teams}
|
||||
PushBullet, Pushjet, Pushover, PushSafer, Reddit, RingCentral, Rocket.Chat,
|
||||
SendGrid, ServerChan, Signal, SimplePush, Sinch, Slack, SMSEagle, SMTP2Go,
|
||||
Spontit, SparkPost, Super Toasty, Streamlabs, Stride, Syslog, Techulus Push,
|
||||
Telegram, Twilio, Twitter, Twist, XBMC, Voipms, Vonage, Webex Teams}
|
||||
|
||||
Name: python-%{pypi_name}
|
||||
Version: 1.4.0
|
||||
|
|
Loading…
Reference in New Issue