]> www.average.org Git - loctrkd.git/commitdiff
function `proto_handled()` in proto modules
authorEugene Crosser <crosser@average.org>
Mon, 11 Jul 2022 21:13:24 +0000 (23:13 +0200)
committerEugene Crosser <crosser@average.org>
Thu, 14 Jul 2022 20:39:57 +0000 (22:39 +0200)
loctrkd/beesure.py
loctrkd/watch.py
loctrkd/zx303proto.py

index f3f58b65c566701a8287a68d91e30c0c7911722f..8fa83f51902b0e472286ceff089ba49aeb389964 100755 (executable)
@@ -26,6 +26,7 @@ __all__ = (
     "class_by_prefix",
     "enframe",
     "inline_response",
+    "proto_handled",
     "parse_message",
     "probe_buffer",
     "proto_by_name",
@@ -408,6 +409,10 @@ def class_by_prefix(
     return CLASSES[proto]
 
 
+def proto_handled(proto: str) -> bool:
+    return proto.startswith(PROTO_PREFIX)
+
+
 def proto_name(obj: Union[MetaPkt, BeeSurePkt]) -> str:
     return PROTO_PREFIX + (
         obj.__class__.__name__ if isinstance(obj, BeeSurePkt) else obj.__name__
index 7221d2b716595fb05623f1f66a8d476aaeee9d3c..738cfe230be94dfb415a6c40b21045e8e1583960 100644 (file)
@@ -14,7 +14,9 @@ log = getLogger("loctrkd/watch")
 
 
 class ProtoModule:
-    PROTO_PREFIX: str
+    @staticmethod
+    def proto_handled(proto: str) -> bool:
+        ...
 
     @staticmethod
     def parse_message(packet: bytes, is_incoming: bool = True) -> Any:
@@ -41,7 +43,7 @@ def runserver(conf: ConfigParser) -> None:
             zmsg = Bcast(zsub.recv())
             print("I" if zmsg.is_incoming else "O", zmsg.proto, zmsg.imei)
             for pmod in pmods:
-                if zmsg.proto.startswith(pmod.PROTO_PREFIX):
+                if pmod.proto_handled(zmsg.proto.startswith):
                     msg = pmod.parse_message(zmsg.packet, zmsg.is_incoming)
                     print(msg)
     except KeyboardInterrupt:
index c47c216134c1e6ff737d01c4107c79351c3c07ea..2c44a1382b1058b7b0a9e2f0325fde57c3b107a5 100755 (executable)
@@ -35,6 +35,7 @@ __all__ = (
     "Stream",
     "class_by_prefix",
     "inline_response",
+    "proto_handled",
     "parse_message",
     "probe_buffer",
     "proto_by_name",
@@ -875,6 +876,10 @@ def class_by_prefix(
     return CLASSES[proto]
 
 
+def proto_handled(proto: str) -> bool:
+    return proto.startswith(PROTO_PREFIX)
+
+
 def proto_name(obj: Union[MetaPkt, GPS303Pkt]) -> str:
     return PROTO_PREFIX + (
         obj.__class__.__name__ if isinstance(obj, GPS303Pkt) else obj.__name__