
Wpis użytkownika mejwen w Programowanie
mejwenFenomen
8piorunówNapisałem swój pierwszy "poważniejszy" kod w pythonie pod bota z Discorda pod serwery gier Source i Goldensource. Po dodaniu IP serwera do listy, serwer ten jest odpytywany co jakiś czas czy serwer ma jakiś graczy i wydaje odpowiedni komunikat na czacie.
Niby mała rzecz, a przydatna w przypadku martwego multiplayera...
Wystarczy podać w enviromentsach token do bota, id kanału i role, które mają być wołane i odpalić skrypt na swoim hoście.
Jeszcze bede refactorował, póki co chciałem by jakkolwiek działało 😛
https://codeberg.org/xelot/dm_server/src/branch/main/player_activity_bot.py
Komentarze (1)
Świetna robota Tomeczku!
W kwestii refactoru - całość wygląda nawet git, jedyne co to bym ten fragment bym zmienił, żeby wychodzić z pętli elegancko i ograniczyć liczbę powtórzeń jak request nie działa.
Tutaj cały wątek na SO jak to najlepiej obsłużyć - https://stackoverflow.com/questions/2083987/how-to-retry-after-exception
retries = 3
while retries:
try:
players_list = await a2s.aplayers(address)
retries = 0
except a2s.BufferExhaustedError:
print("BufferExhaustedError: retrying in 30 secs")
retries -= 1
await asyncio.sleep(30)
except TimeoutError():
print("TimeoutError: retrying in 1 minute")
retries -= 1
await asyncio.sleep(60)