Peer map locations now driven from DB
This commit is contained in:
parent
0e03ad4f03
commit
ceb42fac61
@ -200,6 +200,10 @@ class OPENBRIDGE(DatagramProtocol):
|
|||||||
_hash = _packet[53:]
|
_hash = _packet[53:]
|
||||||
_ckhs = hmac_new(self._config['PASSPHRASE'],_data,sha1).digest()
|
_ckhs = hmac_new(self._config['PASSPHRASE'],_data,sha1).digest()
|
||||||
|
|
||||||
|
## print(compare_digest(_hash, _ckhs))
|
||||||
|
## print(_sockaddr == self._config['TARGET_SOCK'])
|
||||||
|
## print(ahex(_ckhs))
|
||||||
|
## print(ahex(_hash))
|
||||||
|
|
||||||
if compare_digest(_hash, _ckhs) and _sockaddr == self._config['TARGET_SOCK']:
|
if compare_digest(_hash, _ckhs) and _sockaddr == self._config['TARGET_SOCK']:
|
||||||
_peer_id = _data[11:15]
|
_peer_id = _data[11:15]
|
||||||
@ -726,8 +730,8 @@ class HBSYSTEM(DatagramProtocol):
|
|||||||
and self._peers[_peer_id]['SOCKADDR'] == _sockaddr:
|
and self._peers[_peer_id]['SOCKADDR'] == _sockaddr:
|
||||||
logger.info('(%s) Peer is closing down: %s (%s)', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_peer_id))
|
logger.info('(%s) Peer is closing down: %s (%s)', self._system, self._peers[_peer_id]['CALLSIGN'], int_id(_peer_id))
|
||||||
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
|
||||||
del self._peers[_peer_id]
|
|
||||||
self.send_peer_loc(_peer_id, self._peers[_peer_id]['CALLSIGN'], '*', '*', '*', '*', '*', '*')
|
self.send_peer_loc(_peer_id, self._peers[_peer_id]['CALLSIGN'], '*', '*', '*', '*', '*', '*')
|
||||||
|
del self._peers[_peer_id]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
_peer_id = _data[4:8] # Configure Command
|
_peer_id = _data[4:8] # Configure Command
|
||||||
|
72
web/app.py
72
web/app.py
@ -471,8 +471,12 @@ def hbnet_web_service():
|
|||||||
time = db.Column(db.DateTime())
|
time = db.Column(db.DateTime())
|
||||||
server = db.Column(db.String(100), nullable=False, server_default='')
|
server = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
system_name = db.Column(db.String(100), nullable=False, server_default='')
|
system_name = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
user = db.Column(db.Boolean(), nullable=False, server_default='1')
|
user = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
dmr_id = db.Column(db.Integer(), primary_key=False)
|
dmr_id = db.Column(db.Integer(), primary_key=False)
|
||||||
|
url = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
|
software = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
|
loc = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
|
|
||||||
|
|
||||||
class CustomID(db.Model):
|
class CustomID(db.Model):
|
||||||
__tablename__ = 'custom_dmr_id'
|
__tablename__ = 'custom_dmr_id'
|
||||||
@ -737,6 +741,8 @@ def hbnet_web_service():
|
|||||||
dev_loc = GPS_LocLog.query.order_by(GPS_LocLog.time.desc()).limit(300).all()
|
dev_loc = GPS_LocLog.query.order_by(GPS_LocLog.time.desc()).limit(300).all()
|
||||||
dev_list = []
|
dev_list = []
|
||||||
f_map = folium.Map(location=center_map, zoom_start=map_zoom)
|
f_map = folium.Map(location=center_map, zoom_start=map_zoom)
|
||||||
|
peer_l = PeerLoc.query.all()
|
||||||
|
print(peer_l)
|
||||||
for i in dev_loc:
|
for i in dev_loc:
|
||||||
if i.callsign in dev_list:
|
if i.callsign in dev_list:
|
||||||
pass
|
pass
|
||||||
@ -771,7 +777,7 @@ def hbnet_web_service():
|
|||||||
</table>
|
</table>
|
||||||
</i>
|
</i>
|
||||||
""", icon=folium.Icon(color="blue", icon="record"), tooltip='<strong>' + i.callsign + '</strong>').add_to(f_map)
|
""", icon=folium.Icon(color="blue", icon="record"), tooltip='<strong>' + i.callsign + '</strong>').add_to(f_map)
|
||||||
for l in peer_locations.items():
|
for l in peer_l:
|
||||||
## folium.Marker([float(l[1][1]), float(l[1][2])], popup='''
|
## folium.Marker([float(l[1][1]), float(l[1][2])], popup='''
|
||||||
##<div class="panel panel-default">
|
##<div class="panel panel-default">
|
||||||
## <div class="panel-heading" style="text-align: center;"><h4>''' + l[1][0] + '''</h4></div>
|
## <div class="panel-heading" style="text-align: center;"><h4>''' + l[1][0] + '''</h4></div>
|
||||||
@ -789,11 +795,11 @@ def hbnet_web_service():
|
|||||||
##</div>
|
##</div>
|
||||||
## ''', icon=folium.Icon(color="red", icon="record"), tooltip='<strong>' + l[1][0] + '</strong>').add_to(f_map)
|
## ''', icon=folium.Icon(color="red", icon="record"), tooltip='<strong>' + l[1][0] + '</strong>').add_to(f_map)
|
||||||
|
|
||||||
folium.Marker([float(l[1][1]), float(l[1][2])], popup='''
|
folium.Marker([float(l.lat), float(l.lon)], popup='''
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td> <strong><h4>''' + l[1][0] + '''</strong></h4> </td>
|
<td> <strong><h4>''' + l.callsign + '''</strong></h4> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -801,32 +807,32 @@ def hbnet_web_service():
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><strong>DMR ID:</strong></td>
|
<td style="width: 64.4667px;"><strong>DMR ID:</strong></td>
|
||||||
<td> ''' + str(l[0]) + ''' </td>
|
<td> ''' + str(l.dmr_id) + ''' </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><strong>Location:</strong></td>
|
<td style="width: 64.4667px;"><strong>Location:</strong></td>
|
||||||
<td> ''' + l[1][5] + ''' </td>
|
<td> ''' + l.loc + ''' </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><strong>Lat, Lon:</strong></td>
|
<td style="width: 64.4667px;"><strong>Lat, Lon:</strong></td>
|
||||||
<td> ''' + l[1][1] + ''', ''' + l[1][2] + ''' </td>
|
<td> ''' + l.lat + ''', ''' + l.lon + ''' </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><strong>Description:</strong></td>
|
<td style="width: 64.4667px;"><strong>Description:</strong></td>
|
||||||
<td> ''' + l[1][4] + ''' </td>
|
<td> ''' + l.comment + ''' </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><p><strong>URL:</strong></p>
|
<td style="width: 64.4667px;"><p><strong>URL:</strong></p>
|
||||||
</td>
|
</td>
|
||||||
<td><a href="''' + l[1][3] + '''"> ''' + l[1][3] + ''' </a></td>
|
<td><a href="''' + l.url + '''"> ''' + l.url + ''' </a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 64.4667px;"><strong>Device:</strong></td>
|
<td style="width: 64.4667px;"><strong>Device:</strong></td>
|
||||||
<td> ''' + l[1][6] + ''' </td>
|
<td> ''' + l.software + ''' </td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
''', icon=folium.Icon(color="red", icon="record"), tooltip='<strong>' + l[1][0] + '</strong>').add_to(f_map)
|
''', icon=folium.Icon(color="red", icon="record"), tooltip='<strong>' + l.callsign + '</strong>').add_to(f_map)
|
||||||
content = f_map._repr_html_()
|
content = f_map._repr_html_()
|
||||||
|
|
||||||
return render_template('map.html', markup_content = Markup(content))
|
return render_template('map.html', markup_content = Markup(content))
|
||||||
@ -2489,6 +2495,33 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
db.session.add(burn_list)
|
db.session.add(burn_list)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
def peer_loc_add(_call, _lat, _lon, _comment, _dmr_id, _server, _user, _url, _software, _loc):
|
||||||
|
add_peer_loc = PeerLoc(
|
||||||
|
callsign = _call,
|
||||||
|
lat = _lat,
|
||||||
|
lon = _lon,
|
||||||
|
time = datetime.datetime.utcnow(),
|
||||||
|
comment = _comment,
|
||||||
|
dmr_id = _dmr_id,
|
||||||
|
server = _server,
|
||||||
|
user = _user,
|
||||||
|
url = _url,
|
||||||
|
software = _software,
|
||||||
|
system_name = '',
|
||||||
|
loc = _loc
|
||||||
|
)
|
||||||
|
db.session.add(add_peer_loc)
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
|
def del_peer_loc(_dmr_id):
|
||||||
|
try:
|
||||||
|
_peer_loc = PeerLoc.query.filter_by(dmr_id=_dmr_id).first()
|
||||||
|
db.session.delete(_peer_loc)
|
||||||
|
db.session.commit()
|
||||||
|
except:
|
||||||
|
print('Peer not in DB')
|
||||||
|
pass
|
||||||
|
|
||||||
def dash_loc_add(_call, _lat, _lon, _comment, _dmr_id, _server):
|
def dash_loc_add(_call, _lat, _lon, _comment, _dmr_id, _server):
|
||||||
add_loc = GPS_LocLog(
|
add_loc = GPS_LocLog(
|
||||||
callsign = _call,
|
callsign = _call,
|
||||||
@ -5922,12 +5955,12 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
mode='override',
|
mode='override',
|
||||||
value=authorized_peer(hblink_req['login_id'])[1]
|
value=authorized_peer(hblink_req['login_id'])[1]
|
||||||
)
|
)
|
||||||
try:
|
## try:
|
||||||
active_tgs[hblink_req['login_server']][hblink_req['system']] = [{'1':[]}, {'2':[]}, {'SYSTEM': ''}, {'peer_id':hblink_req['login_id']}]
|
## active_tgs[hblink_req['login_server']][hblink_req['system']] = [{'1':[]}, {'2':[]}, {'SYSTEM': ''}, {'peer_id':hblink_req['login_id']}]
|
||||||
## print('Restart ' + hblink_req['login_server'] + ' please.')
|
## print('Restart ' + hblink_req['login_server'] + ' please.')
|
||||||
except:
|
## except:
|
||||||
## active_tgs[hblink_req['login_server']] = {}
|
## active_tgs[hblink_req['login_server']] = {}
|
||||||
pass
|
## pass
|
||||||
elif authorized_peer(hblink_req['login_id'])[0] == False:
|
elif authorized_peer(hblink_req['login_id'])[0] == False:
|
||||||
## print('log fail')
|
## print('log fail')
|
||||||
authlog_add(hblink_req['login_id'], hblink_req['login_ip'], hblink_req['login_server'], 'Not Registered', '-', 'Failed')
|
authlog_add(hblink_req['login_id'], hblink_req['login_ip'], hblink_req['login_server'], 'Not Registered', '-', 'Failed')
|
||||||
@ -5969,9 +6002,14 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
)
|
)
|
||||||
elif 'loc_callsign' in hblink_req:
|
elif 'loc_callsign' in hblink_req:
|
||||||
if hblink_req['lat'] == '*' and hblink_req['lon'] == '*':
|
if hblink_req['lat'] == '*' and hblink_req['lon'] == '*':
|
||||||
del peer_locations[hblink_req['dmr_id']]
|
## del peer_locations[hblink_req['dmr_id']]
|
||||||
|
del_peer_loc(hblink_req['dmr_id'])
|
||||||
|
print('del peer loc')
|
||||||
else:
|
else:
|
||||||
peer_locations[hblink_req['dmr_id']] = [hblink_req['loc_callsign'], hblink_req['lat'], hblink_req['lon'], hblink_req['url'], hblink_req['description'], hblink_req['loc'], hblink_req['software']]
|
## peer_locations[hblink_req['dmr_id']] = [hblink_req['loc_callsign'], hblink_req['lat'], hblink_req['lon'], hblink_req['url'], hblink_req['description'], hblink_req['loc'], hblink_req['software']]
|
||||||
|
del_peer_loc(hblink_req['dmr_id'])
|
||||||
|
peer_loc_add(hblink_req['loc_callsign'], hblink_req['lat'], hblink_req['lon'], hblink_req['description'], hblink_req['dmr_id'], '', '', hblink_req['url'], hblink_req['software'], hblink_req['loc'])
|
||||||
|
print(PeerLoc.query.all())
|
||||||
response = ''
|
response = ''
|
||||||
elif 'dashboard' in hblink_req:
|
elif 'dashboard' in hblink_req:
|
||||||
if 'lat' in hblink_req:
|
if 'lat' in hblink_req:
|
||||||
|
Loading…
Reference in New Issue
Block a user