Heim > Backend-Entwicklung > Python-Tutorial > Aufbau eines Verfügbarkeitsprüfers für generalüberholte Steam-Decks in Europa

Aufbau eines Verfügbarkeitsprüfers für generalüberholte Steam-Decks in Europa

Mary-Kate Olsen
Freigeben: 2025-01-24 02:14:14
Original
270 Leute haben es durchsucht

Building an Availability Checker for Refurbished Steam Decks in Europe

Die Beschaffung eines generalüberholten Steam Decks in Europa kann aufgrund schwankender Lagerbestände eine Herausforderung sein. Dieser auf Python basierende Verfügbarkeitsprüfer automatisiert den Prozess und stellt Echtzeitbenachrichtigungen bereit, wenn generalüberholte Einheiten verfügbar sind. Dieser Beitrag beschreibt die technische Umsetzung des Projekts und ermutigt zu Community-Beiträgen.

Projektübersicht

Dieses Python-Skript überwacht den Steam-Shop auf die Verfügbarkeit von generalüberholten Steam Decks in Europa. Mithilfe des ntfy-Benachrichtigungsdienstes werden Benutzer sofort benachrichtigt, wenn Lagerbestände verfügbar werden. Das Projekt demonstriert effiziente Problemlösungen mithilfe leicht verfügbarer Python-Bibliotheken und APIs.

Funktionalität

Das Skript funktioniert wie folgt:

  1. Es fragt die Steam-API regelmäßig nach Bestandsaktualisierungen ab.
  2. Sobald der verfügbare Bestand erkannt wird, wird eine NTFY-Benachrichtigung gesendet.
  3. Kontinuierliche Überwachung wird durch die Planung des Skripts erreicht (z. B. mit cron).

Kernlogik:

<code class="language-python">from urllib.request import urlopen

# Configure your ntfy URL
ntfy_url = "ntfy.sh/YOUR_NTFY_URL"

# Timeout to prevent script hang-ups
timeout = 8


def parse_availability(data: bytes) -> bool:
    parsed = " ".join(f"{c:02X}" for c in data)
    not_available = "08 00 10 00"
    return parsed != not_available


def is_available(id_: str) -> bool:
    url = (
        "api.steampowered.com/IPhysicalGoodsService/"
        "CheckInventoryAvailableByPackage/v1?origin="
        f"https://store.steampowered.com&input_protobuf_encoded={id_}"
    )
    with urlopen(f"https://{url}", timeout=timeout) as response:
        data = response.read()
    return parse_availability(data)


def notify(name: str) -> None:
    message = f"Refurbished {name} Steam Deck is available!"
    print(message)
    with urlopen(f"https://{ntfy_url}", data=str.encode(message), timeout=timeout):
        pass


if __name__ == "__main__":
    # Uncomment for notification testing
    # notify("TEST")

    # Refurbished 64GB (European region, tested in Poland)
    if is_available("COGVNxICUEw="):
        notify("64GB")</code>
Nach dem Login kopieren

Ausführung

  1. Installieren Sie eine aktuelle Python-Version. Es sind keine zusätzlichen Module erforderlich.
  2. Ersetzen Sie ntfy_url durch Ihre persönliche ntfy-URL (besorgen Sie sich eine von der ntfy-Website). Für Benachrichtigungen wird die mobile NTFY-App empfohlen.
  3. Für Windows Server-Benutzer fügen Sie ntfy.sh und api.steampowered.com zu Ihren vertrauenswürdigen Sites in den Internet Explorer-Einstellungen hinzu.

Fazit

Dieses Projekt unterstreicht die Leistungsfähigkeit prägnanter Python-Skripte für praktische Aufgaben. Es dient als wertvolle Lernressource für API-Interaktion, Benachrichtigungen und Python-Automatisierung. Der vollständige Code ist auf GitHub verfügbar und lädt zu Beiträgen und Anpassungen ein.

Das obige ist der detaillierte Inhalt vonAufbau eines Verfügbarkeitsprüfers für generalüberholte Steam-Decks in Europa. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage