X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fqry.py;fp=loctrkd%2Fqry.py;h=cde47ec7a64a62552667f19dd73fade36fad36fe;hb=dbdf9d63af31770ad57302e16b17a2fdc526773f;hp=0000000000000000000000000000000000000000;hpb=bf48ccad4b4b91e7d7e09d1087f5953bc2db97d7;p=loctrkd.git diff --git a/loctrkd/qry.py b/loctrkd/qry.py new file mode 100644 index 0000000..cde47ec --- /dev/null +++ b/loctrkd/qry.py @@ -0,0 +1,40 @@ +from datetime import datetime, timezone +from sqlite3 import connect +import sys + +from .zx303proto import parse_message, proto_by_name + +db = connect(sys.argv[1]) +c = db.cursor() +if len(sys.argv) > 2: + proto = proto_by_name(sys.argv[2]) + if proto < 0: + raise ValueError("No protocol with name " + sys.argv[2]) + selector = " where proto = :proto" +else: + proto = -1 + selector = "" + +c.execute( + "select tstamp, imei, peeraddr, proto, packet from events" + selector, + {"proto": proto}, +) + +for tstamp, imei, peeraddr, proto, packet in c: + if len(packet) > packet[0] + 1: + print( + "proto", + packet[1], + "datalen", + len(packet), + "msg.length", + packet[0], + file=sys.stderr, + ) + msg = parse_message(packet) + print( + datetime.fromtimestamp(tstamp).astimezone(tz=timezone.utc).isoformat(), + imei, + peeraddr, + msg, + )