diff options
author | Erik Johnston <erikj@matrix.org> | 2016-06-09 15:00:48 +0100 |
---|---|---|
committer | Erik Johnston <erikj@matrix.org> | 2016-06-09 15:00:48 +0100 |
commit | 5c69bee3f4b5bf1ae6c7f6c898f7b91c52df0ec4 (patch) | |
tree | 70f492094b7fb962a8161bd2304c6846b3ac3f40 /synapse/push/pusher.py | |
parent | 6b96b76674ddc3f830bca34f4a0bee6f09fdbd45 (diff) |
Imported Upstream version 0.16.0
Diffstat (limited to 'synapse/push/pusher.py')
-rw-r--r-- | synapse/push/pusher.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/synapse/push/pusher.py b/synapse/push/pusher.py new file mode 100644 index 00000000..de9c33b9 --- /dev/null +++ b/synapse/push/pusher.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Copyright 2014-2016 OpenMarket Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from httppusher import HttpPusher + +import logging +logger = logging.getLogger(__name__) + +# We try importing this if we can (it will fail if we don't +# have the optional email dependencies installed). We don't +# yet have the config to know if we need the email pusher, +# but importing this after daemonizing seems to fail +# (even though a simple test of importing from a daemonized +# process works fine) +try: + from synapse.push.emailpusher import EmailPusher +except: + pass + + +def create_pusher(hs, pusherdict): + logger.info("trying to create_pusher for %r", pusherdict) + + PUSHER_TYPES = { + "http": HttpPusher, + } + + logger.info("email enable notifs: %r", hs.config.email_enable_notifs) + if hs.config.email_enable_notifs: + PUSHER_TYPES["email"] = EmailPusher + logger.info("defined email pusher type") + + if pusherdict['kind'] in PUSHER_TYPES: + logger.info("found pusher") + return PUSHER_TYPES[pusherdict['kind']](hs, pusherdict) |