Skip to content

Commit 2509a15

Browse files
committed
Fixes v10
1 parent 757b90d commit 2509a15

File tree

2 files changed

+71
-62
lines changed

2 files changed

+71
-62
lines changed

api_manager.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,7 @@ def do_blacklist_player(self, player_id, player_name, reason, by):
139139
print(f"Fehler beim Aufrufen von do_blacklist_player: {e}")
140140
logging.error(f"Fehler beim Aufrufen von do_blacklist_player: {e}")
141141
return False
142-
143-
142+
144143
def do_watch_player(self, player_name, player_id, reason, by):
145144
if self.api_version.startswith("v10"):
146145
watchlist_url = f"{self.base_url}/api/watch_player"
@@ -158,11 +157,17 @@ def do_watch_player(self, player_name, player_id, reason, by):
158157
'reason': reason
159158
}
160159
try:
160+
logging.info(f"Sending request to {watchlist_url} with payload: {payload}")
161161
response = self.session.post(watchlist_url, json=payload)
162-
print(f"do_watch_player response: {response.status_code}, {response.text}")
163-
return response.ok
162+
logging.info(f"Received response: {response.status_code}, {response.text}")
163+
164+
if response.status_code == 200:
165+
return True
166+
else:
167+
logging.error(f"Failed to add player to watchlist: {response.status_code}, {response.text}")
168+
return False
164169
except Exception as e:
165-
print(f"Fehler beim Aufrufen von do_watch_player: {e}")
170+
logging.error(f"Fehler beim Aufrufen von do_watch_player: {e}")
166171
return False
167172

168173
def do_unwatch_player(self, player_name, player_id):

ban_client.py

Lines changed: 61 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -86,55 +86,47 @@ async def consume_messages(connection, channel, queue, api_clients):
8686
player_name = ban_data.get('player_name', ban_data.get('player'))
8787
player_id = ban_data.get('player_id', ban_data.get('steam_id_64'))
8888

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)
9293
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
94100
for api_client in api_clients:
95101
version = api_client.api_version
102+
steam_id = player_id # In allen Versionen wird jetzt die korrekte steam_id verwendet
96103

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}")
108109

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}")
113114
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}")
118116

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}")
124122

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']}")
129123
await message.ack()
130124
except json.JSONDecodeError:
131125
logging.error("Fehler beim Parsen der JSON-Daten")
132-
await message.nack(requeue=True)
126+
await message.nack(requeue=False)
133127
except Exception as e:
134128
logging.error(f"Unerwarteter Fehler beim Verarbeiten der Nachricht: {e}")
135-
await message.nack(requeue=True)
136-
137-
129+
await message.nack(requeue=False)
138130

139131
async def connect_to_unban_rabbitmq(client_id):
140132
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):
162154
player_name = unban_data.get('player_name', unban_data.get('player'))
163155
player_id = unban_data.get('player_id', unban_data.get('steam_id_64'))
164156

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}")
165161
if not player_name or not player_id:
166-
logging.error("Fehlende erforderliche Datenfelder in den Unban-Daten")
167162
await message.nack(requeue=True)
168163
continue
169164

@@ -184,11 +179,10 @@ async def consume_unban_messages(connection, channel, queue, api_clients):
184179
await message.ack()
185180
except json.JSONDecodeError:
186181
logging.error("Fehler beim Parsen der JSON-Daten")
187-
await message.nack(requeue=True)
182+
await message.nack(requeue(True))
188183
except Exception as e:
189184
logging.error(f"Unerwarteter Fehler beim Verarbeiten der Nachricht: {e}")
190-
await message.nack(requeue=True)
191-
185+
await message.nack(requeue(True))
192186

193187
async def connect_to_tempban_rabbitmq(client_id):
194188
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):
200194
)
201195
tempban_channel = await tempban_connection.channel()
202196
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)
204198
tempban_queue = await tempban_channel.declare_queue(f'tempbans_queue_{client_id}', durable=True)
205199
await tempban_queue.bind(tempban_exchange, routing_key='')
206200
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):
219213
player_name = ban_data.get('player_name', ban_data.get('player'))
220214
player_id = ban_data.get('player_id', ban_data.get('steam_id_64'))
221215

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}")
222220
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))
225222
continue
226223

227224
for api_client in api_clients:
@@ -237,7 +234,7 @@ async def consume_tempban_messages(connection, channel, queue, api_clients):
237234
await message.nack(requeue=True)
238235
except Exception as e:
239236
logging.error(f"Unerwarteter Fehler beim Verarbeiten der Nachricht: {e}")
240-
await message.nack(requeue=True)
237+
await message.nack(requeue(True))
241238

242239
async def connect_to_watchlist_rabbitmq(client_id):
243240
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):
265262
player_name = watchlist_data.get('player_name', watchlist_data.get('player'))
266263
player_id = watchlist_data.get('player_id', watchlist_data.get('steam_id_64'))
267264

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))
271275
continue
272276

273277
for api_client in api_clients:
@@ -280,12 +284,10 @@ async def consume_watchlist_messages(connection, channel, queue, api_clients):
280284
await message.ack()
281285
except json.JSONDecodeError:
282286
logging.error("Fehler beim Parsen der JSON-Daten")
283-
await message.nack(requeue=True)
287+
await message.nack(requeue(True))
284288
except Exception as e:
285289
logging.error(f"Unerwarteter Fehler beim Verarbeiten der Nachricht: {e}")
286-
await message.nack(requeue=True)
287-
288-
290+
await message.nack(requeue(True))
289291

290292
async def connect_to_unwatch_rabbitmq(client_id):
291293
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):
313315
player_name = unwatch_data.get('player_name', unwatch_data.get('player'))
314316
player_id = unwatch_data.get('player_id', unwatch_data.get('steam_id_64'))
315317

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}")
316322
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))
319325
continue
320326

321327
for api_client in api_clients:
@@ -328,12 +334,10 @@ async def consume_unwatch_messages(connection, channel, queue, api_clients):
328334
await message.ack()
329335
except json.JSONDecodeError:
330336
logging.error("Fehler beim Parsen der JSON-Daten")
331-
await message.nack(requeue=True)
337+
await message.nack(requeue(True))
332338
except Exception as e:
333339
logging.error(f"Unerwarteter Fehler beim Verarbeiten der Nachricht: {e}")
334-
await message.nack(requeue=True)
335-
336-
340+
await message.nack(requeue(True))
337341

338342
async def main():
339343
api_client = api_clients[0]

0 commit comments

Comments
 (0)