mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-01-20 15:40:24 +01:00
implement registerWildcard() for modules
This commit is contained in:
parent
b0a5cb57fe
commit
51e2b1e258
|
|
@ -12,19 +12,24 @@
|
|||
@file: wildcard.py
|
||||
@date: 15.01.2018
|
||||
@author: Bastian Schroll
|
||||
@description: Little Helper to replace wildcards in stings
|
||||
@description: Functions to replace wildcards in stings
|
||||
"""
|
||||
import logging
|
||||
import time
|
||||
|
||||
# from boswatch.module import file
|
||||
|
||||
logging.debug("- %s loaded", __name__)
|
||||
|
||||
# todo check function and document + write an test
|
||||
# todo maybe can be a module instead of a native boswatch piece
|
||||
# idea: maybe this can be a class with a register_wildcard() method
|
||||
# so the list with wildcards can be modified by other modules
|
||||
|
||||
_additionalWildcards = {}
|
||||
|
||||
|
||||
def registerWildcard(wildcard, bwPacketField):
|
||||
if wildcard in _additionalWildcards:
|
||||
logging.error("wildcard always registered: %s", wildcard)
|
||||
return
|
||||
logging.debug("register new wildcard %s for field: %s", wildcard, bwPacketField)
|
||||
_additionalWildcards[wildcard] = bwPacketField
|
||||
|
||||
|
||||
def replaceWildcards(message, bwPacket):
|
||||
|
|
@ -78,7 +83,10 @@ def replaceWildcards(message, bwPacket):
|
|||
|
||||
# message for MSG packet is done in poc
|
||||
}
|
||||
for wildcard in _wildcards:
|
||||
message = message.replace(wildcard, _wildcards.get(wildcard))
|
||||
for wildcard, field in _wildcards.items():
|
||||
message = message.replace(wildcard, field)
|
||||
|
||||
for wildcard, field in _additionalWildcards.items():
|
||||
message = message.replace(wildcard, bwPacket.getField(field))
|
||||
|
||||
return message
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
import logging
|
||||
import time
|
||||
|
||||
from boswatch import wildcard
|
||||
|
||||
logging.debug("- %s loaded", __name__)
|
||||
|
||||
|
||||
|
|
@ -98,3 +100,17 @@ class Module:
|
|||
"""!Called on shutdown of boswatch
|
||||
can be inherited"""
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def registerWildcard(newWildcard, bwPacketField):
|
||||
"""!Register a new wildcard
|
||||
|
||||
@param newWildcard: wildcard where parser searching for
|
||||
@param bwPacketField: field from bwPacket where holds replacement data"""
|
||||
if not newWildcard.startswith("{") or not newWildcard.endswith("}"):
|
||||
logging.error("wildcard not registered - false format: %s", newWildcard)
|
||||
return
|
||||
if bwPacketField == "":
|
||||
logging.error("wildcard not registered - bwPacket field is empty")
|
||||
return
|
||||
wildcard.registerWildcard(newWildcard, bwPacketField)
|
||||
|
|
|
|||
Loading…
Reference in a new issue