2025-03-18 10:07:07
OpenArena check gamers
#!/usr/bin/env python3
import requests
import os
import subprocess
from requests.exceptions import RequestException
from bs4 import BeautifulSoup
# Конфигурация (можно менять)
TARGET_PLAYERS = {"Ayumi", "fax", "svt", "Tony", "Broadklin"} # Добавьте нужные ники
ALARM_FILE = "alarm.wav" # Путь к звуковому файлу
def check_players(url):
"""Проверяет наличие целевых игроков на сервере"""
try:
response = requests.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.content, 'html.parser')
# Извлекаем все имена игроков
players = set()
for div in soup.find_all('div', {'id': 'handle'}):
players.add(div.text.strip())
return players
except RequestException as e:
print(f"Ошибка подключения: {e}")
return set()
def play_alarm():
"""Воспроизводит звуковой сигнал"""
if os.path.exists(ALARM_FILE):
try:
# Для систем с pulseaudio (большинство дистрибутивов)
subprocess.run(["paplay", ALARM_FILE], check=True)
# Альтернатива для ALSA:
# subprocess.run(["aplay", ALARM_FILE], check=True)
except (subprocess.CalledProcessError, FileNotFoundError):
print("Ошибка воспроизведения звука")
else:
print(f"Файл {ALARM_FILE} не найден!")
if __name__ == "__main__":
# URL сервера из первого скрипта
SERVER_URL = "http://dpmaster.deathmask.net/?game=openarena&server=141.147.45.166:27960"
# Получаем текущих игроков
current_players = check_players(SERVER_URL)
# Проверяем пересечение с целевыми игроками
detected = current_players & TARGET_PLAYERS
if detected:
print(f"Обнаружены целевые игроки: {', '.join(detected)}")
play_alarm()
else:
print("Целевые игроки не обнаружены")
Back to list