@@ -86,55 +86,47 @@ async def consume_messages(connection, channel, queue, api_clients):
86
86
player_name = ban_data .get ('player_name' , ban_data .get ('player' ))
87
87
player_id = ban_data .get ('player_id' , ban_data .get ('steam_id_64' ))
88
88
89
- if not player_name or not player_id :
90
- logging .error ("Fehlende erforderliche Datenfelder in den Ban-Daten" )
91
- await message .nack (requeue = True )
89
+ # Überprüfen auf fehlende oder ungültige Daten
90
+ if not player_name :
91
+ logging .error (f"Fehlendes 'player_name' in den Ban-Daten: { ban_data } " )
92
+ await message .nack (requeue = False )
92
93
continue
93
-
94
+ if not player_id :
95
+ logging .error (f"Fehlendes 'player_id' in den Ban-Daten: { ban_data } " )
96
+ await message .nack (requeue = False )
97
+ continue
98
+
99
+ # Verarbeite den Bann für jeden API-Client
94
100
for api_client in api_clients :
95
101
version = api_client .api_version
102
+ steam_id = player_id # In allen Versionen wird jetzt die korrekte steam_id verwendet
96
103
97
- if version .startswith ("v10" ):
98
- if api_client .do_perma_ban (player_name , player_id , ban_data ['reason' ], ban_data ['by' ]):
99
- logging .info (f"Permanent-Bann erfolgreich für Player ID: { player_id } " )
100
- else :
101
- logging .error (f"Permanent-Bann fehlgeschlagen für Player ID: { player_id } " )
102
-
103
- comment_message = f"Ban Detail: https://hackletloose.eu/ban_detail.php?steam_id={ player_id } "
104
- if api_client .post_player_comment (player_id , comment_message ):
105
- logging .info (f"Erfolgreich Kommentar gepostet für Player ID: { player_id } " )
106
- else :
107
- logging .error (f"Fehler beim Posten des Kommentars für Player ID: { player_id } . Kommentar: { comment_message } " )
104
+ # Permanent-Ban durchführen
105
+ if api_client .do_perma_ban (player_name , steam_id , ban_data ['reason' ], ban_data ['by' ]):
106
+ logging .info (f"Permanent-Bann erfolgreich für Steam ID: { steam_id } " )
107
+ else :
108
+ logging .error (f"Permanent-Bann fehlgeschlagen für Steam ID: { steam_id } " )
108
109
109
- if api_client . do_blacklist_player ( player_id , player_name , ban_data [ 'reason' ], ban_data [ 'by' ]):
110
- logging . info ( f"Player erfolgreich auf die Blacklist gesetzt: { player_id } " )
111
- else :
112
- logging .error (f"Fehler beim Setzen auf die Blacklist für Player ID: { player_id } " )
110
+ # Kommentar posten
111
+ comment_message = f"Ban Detail: https://hackletloose.eu/ban_detail.php?steam_id= { steam_id } "
112
+ if api_client . post_player_comment ( steam_id , comment_message ) :
113
+ logging .info (f"Erfolgreich Kommentar gepostet für Steam ID: { steam_id } " )
113
114
else :
114
- if api_client .do_perma_ban (player_name , ban_data ['steam_id_64' ], ban_data ['reason' ], ban_data ['by' ]):
115
- logging .info (f"Permanent-Bann erfolgreich für Steam ID: { ban_data ['steam_id_64' ]} " )
116
- else :
117
- logging .error (f"Permanent-Bann fehlgeschlagen für Steam ID: { ban_data ['steam_id_64' ]} " )
115
+ logging .error (f"Fehler beim Posten des Kommentars für Steam ID: { steam_id } . Kommentar: { comment_message } " )
118
116
119
- comment_message = f"Ban Detail: https://hackletloose.eu/ban_detail.php?steam_id= { ban_data [ 'steam_id_64' ] } "
120
- if api_client .post_player_comment ( ban_data ['steam_id_64 ' ], comment_message ):
121
- logging .info (f"Erfolgreich Kommentar gepostet für Steam ID : { ban_data [ 'steam_id_64' ] } " )
122
- else :
123
- logging .error (f"Fehler beim Posten des Kommentars für Steam ID: { ban_data [ 'steam_id_64' ] } . Kommentar: { comment_message } " )
117
+ # Spieler auf die Blacklist setzen
118
+ if api_client .do_blacklist_player ( steam_id , player_name , ban_data ['reason ' ], ban_data [ 'by' ] ):
119
+ logging .info (f"Spieler erfolgreich auf die Blacklist gesetzt : { steam_id } " )
120
+ else :
121
+ logging .error (f"Fehler beim Setzen auf die Blacklist für Steam ID: { steam_id } " )
124
122
125
- if api_client .do_blacklist_player (ban_data ['steam_id_64' ], player_name , ban_data ['reason' ], ban_data ['by' ]):
126
- logging .info (f"Player erfolgreich auf die Blacklist gesetzt: { ban_data ['steam_id_64' ]} " )
127
- else :
128
- logging .error (f"Fehler beim Setzen auf die Blacklist für Steam ID: { ban_data ['steam_id_64' ]} " )
129
123
await message .ack ()
130
124
except json .JSONDecodeError :
131
125
logging .error ("Fehler beim Parsen der JSON-Daten" )
132
- await message .nack (requeue = True )
126
+ await message .nack (requeue = False )
133
127
except Exception as e :
134
128
logging .error (f"Unerwarteter Fehler beim Verarbeiten der Nachricht: { e } " )
135
- await message .nack (requeue = True )
136
-
137
-
129
+ await message .nack (requeue = False )
138
130
139
131
async def connect_to_unban_rabbitmq (client_id ):
140
132
logging .info (f"Versuche, eine Verbindung zu RabbitMQ für Unban-Nachrichten herzustellen für Client { client_id } ..." )
@@ -162,8 +154,11 @@ async def consume_unban_messages(connection, channel, queue, api_clients):
162
154
player_name = unban_data .get ('player_name' , unban_data .get ('player' ))
163
155
player_id = unban_data .get ('player_id' , unban_data .get ('steam_id_64' ))
164
156
157
+ if not player_name :
158
+ logging .error (f"Fehlendes 'player_name' in den Unban-Daten: { unban_data } " )
159
+ if not player_id :
160
+ logging .error (f"Fehlendes 'player_id' in den Unban-Daten: { unban_data } " )
165
161
if not player_name or not player_id :
166
- logging .error ("Fehlende erforderliche Datenfelder in den Unban-Daten" )
167
162
await message .nack (requeue = True )
168
163
continue
169
164
@@ -184,11 +179,10 @@ async def consume_unban_messages(connection, channel, queue, api_clients):
184
179
await message .ack ()
185
180
except json .JSONDecodeError :
186
181
logging .error ("Fehler beim Parsen der JSON-Daten" )
187
- await message .nack (requeue = True )
182
+ await message .nack (requeue ( True ) )
188
183
except Exception as e :
189
184
logging .error (f"Unerwarteter Fehler beim Verarbeiten der Nachricht: { e } " )
190
- await message .nack (requeue = True )
191
-
185
+ await message .nack (requeue (True ))
192
186
193
187
async def connect_to_tempban_rabbitmq (client_id ):
194
188
logging .info (f"Versuche, eine Verbindung zu RabbitMQ für Tempban-Nachrichten herzustellen für Client { client_id } ..." )
@@ -200,7 +194,7 @@ async def connect_to_tempban_rabbitmq(client_id):
200
194
)
201
195
tempban_channel = await tempban_connection .channel ()
202
196
exchange_name = f'tempbans_fanout_{ client_id } '
203
- tempban_exchange = await tempban_channel .declare_exchange (exchange_name , aio_pika . ExchangeType .FANOUT , durable = True )
197
+ tempban_exchange = await tempban_channel .declare_exchange (exchange_name , ExchangeType .FANOUT , durable = True )
204
198
tempban_queue = await tempban_channel .declare_queue (f'tempbans_queue_{ client_id } ' , durable = True )
205
199
await tempban_queue .bind (tempban_exchange , routing_key = '' )
206
200
logging .info (f"RabbitMQ Queue tempbans_queue_{ client_id } deklariert und gebunden." )
@@ -219,9 +213,12 @@ async def consume_tempban_messages(connection, channel, queue, api_clients):
219
213
player_name = ban_data .get ('player_name' , ban_data .get ('player' ))
220
214
player_id = ban_data .get ('player_id' , ban_data .get ('steam_id_64' ))
221
215
216
+ if not player_name :
217
+ logging .error (f"Fehlendes 'player_name' in den Tempban-Daten: { ban_data } " )
218
+ if not player_id :
219
+ logging .error (f"Fehlendes 'player_id' in den Tempban-Daten: { ban_data } " )
222
220
if not player_name or not player_id :
223
- logging .error ("Fehlende erforderliche Datenfelder in den Tempban-Daten" )
224
- await message .nack (requeue = True )
221
+ await message .nack (requeue (True ))
225
222
continue
226
223
227
224
for api_client in api_clients :
@@ -237,7 +234,7 @@ async def consume_tempban_messages(connection, channel, queue, api_clients):
237
234
await message .nack (requeue = True )
238
235
except Exception as e :
239
236
logging .error (f"Unerwarteter Fehler beim Verarbeiten der Nachricht: { e } " )
240
- await message .nack (requeue = True )
237
+ await message .nack (requeue ( True ) )
241
238
242
239
async def connect_to_watchlist_rabbitmq (client_id ):
243
240
logging .info (f"Versuche, eine Verbindung zu RabbitMQ für Watchlist-Nachrichten herzustellen für Client { client_id } ..." )
@@ -265,9 +262,16 @@ async def consume_watchlist_messages(connection, channel, queue, api_clients):
265
262
player_name = watchlist_data .get ('player_name' , watchlist_data .get ('player' ))
266
263
player_id = watchlist_data .get ('player_id' , watchlist_data .get ('steam_id_64' ))
267
264
268
- if not player_name or not player_id :
269
- logging .error ("Fehlende erforderliche Datenfelder in den Watchlist-Daten" )
270
- await message .nack (requeue = True )
265
+ # Überprüfung auf fehlende oder ungültige player_id
266
+ if not player_id :
267
+ logging .error (f"Fehlendes 'player_id' in den Watchlist-Daten: { watchlist_data } " )
268
+ await message .nack (requeue = False ) # Nachricht nicht erneut in die Queue einreihen
269
+ continue
270
+
271
+ # Überprüfung auf fehlende erforderliche Felder
272
+ if not player_name :
273
+ logging .error (f"Fehlende erforderliche Datenfelder in den Watchlist-Daten: { watchlist_data } " )
274
+ await message .nack (requeue (False ))
271
275
continue
272
276
273
277
for api_client in api_clients :
@@ -280,12 +284,10 @@ async def consume_watchlist_messages(connection, channel, queue, api_clients):
280
284
await message .ack ()
281
285
except json .JSONDecodeError :
282
286
logging .error ("Fehler beim Parsen der JSON-Daten" )
283
- await message .nack (requeue = True )
287
+ await message .nack (requeue ( True ) )
284
288
except Exception as e :
285
289
logging .error (f"Unerwarteter Fehler beim Verarbeiten der Nachricht: { e } " )
286
- await message .nack (requeue = True )
287
-
288
-
290
+ await message .nack (requeue (True ))
289
291
290
292
async def connect_to_unwatch_rabbitmq (client_id ):
291
293
logging .info (f"Versuche, eine Verbindung zu RabbitMQ für Unwatch-Nachrichten herzustellen für Client { client_id } ..." )
@@ -313,9 +315,13 @@ async def consume_unwatch_messages(connection, channel, queue, api_clients):
313
315
player_name = unwatch_data .get ('player_name' , unwatch_data .get ('player' ))
314
316
player_id = unwatch_data .get ('player_id' , unwatch_data .get ('steam_id_64' ))
315
317
318
+ if not player_name :
319
+ logging .error (f"Fehlendes 'player_name' in den Unwatch-Daten: { unwatch_data } " )
320
+ if not player_id :
321
+ logging .error (f"Fehlendes 'player_id' in den Unwatch-Daten: { unwatch_data } " )
316
322
if not player_name or not player_id :
317
- logging .error ("Fehlende erforderliche Datenfelder in den Unwatch-Daten" )
318
- await message .nack (requeue = True )
323
+ logging .error (f "Fehlende erforderliche Datenfelder in den Unwatch-Daten: { unwatch_data } " )
324
+ await message .nack (requeue ( True ) )
319
325
continue
320
326
321
327
for api_client in api_clients :
@@ -328,12 +334,10 @@ async def consume_unwatch_messages(connection, channel, queue, api_clients):
328
334
await message .ack ()
329
335
except json .JSONDecodeError :
330
336
logging .error ("Fehler beim Parsen der JSON-Daten" )
331
- await message .nack (requeue = True )
337
+ await message .nack (requeue ( True ) )
332
338
except Exception as e :
333
339
logging .error (f"Unerwarteter Fehler beim Verarbeiten der Nachricht: { e } " )
334
- await message .nack (requeue = True )
335
-
336
-
340
+ await message .nack (requeue (True ))
337
341
338
342
async def main ():
339
343
api_client = api_clients [0 ]
0 commit comments