From ca81d86a1eed5e56aa68234e02e4cae08118233c Mon Sep 17 00:00:00 2001 From: Jan Speller Date: Fri, 1 May 2020 13:58:36 +0200 Subject: [PATCH 1/9] add source for telegram.py --- plugin/.telegram.py.swp | Bin 0 -> 12288 bytes plugin/telegram.py | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 plugin/.telegram.py.swp diff --git a/plugin/.telegram.py.swp b/plugin/.telegram.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..a9e0d2601811df772dab77a4e744a59c48373d17 GIT binary patch literal 12288 zcmeHNO>7)B6n6RlOF=~l36OZ12z8cjcGHxWDr!(jT1rv>M3S~ZU~y)=yQ9pGr!(H9 zTSai85<(n%L0o|oHzeRfIdGyE1V|h~>H!W&AbPF@pFKaBP0}c7;ZQM-zVVFx{QUgc z@7YN_KXU5GG1_0-&5#~q?Bc+uZ=8Ab33gdB7Kg(3MWkysOsU-P%rpB&HWGX*6|A>B z6^T&B^~uwFhNomC>Y?9lc|lzXU$i3LsfE3b6qR))10@4nW1y>=!}|wj_l)i~K00I# z(!)Dux2B_%E*U5pC>bajC>bajC>bajC>bajxTP6T;WqX*MsQm?ii2ssZB?FrmRZR_ z$w0|K$w0|K$w0|K$w0|K$w0|K$w0|K$-phh0CySt3wFPv{{Vph|4*l5_~SvwegeJ+ zE&`{4$AMqAGxia%2pk8F0egVQ00vwcVC-k$JKz)GW8ghN0y}`)fZrZq>{sAx;1ci^ z@FB1Wbb(o*0$jeIv2TITfD6DrU@!0paP>ae4SWM!0QLgc?q%#t;0vG!w1ES_-}j&| z;1aM1JO^C68@2)O08au}?_%s-;0&-G`29}U3_+6sAP|o77CqHl$D$dpBis{R*mGQ{B^fRJ$L8?R8(t9WSTY;%u4>E3J1^XRGGgI3 zYx7doG|`PtLayz!xoUXsxXzEbRZ`-d8t=rd71E1DdO=g#)^s{ksSZ+-EZRkhivET} zq=mDoq(zVC6PC}Eih7BqO{|4P33&n51MCIuO|MmJ31wSJRcuws6;0mt)%a_#rxOl? zX*_8W@+cOkJ>PYB8 z$|V`ltEUbfA@1|2!(a`aUlg9{tC}l-Y55Q}hdQm}0<*zFAeRE#j4O;8o?{i+suv1d zRBDYzz&oPRsDOWKrCOw;OL`^h_ez-0V-o$#<2vST#;k%rXf0dy(wpdc3!YlEY*XI) zFPpX2V+$5t-)psyPJP~cR61Pg0IFT0=)FFQRo4~cc&TEw1-N==K4sAFmxX&(<2eCZQwpVhW_9<1!G$;qBH>P`?-ilLgrhk=;?z||ovK($aYU^Qa zE^@PM#Qov>2=MSd=T#M)+9!duXjt#N|w4fBb_TQ{7mh zgJe44RgRB%9K((cOiXM_n$(g^Gmx#26;86jq_i+S852;Skvx_kwkT=DCX&umrRX@!SdZIbB)e3Y0KHt<&4fCKmGn{&Z4xnu!Q899J zsmyXBV2mT(2U?oOXrmJbgmz57>hj`Kf0>lMWVyB@t3ew*<%3vD!%q*x-SzKJV`Q%W V>Jm0ISntMBeI8fsLpZGr*gt5>VR--m literal 0 HcmV?d00001 diff --git a/plugin/telegram.py b/plugin/telegram.py index 5dea41f..15536ff 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -1,3 +1,4 @@ +??? from here until ???END lines may have been inserted/deleted #!/usr/bin/python # -*- coding: utf-8 -*- """! @@ -64,3 +65,21 @@ class BoswatchPlugin(PluginBase): logging.exception("Error while sending Telegram Message") except Exception as e: logging.exception("Unknown Error while sending Telegram Message: " + str(type(e).__name__) + ": " + str(e)) + + def zvei(self, bwPacket): + """!Called on ZVEI alarm + @param bwPacket: bwPacket instance""" + msg = self.parseWildcards(self.config.get("message")) + for chatId in self.config.get("chatIds", default=[]): + try: + # Send Message via Telegram + logging.info("Sending message to " + chatId) + self.bot.send_message(chat_id=chatId, text=msg) + except Unauthorized: + logging.exception("Error while sending Telegram Message, please Check your api-key") + except (TimedOut, NetworkError): + logging.exception("Error while sending Telegram Message, please Check your connectivity") + except (BadRequest, TelegramError): + logging.exception("Error while sending Telegram Message") + except Exception as e: + logging.exception("Unknown Error while sending Telegram Message: " + str(type(e).__name__) + ": " + str(e)) From fd9307dd0343d24aee99b79fdbcee2de78009a9d Mon Sep 17 00:00:00 2001 From: Jan Speller Date: Fri, 1 May 2020 14:00:16 +0200 Subject: [PATCH 2/9] fix telegram.py --- plugin/telegram.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index 15536ff..f783e72 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -1,4 +1,3 @@ -??? from here until ???END lines may have been inserted/deleted #!/usr/bin/python # -*- coding: utf-8 -*- """! From 456efc111687e4d87e443893e4dc59bf21421434 Mon Sep 17 00:00:00 2001 From: Schrolli91 Date: Fri, 1 May 2020 23:52:19 +0200 Subject: [PATCH 3/9] update telegram plugin --- plugin/.telegram.py.swp | Bin 12288 -> 0 bytes plugin/telegram.py | 74 ++++++++++++++++++++++++++-------------- 2 files changed, 49 insertions(+), 25 deletions(-) delete mode 100644 plugin/.telegram.py.swp diff --git a/plugin/.telegram.py.swp b/plugin/.telegram.py.swp deleted file mode 100644 index a9e0d2601811df772dab77a4e744a59c48373d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeHNO>7)B6n6RlOF=~l36OZ12z8cjcGHxWDr!(jT1rv>M3S~ZU~y)=yQ9pGr!(H9 zTSai85<(n%L0o|oHzeRfIdGyE1V|h~>H!W&AbPF@pFKaBP0}c7;ZQM-zVVFx{QUgc z@7YN_KXU5GG1_0-&5#~q?Bc+uZ=8Ab33gdB7Kg(3MWkysOsU-P%rpB&HWGX*6|A>B z6^T&B^~uwFhNomC>Y?9lc|lzXU$i3LsfE3b6qR))10@4nW1y>=!}|wj_l)i~K00I# z(!)Dux2B_%E*U5pC>bajC>bajC>bajC>bajxTP6T;WqX*MsQm?ii2ssZB?FrmRZR_ z$w0|K$w0|K$w0|K$w0|K$w0|K$w0|K$-phh0CySt3wFPv{{Vph|4*l5_~SvwegeJ+ zE&`{4$AMqAGxia%2pk8F0egVQ00vwcVC-k$JKz)GW8ghN0y}`)fZrZq>{sAx;1ci^ z@FB1Wbb(o*0$jeIv2TITfD6DrU@!0paP>ae4SWM!0QLgc?q%#t;0vG!w1ES_-}j&| z;1aM1JO^C68@2)O08au}?_%s-;0&-G`29}U3_+6sAP|o77CqHl$D$dpBis{R*mGQ{B^fRJ$L8?R8(t9WSTY;%u4>E3J1^XRGGgI3 zYx7doG|`PtLayz!xoUXsxXzEbRZ`-d8t=rd71E1DdO=g#)^s{ksSZ+-EZRkhivET} zq=mDoq(zVC6PC}Eih7BqO{|4P33&n51MCIuO|MmJ31wSJRcuws6;0mt)%a_#rxOl? zX*_8W@+cOkJ>PYB8 z$|V`ltEUbfA@1|2!(a`aUlg9{tC}l-Y55Q}hdQm}0<*zFAeRE#j4O;8o?{i+suv1d zRBDYzz&oPRsDOWKrCOw;OL`^h_ez-0V-o$#<2vST#;k%rXf0dy(wpdc3!YlEY*XI) zFPpX2V+$5t-)psyPJP~cR61Pg0IFT0=)FFQRo4~cc&TEw1-N==K4sAFmxX&(<2eCZQwpVhW_9<1!G$;qBH>P`?-ilLgrhk=;?z||ovK($aYU^Qa zE^@PM#Qov>2=MSd=T#M)+9!duXjt#N|w4fBb_TQ{7mh zgJe44RgRB%9K((cOiXM_n$(g^Gmx#26;86jq_i+S852;Skvx_kwkT=DCX&umrRX@!SdZIbB)e3Y0KHt<&4fCKmGn{&Z4xnu!Q899J zsmyXBV2mT(2U?oOXrmJbgmz57>hj`Kf0>lMWVyB@t3ew*<%3vD!%q*x-SzKJV`Q%W V>Jm0ISntMBeI8fsLpZGr*gt5>VR--m diff --git a/plugin/telegram.py b/plugin/telegram.py index f783e72..900754b 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -35,45 +35,69 @@ class BoswatchPlugin(PluginBase): def onLoad(self): """!Called by import of the plugin""" - self.bot = telegram.Bot(token=self.config.get("botToken", default="")) + self.bot = telegram.Bot(token=self.config.get("botToken")) + + def fms(self, bwPacket): + """!Called on FMS alarm + + @param bwPacket: bwPacket instance + Remove if not implemented""" + msg = self.parseWildcards(self.config.get("message_fms", default="{FMS}")) + _sendMessage(msg) def pocsag(self, bwPacket): """!Called on POCSAG alarm - @param bwPacket: bwPacket instance""" - msg = self.parseWildcards(self.config.get("message")) + @param bwPacket: bwPacket instance + Remove if not implemented""" + msg = self.parseWildcards(self.config.get("message_pocsag", default="{RIC}({SRIC})\n{MSG}")) + self._sendMessage(msg) + if bwPacket.get("lat") is not None and bwPacket.get("lon") is not None: logging.debug("Found coordinates in packet") (lat, lon) = (bwPacket.get("lat"), bwPacket.get("lon")) - - for chatId in self.config.get("chatIds", default=[]): - try: - # Send Message via Telegram - logging.info("Sending message to " + chatId) - self.bot.send_message(chat_id=chatId, text=msg) - - # Send Location via Telegram if lat and lon are defined - if lat is not None and lon is not None: - logging.info("Sending location to " + chatId) - self.bot.sendLocation(chat_id=chatId, latitude=lat, longitude=lon) - except Unauthorized: - logging.exception("Error while sending Telegram Message, please Check your api-key") - except (TimedOut, NetworkError): - logging.exception("Error while sending Telegram Message, please Check your connectivity") - except (BadRequest, TelegramError): - logging.exception("Error while sending Telegram Message") - except Exception as e: - logging.exception("Unknown Error while sending Telegram Message: " + str(type(e).__name__) + ": " + str(e)) + self._sendMessage(lat, lon) def zvei(self, bwPacket): """!Called on ZVEI alarm - @param bwPacket: bwPacket instance""" - msg = self.parseWildcards(self.config.get("message")) + + @param bwPacket: bwPacket instance + Remove if not implemented""" + msg = self.parseWildcards(self.config.get("message_zvei", default="{TONE}")) + _sendMessage(msg) + + def msg(self, bwPacket): + """!Called on MSG packet + + @param bwPacket: bwPacket instance + Remove if not implemented""" + msg = self.parseWildcards(self.config.get("message_msg")) + _sendMessage(msg) + + def _sendMessage(self, message): for chatId in self.config.get("chatIds", default=[]): try: # Send Message via Telegram logging.info("Sending message to " + chatId) - self.bot.send_message(chat_id=chatId, text=msg) + self.bot.send_message(chat_id=chatId, text=message) + + except Unauthorized: + logging.exception("Error while sending Telegram Message, please Check your api-key") + except (TimedOut, NetworkError): + logging.exception("Error while sending Telegram Message, please Check your connectivity") + except (BadRequest, TelegramError): + logging.exception("Error while sending Telegram Message") + except Exception as e: + logging.exception("Unknown Error while sending Telegram Message: " + str(type(e).__name__) + ": " + str(e)) + + def _sendLocation(self, lat, lon): + for chatId in self.config.get("chatIds", default=[]): + try: + # Send Location via Telegram + if lat is not None and lon is not None: + logging.info("Sending location to " + chatId) + self.bot.sendLocation(chat_id=chatId, latitude=lat, longitude=lon) + except Unauthorized: logging.exception("Error while sending Telegram Message, please Check your api-key") except (TimedOut, NetworkError): From c94938dd3d9d51bd691f27abbad164e0e7f46453 Mon Sep 17 00:00:00 2001 From: Schrolli91 Date: Fri, 1 May 2020 23:52:38 +0200 Subject: [PATCH 4/9] update docs --- docu/docs/plugin/telegram.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docu/docs/plugin/telegram.md b/docu/docs/plugin/telegram.md index c072556..92319d2 100644 --- a/docu/docs/plugin/telegram.md +++ b/docu/docs/plugin/telegram.md @@ -6,7 +6,10 @@ Mit diesem Plugin ist es moeglich, Telegram-Nachrichten für POCSAG-Alarmierunge Außerdem werden Locations versendet, wenn die Felder `lat` und `lon` im Paket definiert sind. (beispielsweise durch das [Geocoding](../modul/geocoding.md) Modul) ## Unterstütze Alarmtypen +- Fms - Pocsag +- Zvei +- Msg ## Resource `telegram` @@ -15,9 +18,12 @@ Außerdem werden Locations versendet, wenn die Felder `lat` und `lon` im Paket d |Feld|Beschreibung|Default| |----|------------|-------| -|message|Format der Nachricht|| |botToken|Der Api-Key des Telegram-Bots|| |chatIds|Liste mit Chat-Ids der Empfängers / der Emfänger-Gruppen|| +|message_fms|Format der Nachricht für FMS|`{FMS}`| +|message_pocsag|Format der Nachricht für Pocsag|`{RIC}({SRIC})\n{MSG}`| +|message_zvei|Format der Nachricht für ZVEI|`{TONE}`| +|message_msg|Format der Nachricht für MSG|| **Beispiel:** ```yaml @@ -25,7 +31,7 @@ Außerdem werden Locations versendet, wenn die Felder `lat` und `lon` im Paket d name: Telegram Plugin res: telegram config: - message: "{RIC}({SRIC})\n{MSG}" + message_pocsag: "{RIC}({SRIC})\n{MSG}" botToken: "BOT_TOKEN" chatIds: - "CHAT_ID" @@ -33,7 +39,7 @@ Außerdem werden Locations versendet, wenn die Felder `lat` und `lon` im Paket d --- ## Modul Abhängigkeiten -Aus dem Modul [Geocoding](../modul/geocoding.md) (optional): +Aus dem Modul [Geocoding](../modul/geocoding.md) (optional/nur POCSAG): - `lat` - `lon` From e05b81e5d77f69920a6895d16134c2434add12e6 Mon Sep 17 00:00:00 2001 From: Schrolli91 Date: Fri, 1 May 2020 23:56:29 +0200 Subject: [PATCH 5/9] bugfix --- plugin/telegram.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index 900754b..1707d2c 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -43,7 +43,7 @@ class BoswatchPlugin(PluginBase): @param bwPacket: bwPacket instance Remove if not implemented""" msg = self.parseWildcards(self.config.get("message_fms", default="{FMS}")) - _sendMessage(msg) + self._sendMessage(msg) def pocsag(self, bwPacket): """!Called on POCSAG alarm @@ -64,7 +64,7 @@ class BoswatchPlugin(PluginBase): @param bwPacket: bwPacket instance Remove if not implemented""" msg = self.parseWildcards(self.config.get("message_zvei", default="{TONE}")) - _sendMessage(msg) + self._sendMessage(msg) def msg(self, bwPacket): """!Called on MSG packet @@ -72,7 +72,7 @@ class BoswatchPlugin(PluginBase): @param bwPacket: bwPacket instance Remove if not implemented""" msg = self.parseWildcards(self.config.get("message_msg")) - _sendMessage(msg) + self._sendMessage(msg) def _sendMessage(self, message): for chatId in self.config.get("chatIds", default=[]): From f79554f4153f85bf83a55f6db5c03465bb64d0b2 Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Wed, 6 May 2020 07:41:52 +0200 Subject: [PATCH 6/9] Update plugin/telegram.py Co-authored-by: Jan Speller --- plugin/telegram.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index 1707d2c..ec043ea 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -40,8 +40,7 @@ class BoswatchPlugin(PluginBase): def fms(self, bwPacket): """!Called on FMS alarm - @param bwPacket: bwPacket instance - Remove if not implemented""" + @param bwPacket: bwPacket instance""" msg = self.parseWildcards(self.config.get("message_fms", default="{FMS}")) self._sendMessage(msg) From 689d81565bba621bf2e9dd5e83af583383e2effa Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Wed, 6 May 2020 07:42:04 +0200 Subject: [PATCH 7/9] Update plugin/telegram.py Co-authored-by: Jan Speller --- plugin/telegram.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index ec043ea..5d6f44a 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -47,8 +47,7 @@ class BoswatchPlugin(PluginBase): def pocsag(self, bwPacket): """!Called on POCSAG alarm - @param bwPacket: bwPacket instance - Remove if not implemented""" + @param bwPacket: bwPacket instance""" msg = self.parseWildcards(self.config.get("message_pocsag", default="{RIC}({SRIC})\n{MSG}")) self._sendMessage(msg) From 6b0488ed1b9c285be59ddea85bcafd140b382779 Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Wed, 6 May 2020 07:42:11 +0200 Subject: [PATCH 8/9] Update plugin/telegram.py Co-authored-by: Jan Speller --- plugin/telegram.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index 5d6f44a..3a6322e 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -67,8 +67,7 @@ class BoswatchPlugin(PluginBase): def msg(self, bwPacket): """!Called on MSG packet - @param bwPacket: bwPacket instance - Remove if not implemented""" + @param bwPacket: bwPacket instance""" msg = self.parseWildcards(self.config.get("message_msg")) self._sendMessage(msg) From e4852be0e718144d97070542b27735528531813e Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Wed, 6 May 2020 07:42:20 +0200 Subject: [PATCH 9/9] Update plugin/telegram.py Co-authored-by: Jan Speller --- plugin/telegram.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/telegram.py b/plugin/telegram.py index 3a6322e..46018d9 100644 --- a/plugin/telegram.py +++ b/plugin/telegram.py @@ -59,8 +59,7 @@ class BoswatchPlugin(PluginBase): def zvei(self, bwPacket): """!Called on ZVEI alarm - @param bwPacket: bwPacket instance - Remove if not implemented""" + @param bwPacket: bwPacket instance""" msg = self.parseWildcards(self.config.get("message_zvei", default="{TONE}")) self._sendMessage(msg)