mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-04-21 06:03:50 +00:00
improve doubleFilter
This commit is contained in:
parent
2230241538
commit
d4e6d6e618
1 changed files with 13 additions and 8 deletions
|
|
@ -34,21 +34,26 @@ class DoubleFilter:
|
||||||
self._scanWord = scanWord
|
self._scanWord = scanWord
|
||||||
|
|
||||||
def check(self, bwPacket):
|
def check(self, bwPacket):
|
||||||
for listPacket in self._filterList:
|
|
||||||
if listPacket.get("timestamp") < (time.time() - self._config.getInt("doubleFilter", "IgnoreTime", "serverConfig")):
|
|
||||||
self._filterList.remove(listPacket)
|
|
||||||
logging.debug("entry to old remove")
|
|
||||||
continue
|
|
||||||
|
|
||||||
|
self._deleteTooOld()
|
||||||
|
|
||||||
|
for listPacket in self._filterList:
|
||||||
if listPacket.get(self._scanWord) is bwPacket.get(self._scanWord):
|
if listPacket.get(self._scanWord) is bwPacket.get(self._scanWord):
|
||||||
self._filterList.remove(listPacket)
|
self._filterList.remove(listPacket)
|
||||||
logging.debug("found a same and remove the old one")
|
logging.debug("found duplicate: %s", bwPacket.get(self._scanWord))
|
||||||
|
|
||||||
self._filterList.insert(0, bwPacket)
|
self._filterList.insert(0, bwPacket)
|
||||||
self._deleteTooMuch()
|
self._deleteTooMuch()
|
||||||
logging.debug(self._filterList)
|
|
||||||
|
def _deleteTooOld(self):
|
||||||
|
counter = 0
|
||||||
|
for listPacket in self._filterList:
|
||||||
|
if listPacket.get("timestamp") < (time.time() - self._config.getInt("doubleFilter", "IgnoreTime", "serverConfig")):
|
||||||
|
self._filterList.remove(listPacket)
|
||||||
|
counter += 1
|
||||||
|
if counter:
|
||||||
|
logging.debug("%d old entry removed", counter)
|
||||||
|
|
||||||
def _deleteTooMuch(self):
|
def _deleteTooMuch(self):
|
||||||
if len(self._filterList) > self._config.getInt("doubleFilter", "MaxEntry", "serverConfig"):
|
if len(self._filterList) > self._config.getInt("doubleFilter", "MaxEntry", "serverConfig"):
|
||||||
logging.debug("list full, delete one")
|
|
||||||
self._filterList.pop()
|
self._filterList.pop()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue