Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import time
- import sys
- import subprocess
- import os
- import requests
- import json
- from datetime import datetime
- from dateutil import tz
- from termcolor import colored
- def curtime():
- return time.strftime("%H:%M:%S %Y-%m-%d")
- with open('error.txt','a') as file:
- file.write(('#' * 20) + '\n' + curtime() + '\n')
- multimon_ng = subprocess.Popen("rtl_fm -f 169.65M -M fm -s 22050 -g 20 | multimon-ng -a FLEX -t raw -",
- stdout=subprocess.PIPE,
- stderr=open('error.txt','a'),
- shell=True)
- try:
- while True:
- line = multimon_ng.stdout.readline()
- multimon_ng.poll()
- if line.__contains__('ALN'):
- if line.startswith('FLEX'):
- discord = []
- del discord[:]
- flex = line[0:5]
- timestamp = line[6:25]
- melding = line[60:]
- meldinglow = melding.lower()
- prioriteit = line[60:63]
- groupid = line[37:43]
- capcode = line[45:54]
- utc = datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S')
- utc = utc.replace(tzinfo=tz.tzutc())
- local = utc.astimezone(tz.tzlocal())
- local = local.strftime('%d-%m-%Y %H:%M:%S')
- time_discord = utc.astimezone(tz.tzlocal())
- time_discord = time_discord.strftime('%H:%M:%S')
- prio_check = prioriteit == ('P 1') and melding.find('OMS-') == -1 and melding.find('PAC-') == -1 or meldinglow.find('opschaling') != -1 or meldinglow.find(' grip') != -1
- vianen_check = meldinglow.find(' vianen ') != -1 or meldinglow.find(' hagestein ') != -1
- cap_vianen = capcode == '000708906'
- cap_vc2 = capcode == '000706587' or capcode == '000706952'
- cap_persalarm = capcode == '000736090'
- cap_regio = capcode == '000706001'
- cap_lifeliners = capcode == '000120901' or capcode == '001420059' or capcode == '000923993'
- cap_dict = {
- '000706001': 'Monitorcode RAC',
- '000708906': 'Monitorcode Vianen',
- '000706587': 'VC-2 Bilthoven',
- '000706952': 'VC-2 Houten',
- '000736090': 'Persalarm',
- '000120901': 'Lifeliner 1',
- '001420059': 'Lifeliner 2',
- '000923993': 'Lifeliner 3',
- }
- if capcode in cap_dict:
- cap_discord = cap_dict[capcode]
- else:
- cap_discord = capcode
- if cap_vianen or cap_vc2 or cap_regio:
- priokleur = 'red'
- color_discord = '16711680'
- if cap_lifeliners:
- priokleur = 'yellow'
- color_discord = '16776960'
- if cap_persalarm:
- priokleur = 'blue'
- color_discord = '255'
- if cap_regio or cap_persalarm or cap_vianen or cap_vc2 and vianen_check or cap_lifeliners and vianen_check:
- print ' '
- print colored(local,'blue', attrs=['bold']), colored(capcode, 'white', attrs=['bold']), colored(melding, priokleur, attrs=['bold']),
- if cap_vianen:
- if vianen_check:
- if prio_check:
- discord.append('prio1')
- else:
- discord.append('prio2')
- else:
- discord.apend('prio2')
- if cap_vc2 and vianen_check:
- discord.append('prio1')
- if cap_lifeliners and vianen_check:
- discord.append('prio1')
- if cap_persalarm:
- discord.append('regio')
- if vianen_check:
- discord.append('prio1')
- if cap_regio:
- discord.append('regio')
- if 'prio1' in discord:
- url = ""
- data = {}
- data["username"] = "Prio 1"
- data["embeds"] = []
- embed = {}
- embed["color"] = color_discord
- embed["fields"] = []
- field_alarm = {}
- field_alarm["name"] = "Melding"
- field_alarm["value"] = melding
- embed["fields"].append(field_alarm)
- field_description = {}
- field_description["name"] = "Cap"
- field_description["value"] = cap_discord
- field_description["inline"] = "true"
- embed["fields"].append(field_description)
- field_time = {}
- field_time["name"] = "Tijd"
- field_time["value"] = time_discord
- field_time["inline"] = "true"
- embed["fields"].append(field_time)
- data["embeds"].append(embed)
- result = requests.post(url, data=json.dumps(data), headers={"Content-Type": "application/json"})
- try:
- result.raise_for_status()
- except requests.exceptions.HTTPError as err:
- print(err)
- else:
- print("Discord: delivered successfully, code {}.".format(result.status_code))
- if 'prio2' in discord:
- url = ""
- data = {}
- data["username"] = "Prio 2"
- data["embeds"] = []
- embed = {}
- embed["color"] = color_discord
- embed["fields"] = []
- field_alarm = {}
- field_alarm["name"] = "Melding"
- field_alarm["value"] = melding
- embed["fields"].append(field_alarm)
- field_description = {}
- field_description["name"] = "Cap"
- field_description["value"] = cap_discord
- field_description["inline"] = "true"
- embed["fields"].append(field_description)
- field_time = {}
- field_time["name"] = "Tijd"
- field_time["value"] = time_discord
- field_time["inline"] = "true"
- embed["fields"].append(field_time)
- data["embeds"].append(embed)
- result = requests.post(url, data=json.dumps(data), headers={"Content-Type": "application/json"})
- try:
- result.raise_for_status()
- except requests.exceptions.HTTPError as err:
- print(err)
- else:
- print("Discord: delivered successfully, code {}.".format(result.status_code))
- if 'regio' in discord:
- url = ""
- data = {}
- data["username"] = "Regio"
- data["embeds"] = []
- embed = {}
- embed["color"] = color_discord
- embed["fields"] = []
- field_alarm = {}
- field_alarm["name"] = "Melding"
- field_alarm["value"] = melding
- embed["fields"].append(field_alarm)
- field_description = {}
- field_description["name"] = "Cap"
- field_description["value"] = cap_discord
- field_description["inline"] = "true"
- embed["fields"].append(field_description)
- field_time = {}
- field_time["name"] = "Tijd"
- field_time["value"] = time_discord
- field_time["inline"] = "true"
- embed["fields"].append(field_time)
- data["embeds"].append(embed)
- result = requests.post(url, data=json.dumps(data), headers={"Content-Type": "application/json"})
- try:
- result.raise_for_status()
- except requests.exceptions.HTTPError as err:
- print(err)
- else:
- print("Discord: delivered successfully, code {}.".format(result.status_code))
- except KeyboardInterrupt:
- os.kill(multimon_ng.pid, 9)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement