Replace the wildcards in a given message.
37def replaceWildcards(message, bwPacket):
38 r"""!Replace the wildcards in a given message
39
40 @param message: Message in which wildcards should be replaced
41 @param bwPacket: bwPacket instance with the replacement information
42 @return Input message with the replaced wildcards"""
43
44
45 _wildcards = {
46
47
48 "{BR}": "\r\n",
49 "{LPAR}": "(",
50 "{RPAR}": ")",
51 "{TIME}": time.strftime("%d.%m.%Y %H:%M:%S"),
52
53
54
55 "{SNAME}": bwPacket.get("serverName"),
56 "{SVERS}": bwPacket.get("serverVersion"),
57 "{SDATE}": bwPacket.get("serverBuildDate"),
58 "{SBRCH}": bwPacket.get("serverBranch"),
59
60
61 "{CNAME}": bwPacket.get("clientName"),
62 "{CIP}": bwPacket.get("clientIP"),
63 "{CVERS}": bwPacket.get("clientVersion"),
64 "{CDATE}": bwPacket.get("clientBuildDate"),
65 "{CBRCH}": bwPacket.get("clientBranch"),
66
67
68 "{INSRC}": bwPacket.get("inputSource"),
69 "{TIMES}": bwPacket.get("timestamp"),
70 "{FREQ}": bwPacket.get("frequency"),
71 "{MODE}": bwPacket.get("mode"),
72 }
73
74
75 mode = bwPacket.get("mode")
76
77
78 if mode == "fms":
79 fms_wildcards = {
80 "{FMS}": bwPacket.get("fms"),
81 "{SERV}": bwPacket.get("service"),
82 "{COUNT}": bwPacket.get("country"),
83 "{LOC}": bwPacket.get("location"),
84 "{VEHC}": bwPacket.get("vehicle"),
85 "{STAT}": bwPacket.get("status"),
86 "{DIR}": bwPacket.get("direction"),
87 "{DIRT}": bwPacket.get("directionText"),
88 "{TACI}": bwPacket.get("tacticalInfo"),
89 }
90 _wildcards.update(fms_wildcards)
91
92
93 elif mode == "pocsag":
94 pocsag_wildcards = {
95 "{BIT}": bwPacket.get("bitrate"),
96 "{RIC}": bwPacket.get("ric"),
97 "{SRIC}": bwPacket.get("subric"),
98 "{SRICT}": bwPacket.get("subricText"),
99 "{MSG}": bwPacket.get("message"),
100 }
101 _wildcards.update(pocsag_wildcards)
102
103
104 elif mode == "zvei":
105 zvei_wildcards = {
106 "{TONE}": bwPacket.get("tone"),
107 }
108 _wildcards.update(zvei_wildcards)
109
110
111 elif mode == "msg":
112 msg_wildcards = {
113 "{MSG}": bwPacket.get("message"),
114 }
115 _wildcards.update(msg_wildcards)
116
117
118 for wildcard, field in _wildcards.items():
119
120 if field is not None:
121 message = message.replace(wildcard, field)
122
123
124 for wildcard, fieldName in _additionalWildcards.items():
125 field = bwPacket.get(fieldName)
126 if field is not None:
127 message = message.replace(wildcard, field)
128
129 return message