-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathapi.py
executable file
·82 lines (64 loc) · 2.47 KB
/
api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env python
# Von andre at hamburg.freifunk.net , basierend auf https://github.com/freifunkhamburg/ffmap-backend/blob/dev/node_number.py
#Bibliotheken importieren
import time
import datetime
import json
import shutil
Landkreise={
"cuxhaven":[53.844976, 8.707192,"","",""],
#"dithmarschen":[54.211523, 9.120454,"Offener Kanal Westkueste","Landvogt-Johannsen-Strasse 11, Heide","25746"],
"malente":[],
"neumuenster":[54.085557, 9.977224,"","",""],
"nordfriesland":[54.483218, 9.051240,"","",""],
"nordheide":[53.325656, 9.868644,"","",""],
"ploen":[54.202036, 10.431209,"","",""],
"rendsburg-eckernfoerde":[54.303842, 9.649755,"","",""],
"schleswig":[54.521868, 9.561861,"","",""],
"segeberg":[53.923483, 10.114170,"","",""],
"stade":[53.582963, 9.459456,"","",""],
"steinburg":[53.922188, 9.518219,"","",""],
"sylt":[],
"tarp":[]
}
path="/opt/nord-community-api/"
appendix="-api.json"
#Datei oeffnen
f = open('/var/www/html/meshviewer/data/nodelist.json')
#JSON einlesen
data = json.load(f)
#Nodes attribut aussortieren
nodes = data['nodes']
#Zaehler mit Wert 0 anlegen
num_nodes = 0
#Fuer jeden Knoten in nodes
for node in nodes:
#Status Attribut aussortieren
status = node['status']
#Wenn der Status online entaehlt, hochzaehlen
if status['online']:
num_nodes += 1
#Knoten pro Landkreis (Berechnet aus Gesamtzahl Nodes minus 329 Fix-Knoten in Dittmarschen)
Knoten_pro_Landkreis = (num_nodes-329) / len(Landkreise)
#Zeit holen
thetime = datetime.datetime.now().isoformat()
for Landkreis in Landkreise:
LandkreisAPI = path+Landkreis+appendix
#Aus dem Original eine Datei fuer jeden Landkreis erzeugen
#shutil.copy2(path+'Original'+appendix,LandkreisAPI)
#Freifunk API-Datei einladen und JSON lesen
ffnord = None
with open(LandkreisAPI, 'r') as fp:
ffnord = json.load(fp)
#Attribute Zeitstempel und Knotenanzahl setzen
ffnord['state']['lastchange'] = thetime
ffnord['state']['nodes'] = Knoten_pro_Landkreis
#ffnord['location']['city'] = Landkreis
#ffnord['location']['lat'] = Landkreise[Landkreis][0]
#ffnord['location']['lon'] = Landkreise[Landkreis][1]
#ffnord['location']['address']['Name'] = Landkreise[Landkreis][2]
#ffnord['location']['address'] ['Street']= Landkreise[Landkreis][3]
#ffnord['location']['address'] ['Zipcode']= Landkreise[Landkreis][4]
#Freifunk API-Datein mit geaenderten werten schreiben
with open(LandkreisAPI, 'w') as fp:
json.dump(ffnord, fp, indent=2, separators=(',', ': '))