-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
79 lines (58 loc) · 2.03 KB
/
app.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
from logger import debug, fatal, error
from device import deviceInit, deviceConnect, deviceDisconnect, deviceDisable, deviceEnable
from deviceInfo import getDeviceSerial, syncDeviceTime
from deviceData import getDeviceUsers, getDeviceRecords
import requests
from times import getTimes
def callServer(url, data=None):
try:
response = requests.post(url, json=data)
return response.status_code == 200
except Exception as e:
error("callServer", e)
return False
def main(args):
debug("args", args)
if not callServer(args.URL):
return 11
device = deviceInit(args.host, args.port, args.timeout,
args.password, args.UDP, not args.ping)
if device is None:
return 1
deviceConnection = deviceConnect(device)
if deviceConnection is None:
return 2
if not deviceDisable(deviceConnection):
deviceDisconnect(deviceConnection)
return 3
if args.timezone is not None:
import os
import time
os.environ['TZ'] = args.timezone
time.tzset()
try:
output = {
'device': {}
}
if args.serial:
output['device']['serial'] = getDeviceSerial(deviceConnection)
callServer(args.URL, output)
if args.time:
output['time'] = getTimes(deviceConnection)
callServer(args.URL, output)
if args.users:
output['users'] = getDeviceUsers(deviceConnection)
callServer(args.URL, output)
if args.records:
output['users'] = getDeviceRecords(deviceConnection)
callServer(args.URL, output)
if callServer(args.URL, output):
if args.time:
if abs(output['time']['deviceOffset']) > 1:
if abs(output['time']['deviceOffset']) < 3600:
syncDeviceTime(deviceConnection)
except Exception as e:
fatal("main", e)
deviceEnable(deviceConnection)
deviceDisconnect(deviceConnection)
return 0