Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Schrolli91 committed Mar 11, 2019
2 parents 0c6c682 + d47635f commit 65dd9b4
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 31 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
# Changelog


### __[v2.4.2]__ - 11.03.2019
##### Added
- Telegram-Plugin: In der generierten Übersichtkarte wird eine Anfahrtsroute integriert. Der Abfahrtsort ist konfiguierbar. [#382](https://github.com/Schrolli91/BOSWatch/pull/382)
##### Changed
- Telegram-Plugin: Aufrufe der Google API erfolgen per SSL und ohne zusätzliche Bibliotheken [#382](https://github.com/Schrolli91/BOSWatch/pull/382)


### __[v2.4.1]__ - 23.20.2018
### __[v2.4.1]__ - 23.10.2018
##### Added
- Pushover-Plugin: Priorität für einzelne RIC und ZVEI in config einstellbar [#378](https://github.com/Schrolli91/BOSWatch/pull/378)
##### Changed
Expand Down
33 changes: 15 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
### Fast support on https://bwcc.boswatch.de (Mattermost-Server)
#### Forum: https://boswatch.de
![# BOSWatch](/boswatch.png)

:satellite: Python Script to receive and decode German BOS Information with rtl_fm and multimon-NG :satellite:

#### WICHTIG
**Es wird darauf hingewiesen, dass für die Teilnahme am BOS-Funk nur nach den Technischen Richtlinien der BOS zugelassene Funkanlagen verwendet werden dürfen.**
**Der BOS-Funk ist ein nichtöffentlicher mobiler Landfunk. Privatpersonen gehören nicht zum Kreis der berechtigten Funkteilnehmer.** _(Quelle: TR-BOS)_

#### Notice:
The intercept of the German BOS radio is **strictly prohibited** and will be prosecuted. the use is **only authorized** personnel permitted.
The software was developed using the Multimon-NG code, a function in the real operation can not be guaranteed.

### Arbeiten an BOSWatch 3 gestartet
#### Work on BOSWatch 3 has started
## see: https://boswatch.de/index.php?thread/29-boswatch-3/

### Fast support on https://bwcc.boswatch.de (Mattermost)
##### Work on BOSWatch 3 has started

|Branch|Code Qualität|CI-Build|
|---|---|---|
Expand All @@ -14,22 +22,11 @@

**Unterstützung gesucht**

Zur Weiterentwicklung des Programms benötigen wir Deine Mithilfe - bitte melde dich per Issue, wenn du Anwender in einem verschlüsselten POCSAG-Netz und im (legalen) Besitz des dazugehörigen Schlüssels bist.
Zur Weiterentwicklung des Programms benötigen wir Deine Mithilfe - bitte melde dich per Issue, wenn du Anwender in einem verschlüsselten POCSAG-Netz und im **legalen** Besitz des dazugehörigen Schlüssels bist.
In der Zukunft wollen wir die Möglichkeit schaffen, codierte Nachrichten zu entschlüsseln (und nur dann, wenn der Schlüssel bekannt ist!), dafür brauchen wir Dich als Tester!

**Readme ist veraltet** - bitte im [Wiki](https://github.com/Schrolli91/BOSWatch/wiki) nachschauen!

![# BOSWatch](/boswatch.png)

:satellite: Python Script to receive and decode German BOS Information with rtl_fm and multimon-NG :satellite:

#### WICHTIG
**Es wird darauf hingewiesen, dass für die Teilnahme am BOS-Funk nur nach den Technischen Richtlinien der BOS zugelassene Funkanlagen verwendet werden dürfen.**
**Der BOS-Funk ist ein nichtöffentlicher mobiler Landfunk. Privatpersonen gehören nicht zum Kreis der berechtigten Funkteilnehmer.** _(Quelle: TR-BOS)_

#### Notice:
The intercept of the German BOS radio is **strictly prohibited** and will be prosecuted. the use is **only authorized** personnel permitted.
The software was developed using the Multimon-NG code, a function in the real operation can not be guaranteed.


**Please** only use Code from **master**-Branch - thats **the only stable!**
Expand Down Expand Up @@ -78,7 +75,7 @@ For the other functions see "Usage" below.
For the RegEX filter functions see Section `[Filters]`
http://www.regexr.com/ - RegEX test tool an documentation

If RegEX is enabled - only alloewd data will pass !
If RegEX is enabled - only allowed data will pass !

Syntax: `INDIVIDUAL_NAME = TYP;DATAFIELD;PLUGIN;FREQUENZ;REGEX` (separator `;`)
- `TYP` = the data typ (FMS|ZVEI|POC)
Expand Down
3 changes: 3 additions & 0 deletions config/config.template.ini
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,9 @@ RICforLocationAPIKey =
# This is your Google API key.
# Required if you want to create a map based on location information received with the above RIC.
GoogleAPIKey =
# Define your start address for the routing
# Use the following format: CityOfOrigin+Street+Number
RoutingOrigin = MyCity+MyStreet+MyNumber

#Wildcards can be used, see end of the file!
FMS_message = %DATE% %TIME%: %FMS%
Expand Down
4 changes: 2 additions & 2 deletions includes/globalVars.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
"""

# version info
versionNr = "2.4.1"
versionNr = "2.4.2"
branch = "master"
buildDate = "23.10.2018"
buildDate = "11.03.2019"

# Global variables
config = 0
Expand Down
36 changes: 26 additions & 10 deletions plugins/Telegram/Telegram.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"""
Plugin to send FMS-, ZVEI- and POCSAG-messages via Telegram
@author: Peter Laemmle
@requires: Telegram BOT token, Telegram chat ID, library python-telegram-bot and optional googlemaps
@requires: Telegram BOT token, Telegram chat ID, library python-telegram-bot and optional requests and json
"""

#
Expand All @@ -15,7 +15,7 @@
from telegram.error import (TelegramError, Unauthorized, BadRequest, NetworkError)
from includes import globalVars # Global variables
if globalVars.config.get("Telegram","RICforLocationAPIKey"):
import urllib, googlemaps
import requests, json

# Helper function, uncomment to use
from includes.helper import wildcardHandler
Expand All @@ -26,6 +26,7 @@
BOTChatIDAPIKey = None
RICforLocationAPIKey = None
GoogleAPIKey = None
RoutingOrigin = None

##
#
Expand All @@ -43,12 +44,14 @@ def onLoad():
global BOTChatIDAPIKey
global RICforLocationAPIKey
global GoogleAPIKey
global RoutingOrigin

configHandler.checkConfig("Telegram")
BOTTokenAPIKey = globalVars.config.get("Telegram","BOTTokenAPIKey")
BOTChatIDAPIKey = globalVars.config.get("Telegram","BOTChatIDAPIKey")
RICforLocationAPIKey = globalVars.config.get("Telegram","RICforLocationAPIKey")
GoogleAPIKey = globalVars.config.get("Telegram","GoogleAPIKey")
RoutingOrigin = globalVars.config.get("Telegram","RoutingOrigin")

return

Expand Down Expand Up @@ -98,12 +101,20 @@ def run(typ,freq,data):
# Generate map
logging.debug("Extract address from POCSAG message")
address = "+".join(data["msg"].split(')')[0].split('/',1)[1].replace('(',' ').split())

# Retrieve directions using Google API
logging.debug("Retrieve polylines from Directions API")
url = "".join(["https://maps.googleapis.com/maps/api/directions/json?origin=",
RoutingOrigin, "&destination=", address, "&mode=driving&key=", GoogleAPIKey])
response = json.loads(requests.get(url).content.decode('utf-8'))
logging.debug("Directions API return status: %s" % response['status'])
# Retrieve static maps using Google API
logging.debug("Retrieve maps from Google")
url = "".join(["http://maps.googleapis.com/maps/api/staticmap?markers=", address, "&size=480x640&maptype=roadmap&zoom=16&language=de&key=", GoogleAPIKey])
urllib.urlretrieve(url, "overview_map.png")
url = "".join(["http://maps.googleapis.com/maps/api/staticmap?markers=", address, "&size=240x320&scale=2&maptype=hybrid&zoom=17&language=de&key=", GoogleAPIKey])
urllib.urlretrieve(url, "detail_map.png")
url = "".join(["https://maps.googleapis.com/maps/api/staticmap?&size=480x640&maptype=roadmap&path=enc:",
response['routes'][0]['overview_polyline']['points'], "&language=de&key=", GoogleAPIKey])
with open("overview_map.png", "wb") as img: img.write(requests.get(url).content)
url = "".join(["https://maps.googleapis.com/maps/api/staticmap?markers=",
address, "&size=240x320&scale=2&maptype=hybrid&zoom=17&language=de&key=", GoogleAPIKey])
with open("detail_map.png", "wb") as img: img.write(requests.get(url).content)

# Send message and map with Telegram
logging.debug("Send message and maps via Telegram BOT")
Expand All @@ -112,10 +123,15 @@ def run(typ,freq,data):

# Geocoding of address
logging.debug("Geocode address")
gcode = googlemaps.Client(key='%s' % GoogleAPIKey)
gcode_result = gcode.geocode(address)
url = "".join(["https://maps.googleapis.com/maps/api/geocode/json?address=",
address, "&language=de&key=", GoogleAPIKey])
gcode_result = json.loads(requests.get(url).content)
logging.debug("Geocoding API return status: %s" % gcode_result['status'])
logging.debug("Send location via Telegram BOT API")
bot.sendLocation('%s' % BOTChatIDAPIKey, gcode_result[0]['geometry']['location']['lat'], gcode_result[0]['geometry']['location']['lng'], disable_notification='true')
bot.sendLocation('%s' % BOTChatIDAPIKey,
gcode_result[results][0]['geometry']['location']['lat'],
gcode_result[results][0]['geometry']['location']['lng'],
disable_notification='true')
else:
logging.warning("Invalid Typ: %s", typ)
except Unauthorized:
Expand Down
1 change: 1 addition & 0 deletions service/install_service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ elif [ "$action" == "r" ]; then # we want to remove the service

# and remove it
rm /etc/systemd/system/boswatch.service
echo "BosWatch service removed"
else # error handling
echo "Invalid input - please try again"
exit 1
Expand Down

0 comments on commit 65dd9b4

Please sign in to comment.