From 89336f8105218c0a0fc0e7a1656a33859a05a8de Mon Sep 17 00:00:00 2001 From: Chris Caron Date: Wed, 22 Jul 2020 21:37:06 -0400 Subject: [PATCH] requests timeouts are now enforced (#255) --- apprise/URLBase.py | 17 +++++++++++++++++ apprise/attachment/AttachHTTP.py | 6 +----- apprise/config/ConfigHTTP.py | 6 +----- apprise/plugins/NotifyBoxcar.py | 1 + apprise/plugins/NotifyClickSend.py | 1 + apprise/plugins/NotifyD7Networks.py | 1 + apprise/plugins/NotifyDiscord.py | 1 + apprise/plugins/NotifyEmby.py | 4 ++++ apprise/plugins/NotifyEnigma2.py | 1 + apprise/plugins/NotifyFaast.py | 1 + apprise/plugins/NotifyFlock.py | 1 + apprise/plugins/NotifyGitter.py | 1 + apprise/plugins/NotifyGotify.py | 9 +++++---- apprise/plugins/NotifyIFTTT.py | 1 + apprise/plugins/NotifyJSON.py | 1 + apprise/plugins/NotifyJoin.py | 1 + apprise/plugins/NotifyKavenegar.py | 1 + apprise/plugins/NotifyKumulos.py | 1 + apprise/plugins/NotifyMSG91.py | 1 + apprise/plugins/NotifyMSTeams.py | 1 + apprise/plugins/NotifyMailgun.py | 1 + apprise/plugins/NotifyMatrix.py | 2 ++ apprise/plugins/NotifyMatterMost.py | 1 + apprise/plugins/NotifyMessageBird.py | 1 + apprise/plugins/NotifyNexmo.py | 1 + apprise/plugins/NotifyNextcloud.py | 1 + apprise/plugins/NotifyNotica.py | 1 + apprise/plugins/NotifyNotifico.py | 1 + apprise/plugins/NotifyOffice365.py | 1 + apprise/plugins/NotifyProwl.py | 1 + apprise/plugins/NotifyPushBullet.py | 1 + apprise/plugins/NotifyPushSafer.py | 1 + apprise/plugins/NotifyPushed.py | 1 + apprise/plugins/NotifyPushjet.py | 1 + apprise/plugins/NotifyPushover.py | 1 + apprise/plugins/NotifyRocketChat.py | 3 +++ apprise/plugins/NotifyRyver.py | 1 + apprise/plugins/NotifySNS.py | 1 + apprise/plugins/NotifySendGrid.py | 1 + apprise/plugins/NotifySimplePush.py | 1 + apprise/plugins/NotifySinch.py | 1 + apprise/plugins/NotifySlack.py | 1 + apprise/plugins/NotifyTechulusPush.py | 1 + apprise/plugins/NotifyTelegram.py | 3 +++ apprise/plugins/NotifyTwilio.py | 1 + apprise/plugins/NotifyTwist.py | 8 ++++++-- apprise/plugins/NotifyTwitter.py | 4 +++- apprise/plugins/NotifyWebexTeams.py | 1 + apprise/plugins/NotifyXBMC.py | 1 + apprise/plugins/NotifyXML.py | 1 + apprise/plugins/NotifyZulip.py | 1 + 51 files changed, 86 insertions(+), 17 deletions(-) diff --git a/apprise/URLBase.py b/apprise/URLBase.py index 4d62b82c..6386724b 100644 --- a/apprise/URLBase.py +++ b/apprise/URLBase.py @@ -98,6 +98,16 @@ class URLBase(object): # Throttle request_rate_per_sec = 0 + # The connect timeout is the number of seconds Requests will wait for your + # client to establish a connection to a remote machine (corresponding to + # the connect()) call on the socket. + request_connect_timeout = 4.0 + + # The read timeout is the number of seconds the client will wait for the + # server to send a response. + request_read_timeout = 2.5 + + # Handle # Maintain a set of tags to associate with this specific notification tags = set() @@ -466,6 +476,13 @@ class URLBase(object): def app_url(self): return self.asset.app_url + @property + def request_timeout(self): + """This is primarily used to fullfill the `timeout` keyword argument + that is used by requests.get() and requests.put() calls. + """ + return (self.request_connect_timeout, self.request_read_timeout) + @staticmethod def parse_url(url, verify_host=True): """Parses the URL and returns it broken apart into a dictionary. diff --git a/apprise/attachment/AttachHTTP.py b/apprise/attachment/AttachHTTP.py index 4177b7a9..6cc17eea 100644 --- a/apprise/attachment/AttachHTTP.py +++ b/apprise/attachment/AttachHTTP.py @@ -47,10 +47,6 @@ class AttachHTTP(AttachBase): # The default secure protocol secure_protocol = 'https' - # The maximum number of seconds to wait for a connection to be established - # before out-right just giving up - connection_timeout_sec = 5.0 - # The number of bytes in memory to read from the remote source at a time chunk_size = 8192 @@ -129,7 +125,7 @@ class AttachHTTP(AttachBase): auth=auth, params=self.qsd, verify=self.verify_certificate, - timeout=self.connection_timeout_sec, + timeout=self.request_timeout, stream=True) as r: # Handle Errors diff --git a/apprise/config/ConfigHTTP.py b/apprise/config/ConfigHTTP.py index 0e260b2b..11f5be1b 100644 --- a/apprise/config/ConfigHTTP.py +++ b/apprise/config/ConfigHTTP.py @@ -58,10 +58,6 @@ class ConfigHTTP(ConfigBase): # The default secure protocol secure_protocol = 'https' - # The maximum number of seconds to wait for a connection to be established - # before out-right just giving up - connection_timeout_sec = 5.0 - # If an HTTP error occurs, define the number of characters you still want # to read back. This is useful for debugging purposes, but nothing else. # The idea behind enforcing this kind of restriction is to prevent abuse @@ -185,7 +181,7 @@ class ConfigHTTP(ConfigBase): headers=headers, auth=auth, verify=self.verify_certificate, - timeout=self.connection_timeout_sec, + timeout=self.request_timeout, stream=True) as r: # Handle Errors diff --git a/apprise/plugins/NotifyBoxcar.py b/apprise/plugins/NotifyBoxcar.py index 24e9085b..4b70639f 100644 --- a/apprise/plugins/NotifyBoxcar.py +++ b/apprise/plugins/NotifyBoxcar.py @@ -279,6 +279,7 @@ class NotifyBoxcar(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) # Boxcar returns 201 (Created) when successful diff --git a/apprise/plugins/NotifyClickSend.py b/apprise/plugins/NotifyClickSend.py index 15204900..0da17d73 100644 --- a/apprise/plugins/NotifyClickSend.py +++ b/apprise/plugins/NotifyClickSend.py @@ -221,6 +221,7 @@ class NotifyClickSend(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyD7Networks.py b/apprise/plugins/NotifyD7Networks.py index 315157a4..2893fa79 100644 --- a/apprise/plugins/NotifyD7Networks.py +++ b/apprise/plugins/NotifyD7Networks.py @@ -304,6 +304,7 @@ class NotifyD7Networks(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( diff --git a/apprise/plugins/NotifyDiscord.py b/apprise/plugins/NotifyDiscord.py index 00b7c0cf..9178e21f 100644 --- a/apprise/plugins/NotifyDiscord.py +++ b/apprise/plugins/NotifyDiscord.py @@ -353,6 +353,7 @@ class NotifyDiscord(NotifyBase): headers=headers, files=files, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( requests.codes.ok, requests.codes.no_content): diff --git a/apprise/plugins/NotifyEmby.py b/apprise/plugins/NotifyEmby.py index 5ad1465e..79a46c4e 100644 --- a/apprise/plugins/NotifyEmby.py +++ b/apprise/plugins/NotifyEmby.py @@ -207,6 +207,7 @@ class NotifyEmby(NotifyBase): headers=headers, data=dumps(payload), verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: @@ -370,6 +371,7 @@ class NotifyEmby(NotifyBase): url, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: @@ -449,6 +451,7 @@ class NotifyEmby(NotifyBase): url, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( @@ -550,6 +553,7 @@ class NotifyEmby(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( requests.codes.ok, diff --git a/apprise/plugins/NotifyEnigma2.py b/apprise/plugins/NotifyEnigma2.py index 1aaafcf6..f61f21ff 100644 --- a/apprise/plugins/NotifyEnigma2.py +++ b/apprise/plugins/NotifyEnigma2.py @@ -269,6 +269,7 @@ class NotifyEnigma2(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyFaast.py b/apprise/plugins/NotifyFaast.py index 0aecf36a..f03224b3 100644 --- a/apprise/plugins/NotifyFaast.py +++ b/apprise/plugins/NotifyFaast.py @@ -131,6 +131,7 @@ class NotifyFaast(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyFlock.py b/apprise/plugins/NotifyFlock.py index 2117c12d..c97c1c5d 100644 --- a/apprise/plugins/NotifyFlock.py +++ b/apprise/plugins/NotifyFlock.py @@ -269,6 +269,7 @@ class NotifyFlock(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyGitter.py b/apprise/plugins/NotifyGitter.py index 83e13fc7..6616841c 100644 --- a/apprise/plugins/NotifyGitter.py +++ b/apprise/plugins/NotifyGitter.py @@ -309,6 +309,7 @@ class NotifyGitter(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyGotify.py b/apprise/plugins/NotifyGotify.py index 84e3997f..18b7b1c3 100644 --- a/apprise/plugins/NotifyGotify.py +++ b/apprise/plugins/NotifyGotify.py @@ -80,9 +80,10 @@ class NotifyGotify(NotifyBase): # Disable throttle rate request_rate_per_sec = 0 - # If no bytes have been received on the underlining socket for - # connection_timeout seconds, close the connection. - connection_timeout = 2.5 + # The connect timeout is the number of seconds Requests will wait for your + # client to establish a connection to a remote machine (corresponding to + # the connect()) call on the socket. + request_connect_timeout = 2.5 # Define object templates templates = ( @@ -195,7 +196,7 @@ class NotifyGotify(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, - timeout=self.connection_timeout, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyIFTTT.py b/apprise/plugins/NotifyIFTTT.py index 87e5a35d..27fb7eab 100644 --- a/apprise/plugins/NotifyIFTTT.py +++ b/apprise/plugins/NotifyIFTTT.py @@ -242,6 +242,7 @@ class NotifyIFTTT(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) self.logger.debug( u"IFTTT HTTP response headers: %r" % r.headers) diff --git a/apprise/plugins/NotifyJSON.py b/apprise/plugins/NotifyJSON.py index 1297eeb9..f835e7b5 100644 --- a/apprise/plugins/NotifyJSON.py +++ b/apprise/plugins/NotifyJSON.py @@ -215,6 +215,7 @@ class NotifyJSON(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyJoin.py b/apprise/plugins/NotifyJoin.py index 5165ba1e..3cb144b9 100644 --- a/apprise/plugins/NotifyJoin.py +++ b/apprise/plugins/NotifyJoin.py @@ -280,6 +280,7 @@ class NotifyJoin(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyKavenegar.py b/apprise/plugins/NotifyKavenegar.py index 672755d6..4a663254 100644 --- a/apprise/plugins/NotifyKavenegar.py +++ b/apprise/plugins/NotifyKavenegar.py @@ -263,6 +263,7 @@ class NotifyKavenegar(NotifyBase): params=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( diff --git a/apprise/plugins/NotifyKumulos.py b/apprise/plugins/NotifyKumulos.py index 985b9026..ad0d878c 100644 --- a/apprise/plugins/NotifyKumulos.py +++ b/apprise/plugins/NotifyKumulos.py @@ -163,6 +163,7 @@ class NotifyKumulos(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyMSG91.py b/apprise/plugins/NotifyMSG91.py index 18cd7f56..3f5cbb31 100644 --- a/apprise/plugins/NotifyMSG91.py +++ b/apprise/plugins/NotifyMSG91.py @@ -276,6 +276,7 @@ class NotifyMSG91(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyMSTeams.py b/apprise/plugins/NotifyMSTeams.py index 57f76047..c96f888b 100644 --- a/apprise/plugins/NotifyMSTeams.py +++ b/apprise/plugins/NotifyMSTeams.py @@ -240,6 +240,7 @@ class NotifyMSTeams(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyMailgun.py b/apprise/plugins/NotifyMailgun.py index f69cfcb2..ca785a10 100644 --- a/apprise/plugins/NotifyMailgun.py +++ b/apprise/plugins/NotifyMailgun.py @@ -269,6 +269,7 @@ class NotifyMailgun(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyMatrix.py b/apprise/plugins/NotifyMatrix.py index 7fdb32de..939af086 100644 --- a/apprise/plugins/NotifyMatrix.py +++ b/apprise/plugins/NotifyMatrix.py @@ -319,6 +319,7 @@ class NotifyMatrix(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem @@ -927,6 +928,7 @@ class NotifyMatrix(NotifyBase): params=params, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) response = loads(r.content) diff --git a/apprise/plugins/NotifyMatterMost.py b/apprise/plugins/NotifyMatterMost.py index c4eb68d9..f36ee08b 100644 --- a/apprise/plugins/NotifyMatterMost.py +++ b/apprise/plugins/NotifyMatterMost.py @@ -227,6 +227,7 @@ class NotifyMatterMost(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyMessageBird.py b/apprise/plugins/NotifyMessageBird.py index f1bc6c9c..90d70a76 100644 --- a/apprise/plugins/NotifyMessageBird.py +++ b/apprise/plugins/NotifyMessageBird.py @@ -234,6 +234,7 @@ class NotifyMessageBird(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) # Sample output of a successful transmission diff --git a/apprise/plugins/NotifyNexmo.py b/apprise/plugins/NotifyNexmo.py index 1abbe45b..73dfd129 100644 --- a/apprise/plugins/NotifyNexmo.py +++ b/apprise/plugins/NotifyNexmo.py @@ -280,6 +280,7 @@ class NotifyNexmo(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyNextcloud.py b/apprise/plugins/NotifyNextcloud.py index 8f969d3a..da7036ed 100644 --- a/apprise/plugins/NotifyNextcloud.py +++ b/apprise/plugins/NotifyNextcloud.py @@ -185,6 +185,7 @@ class NotifyNextcloud(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyNotica.py b/apprise/plugins/NotifyNotica.py index 1f0aa700..fea81949 100644 --- a/apprise/plugins/NotifyNotica.py +++ b/apprise/plugins/NotifyNotica.py @@ -228,6 +228,7 @@ class NotifyNotica(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyNotifico.py b/apprise/plugins/NotifyNotifico.py index 0f53a5b5..414aabe0 100644 --- a/apprise/plugins/NotifyNotifico.py +++ b/apprise/plugins/NotifyNotifico.py @@ -288,6 +288,7 @@ class NotifyNotifico(NotifyBase): params=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyOffice365.py b/apprise/plugins/NotifyOffice365.py index a52f6fe0..8dd36755 100644 --- a/apprise/plugins/NotifyOffice365.py +++ b/apprise/plugins/NotifyOffice365.py @@ -402,6 +402,7 @@ class NotifyOffice365(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( diff --git a/apprise/plugins/NotifyProwl.py b/apprise/plugins/NotifyProwl.py index 9d5579eb..98483317 100644 --- a/apprise/plugins/NotifyProwl.py +++ b/apprise/plugins/NotifyProwl.py @@ -191,6 +191,7 @@ class NotifyProwl(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyPushBullet.py b/apprise/plugins/NotifyPushBullet.py index caf0a834..0eba7d8a 100644 --- a/apprise/plugins/NotifyPushBullet.py +++ b/apprise/plugins/NotifyPushBullet.py @@ -315,6 +315,7 @@ class NotifyPushBullet(NotifyBase): files=files, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) try: diff --git a/apprise/plugins/NotifyPushSafer.py b/apprise/plugins/NotifyPushSafer.py index 25bf60c1..b3bf8442 100644 --- a/apprise/plugins/NotifyPushSafer.py +++ b/apprise/plugins/NotifyPushSafer.py @@ -693,6 +693,7 @@ class NotifyPushSafer(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) try: diff --git a/apprise/plugins/NotifyPushed.py b/apprise/plugins/NotifyPushed.py index e72144d5..267e01a2 100644 --- a/apprise/plugins/NotifyPushed.py +++ b/apprise/plugins/NotifyPushed.py @@ -267,6 +267,7 @@ class NotifyPushed(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyPushjet.py b/apprise/plugins/NotifyPushjet.py index 6113b6af..9dd164e2 100644 --- a/apprise/plugins/NotifyPushjet.py +++ b/apprise/plugins/NotifyPushjet.py @@ -199,6 +199,7 @@ class NotifyPushjet(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyPushover.py b/apprise/plugins/NotifyPushover.py index 3e8b72bf..d88080eb 100644 --- a/apprise/plugins/NotifyPushover.py +++ b/apprise/plugins/NotifyPushover.py @@ -434,6 +434,7 @@ class NotifyPushover(NotifyBase): files=files, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyRocketChat.py b/apprise/plugins/NotifyRocketChat.py index 6ef53735..3eb957f7 100644 --- a/apprise/plugins/NotifyRocketChat.py +++ b/apprise/plugins/NotifyRocketChat.py @@ -476,6 +476,7 @@ class NotifyRocketChat(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem @@ -529,6 +530,7 @@ class NotifyRocketChat(NotifyBase): api_url, data=payload, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem @@ -595,6 +597,7 @@ class NotifyRocketChat(NotifyBase): api_url, headers=self.headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyRyver.py b/apprise/plugins/NotifyRyver.py index b5f36eaa..8083ccf3 100644 --- a/apprise/plugins/NotifyRyver.py +++ b/apprise/plugins/NotifyRyver.py @@ -236,6 +236,7 @@ class NotifyRyver(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifySNS.py b/apprise/plugins/NotifySNS.py index bf0039fd..62b9aa2c 100644 --- a/apprise/plugins/NotifySNS.py +++ b/apprise/plugins/NotifySNS.py @@ -342,6 +342,7 @@ class NotifySNS(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifySendGrid.py b/apprise/plugins/NotifySendGrid.py index 97358acb..775262ef 100644 --- a/apprise/plugins/NotifySendGrid.py +++ b/apprise/plugins/NotifySendGrid.py @@ -361,6 +361,7 @@ class NotifySendGrid(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( requests.codes.ok, requests.codes.accepted): diff --git a/apprise/plugins/NotifySimplePush.py b/apprise/plugins/NotifySimplePush.py index cbefc680..a80482ad 100644 --- a/apprise/plugins/NotifySimplePush.py +++ b/apprise/plugins/NotifySimplePush.py @@ -236,6 +236,7 @@ class NotifySimplePush(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) # Get our SimplePush response (if it's possible) diff --git a/apprise/plugins/NotifySinch.py b/apprise/plugins/NotifySinch.py index 07b6372e..4d6ac6ee 100644 --- a/apprise/plugins/NotifySinch.py +++ b/apprise/plugins/NotifySinch.py @@ -322,6 +322,7 @@ class NotifySinch(NotifyBase): data=json.dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) # The responsne might look like: diff --git a/apprise/plugins/NotifySlack.py b/apprise/plugins/NotifySlack.py index ef83f873..6d03eed4 100644 --- a/apprise/plugins/NotifySlack.py +++ b/apprise/plugins/NotifySlack.py @@ -505,6 +505,7 @@ class NotifySlack(NotifyBase): headers=headers, files=files, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyTechulusPush.py b/apprise/plugins/NotifyTechulusPush.py index 6b9f0a1c..77e12625 100644 --- a/apprise/plugins/NotifyTechulusPush.py +++ b/apprise/plugins/NotifyTechulusPush.py @@ -145,6 +145,7 @@ class NotifyTechulusPush(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( requests.codes.ok, requests.codes.no_content): diff --git a/apprise/plugins/NotifyTelegram.py b/apprise/plugins/NotifyTelegram.py index 35624c7b..6727aaf3 100644 --- a/apprise/plugins/NotifyTelegram.py +++ b/apprise/plugins/NotifyTelegram.py @@ -325,6 +325,7 @@ class NotifyTelegram(NotifyBase): files=files, data=payload, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: @@ -393,6 +394,7 @@ class NotifyTelegram(NotifyBase): url, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: @@ -597,6 +599,7 @@ class NotifyTelegram(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: diff --git a/apprise/plugins/NotifyTwilio.py b/apprise/plugins/NotifyTwilio.py index 3b34ed1f..2a8b3452 100644 --- a/apprise/plugins/NotifyTwilio.py +++ b/apprise/plugins/NotifyTwilio.py @@ -304,6 +304,7 @@ class NotifyTwilio(NotifyBase): data=payload, headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( diff --git a/apprise/plugins/NotifyTwist.py b/apprise/plugins/NotifyTwist.py index 0aafe18a..957486c9 100644 --- a/apprise/plugins/NotifyTwist.py +++ b/apprise/plugins/NotifyTwist.py @@ -640,7 +640,9 @@ class NotifyTwist(NotifyBase): api_url, data=payload, headers=headers, - verify=self.verify_certificate) + verify=self.verify_certificate, + timeout=self.request_timeout, + ) # Get our JSON content if it's possible try: @@ -679,7 +681,9 @@ class NotifyTwist(NotifyBase): api_url, data=payload, headers=headers, - verify=self.verify_certificate) + verify=self.verify_certificate, + timeout=self.request_timeout + ) # Get our JSON content if it's possible try: diff --git a/apprise/plugins/NotifyTwitter.py b/apprise/plugins/NotifyTwitter.py index f6e57624..3b766a8c 100644 --- a/apprise/plugins/NotifyTwitter.py +++ b/apprise/plugins/NotifyTwitter.py @@ -510,7 +510,9 @@ class NotifyTwitter(NotifyBase): data=payload, headers=headers, auth=auth, - verify=self.verify_certificate) + verify=self.verify_certificate, + timeout=self.request_timeout, + ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyWebexTeams.py b/apprise/plugins/NotifyWebexTeams.py index 63efe43e..aa1e29b0 100644 --- a/apprise/plugins/NotifyWebexTeams.py +++ b/apprise/plugins/NotifyWebexTeams.py @@ -168,6 +168,7 @@ class NotifyWebexTeams(NotifyBase): data=dumps(payload), headers=headers, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code not in ( requests.codes.ok, requests.codes.no_content): diff --git a/apprise/plugins/NotifyXBMC.py b/apprise/plugins/NotifyXBMC.py index 70c33d95..4e064562 100644 --- a/apprise/plugins/NotifyXBMC.py +++ b/apprise/plugins/NotifyXBMC.py @@ -264,6 +264,7 @@ class NotifyXBMC(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyXML.py b/apprise/plugins/NotifyXML.py index 513377fb..c67a32f3 100644 --- a/apprise/plugins/NotifyXML.py +++ b/apprise/plugins/NotifyXML.py @@ -234,6 +234,7 @@ class NotifyXML(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem diff --git a/apprise/plugins/NotifyZulip.py b/apprise/plugins/NotifyZulip.py index 7001ce71..a84d6cc4 100644 --- a/apprise/plugins/NotifyZulip.py +++ b/apprise/plugins/NotifyZulip.py @@ -284,6 +284,7 @@ class NotifyZulip(NotifyBase): headers=headers, auth=auth, verify=self.verify_certificate, + timeout=self.request_timeout, ) if r.status_code != requests.codes.ok: # We had a problem