Schrolli91 / BOSWatch

Python Script to process input data from rtl_fm and multimon-NG - multiple Plugin support
https://bwcc.boswatch.de
GNU General Public License v2.0
132 stars 60 forks source link

HTTPRequest Plugin Broken #176

Closed hhansen06 closed 7 years ago

hhansen06 commented 7 years ago

Ich habe hier folgende Config:

Unter Plugins: httpRequest = 1 Unter httpRequest: zvei_url = https://xxxxxx/api/alarm.php?ric=%ZVEI%&auswerter_id=5

Bei erkanntem Alarm wird nicht Requested ...

23.11.2016 21:27:37 - zvei [INFO ] 5-Ton: 12345 23.11.2016 21:27:37 - alarmHandler [DEBUG ] [ ALARM ] 23.11.2016 21:27:37 - alarmHandler [DEBUG ] call Plugin: httpRequest 23.11.2016 21:27:37 - configHandler [DEBUG ] read [httpRequest] from config file 23.11.2016 21:27:37 - configHandler [DEBUG ] - fms_url = 23.11.2016 21:43:00 - configHandler [DEBUG ] - zvei_url = https://xxxxxx/api/alarm.php?ric=%ZVEI%&auswerter_id=5 23.11.2016 21:27:37 - configHandler [DEBUG ] - poc_url = 23.11.2016 21:27:37 - wildcardHandler [WARNING ] error in wildcard replacement 23.11.2016 21:27:37 - wildcardHandler [DEBUG ] error in wildcard replacement Traceback (most recent call last): File "/opt/boswatch/BOSWatch/includes/helper/wildcardHandler.py", line 58, in replaceWildcards if data["function"] == "1": text = text.replace("%FUNCTEXT%", globalVars.config.get("POC","rica")) KeyError: 'function' 23.11.2016 21:27:37 - httpRequest [ERROR ] cannot send HTTP request 23.11.2016 21:27:37 - httpRequest [DEBUG ] cannot send HTTP request Traceback (most recent call last): File "/opt/boswatch/BOSWatch/plugins/httpRequest/httpRequest.py", line 79, in run url = url.replace(" ","%20") # replace space with %20 to be a vaild http request AttributeError: 'NoneType' object has no attribute 'replace' 23.11.2016 21:27:37 - alarmHandler [DEBUG ] return from: httpRequest 23.11.2016 21:27:37 - alarmHandler [DEBUG ] [END ALARM]

flothi commented 7 years ago

Der Fehler kommt aus den Zeilen 58-61 im wildcardHandler - da ging es um das Einfügen statischer Texte für POC-Alarmierung. Das scheint mir unsauber gelöst, mit auskommentierten Zeilen klappt es wunderbar (der String wird durch das Parsen in den o.g. Zeilen zerstört und das führt zum Fehler in httpRequest l. 79).

Vielleicht kann der Autor @thejockel was dazu sagen?

Schrolli91 commented 7 years ago

ich glaub ich sehe den Fehler schon, in diesem Post is eine ZVEI Alarmierung eingegegangen. Jetzt versucht er POC Daten zu ersetzen - die es nicht gibt...

Deshalb steht vor jeder Ersetzung sowas, um zu testen, obs dieses Feld überhaupt gibt. if "function" in data:

Hier wird aber einfach drauf los ersetzt, da es bei ZVEI kein "function" Feld gibt, schmeißt er den Error if data["function"] == "1": text = text.replace("%FUNCTEXT%", globalVars.config.get("POC","rica"))

flothi commented 7 years ago

Japp, genau das hat mich auch stutzig gemacht. Wie gesagt, ohne die Zeilen klappt es.

Es müsste also "nur" eine Prüfung auf den Type POC um die Ersetzung rum und dann dürfte es klappen

Schrolli91 commented 7 years ago

naja ein if "function" in data: davor würde denk am besten dazu passen

thejockel commented 7 years ago

Moin, sry das tut mir leid.

Jedoch verstehe ich nicht warum den data["function"] == "1"; erfüllt ist.

Schrolli91 commented 7 years ago

weil es bei ZVEI kein feld "function" im data array gibt...

flothi commented 7 years ago

Gibt es schon Feedback zum Bugfix? Ansonsten ist das denke ich erledigt hier.

hhansen06 commented 7 years ago

Ja ist erledigt :)

Am 29.11.2016 22:19 schrieb "Florian" notifications@github.com:

Gibt es schon Feedback zum Bugfix? Ansonsten ist das denke ich erledigt hier.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Schrolli91/BOSWatch/issues/176#issuecomment-263702073, or mute the thread https://github.com/notifications/unsubscribe-auth/AF7yKpKd8JKc74JpBW9_AaVEzFETWfkFks5rDJbcgaJpZM4K7FBF .