import requests import csv import time from datetime import datetime # Adres URL API serwera Minecraft API_URL = "https://api.mcsrvstat.us/2/193.122.52.182" # Funkcja do pobierania liczby graczy z API serwera Minecraft def get_player_count(): try: response = requests.get(API_URL) if response.status_code == 200: server_data = response.json() if "players" in server_data and "online" in server_data["players"]: return server_data["players"]["online"] else: print("Brak danych o liczbie graczy w odpowiedzi API.") return None else: print(f"Nie udało się pobrać danych. Kod odpowiedzi: {response.status_code}") return None except Exception as e: print(f"Wystąpił błąd podczas pobierania danych: {e}") return None # Funkcja do zapisywania danych do pliku CSV def save_to_csv(timestamp, player_count): with open('/var/www/html/test/data.csv', mode='a', newline='') as file: writer = csv.writer(file) writer.writerow([timestamp, player_count]) # Główna pętla programu if __name__ == "__main__": print("Rozpoczęcie odpytywania API serwera Minecraft co 60 sekund...") while True: # Pobranie aktualnego czasu current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # Pobranie liczby graczy z API players_online = get_player_count() if players_online is not None: # Zapisanie danych do pliku CSV save_to_csv(current_time, players_online) print(f"{current_time}: Liczba graczy online: {players_online}") else: # Zapisanie danych do pliku CSV save_to_csv(current_time, 0) print(f"{current_time}: Nie udało się pobrać liczby graczy.") # Poczekanie 60 sekund przed kolejnym odpytaniem API time.sleep(60)