Sign inSign up

liiight/notifiers

By liiight

•Updated over 1 year ago

The easy way to send notifications!

Image
Developer tools
1

552

liiight/notifiers repository overview

⁠Notifiers

Full logo

Travis CI ⁠ Codecov ⁠ image ⁠ PyPi version ⁠ Supported Python versions ⁠ License ⁠ Status ⁠ Docker build ⁠ RTD ⁠ Paypal ⁠ Downloads Twitter Follow ⁠

See Releases⁠ for recent changes

Got an app or service and you want to enable your users to use notifications with their provider of choice? Working on a script and you want to receive notification based on its output? You don't need to implement a solution yourself, or use individual provider libs. A one stop shop for all notification providers with a unified and simple interface.

⁠Supported providers

Pushover⁠, SimplePush⁠, Slack⁠, Gmail⁠, Email (SMTP), Telegram⁠, Gitter⁠, Pushbullet⁠, Join⁠, Hipchat⁠, Zulip⁠, Twilio⁠, Pagerduty⁠, Mailgun⁠, PopcornNotify⁠, StatusPage.io⁠

⁠Advantages

  • Spend your precious time on your own code base, instead of chasing down 3rd party provider APIs. That's what we're here for!
  • With a minimal set of well known and stable dependencies (requests⁠, jsonschema⁠ and click⁠) you're better off than installing 3rd party SDKs.
  • A unified interface means that you already support any new providers that will be added, no more work needed!
  • Thorough testing means protection against any breaking API changes. We make sure your code your notifications will always get delivered!

⁠Installation

Via pip:

$ pip install notifiers

Or Dockerhub:

$ docker pull liiight/notifiers

⁠Basic Usage

>>> from notifiers import get_notifier
>>> p = get_notifier('pushover')
>>> p.required
{'required': ['user', 'message', 'token']}
>>> p.notify(user='foo', token='bar', message='test')
<NotificationResponse,provider=Pushover,status=Success>

⁠From CLI

$ notifiers pushover notify --user foo --token baz "This is so easy!"

⁠As a logger

Directly add to your existing stdlib logging:

>>> import logging
>>> from notifiers.logging import NotificationHandler

>>> log = logging.getLogger(__name__)

>>> defaults = {
        'token': 'foo,
        'user': 'bar
    }
>>> hdlr = NotificationHandler('pushover', defaults=defaults)
>>> hdlr.setLevel(logging.ERROR)

>>> log.addHandler(hdlr)
>>> log.error('And just like that, you get notified about all your errors!')

⁠Mentions

⁠In the near future

  • Many more providers!
  • Low level providers (Amazon SNS, Google FCM, OS Toast messages) via extra dependencies

See Docs⁠ for more information

⁠Donations

If you like this and want to buy me a cup of coffee, please click the donation button above or click this link⁠ ☕

Tag summary

Content type

Image

Digest

sha256:6a19b963b…

Size

65.7 MB

Last updated

over 1 year ago

docker pull liiight/notifiers