mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-01-08 17:50:06 +01:00
Update doubleFilter.py
Probleme mit dem double Filter. Immer wenn die Liste nach Zeit gelöscht wird, wird das nächste doppelte Paket als ok durchgelassen. Die Liste ist dann bis auf einen Eintrag leer, der erste Eintrag wird aber nicht auf Duplikat geprüft. Einstellung ist RIC, SUBRIC, Message. Die Zeit habe ich zum testen auf 2 sekunden gestellt. type: module res: filter.doubleFilter config: ignoreTime: 2 maxEntry: 40 pocsagFields: ric subric message
This commit is contained in:
parent
b277640046
commit
e43aad1e42
|
|
@ -69,6 +69,11 @@ class BoswatchModule(ModuleBase):
|
|||
def _check(self, bwPacket, filterFields):
|
||||
self._filterLists[bwPacket.get("mode")].insert(0, bwPacket)
|
||||
|
||||
for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one
|
||||
if all(listPacket.get(x) == bwPacket.get(x) for x in filterFields):
|
||||
logging.debug("found duplicate: %s", bwPacket.get("mode"))
|
||||
return False
|
||||
|
||||
# delete entries that are to old
|
||||
counter = 0
|
||||
for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one
|
||||
|
|
@ -83,10 +88,5 @@ class BoswatchModule(ModuleBase):
|
|||
logging.debug("MaxEntry reached - delete oldest")
|
||||
self._filterLists[bwPacket.get("mode")].pop()
|
||||
|
||||
for listPacket in self._filterLists[bwPacket.get("mode")][1:]: # [1:] skip first entry, thats the new one
|
||||
if all(listPacket.get(x) == bwPacket.get(x) for x in filterFields):
|
||||
logging.debug("found duplicate: %s", bwPacket.get("mode"))
|
||||
return False
|
||||
|
||||
logging.debug("doubleFilter ok")
|
||||
return None
|
||||
|
|
|
|||
Loading…
Reference in a new issue