]> www.average.org Git - loctrkd.git/blob - gps303/mock.py
9652fc1c6baadd23883a10a7c57b4f61f00eaf18
[loctrkd.git] / gps303 / mock.py
1 """ Watch for locevt and print them """
2
3 from datetime import datetime, timezone
4 from logging import getLogger
5 from os import umask
6 from sys import argv, stdin
7 import zmq
8
9 from . import common
10 from .zmsg import LocEvt
11
12 log = getLogger("gps303/watch")
13
14
15 def main(conf):
16     zctx = zmq.Context()
17     zpub = zctx.socket(zmq.PUB)
18     oldmask = umask(0o117)
19     zpub.bind(conf.get("lookaside", "publishurl"))
20     umask(oldmask)
21
22     while True:
23         line = stdin.readline()
24         line = line.rstrip("\r\n")
25         if not line:
26             break
27         print(line.encode())
28         args = line.split(" ")
29         imei = args[0]
30         kwargs = dict([arg.split("=") for arg in args[1:]])
31         msg = LocEvt(imei=imei, **kwargs)
32         print("Publishing:", msg)
33         zpub.send(msg.packed)
34
35
36 if __name__.endswith("__main__"):
37     main(common.init(log))