Maison >développement back-end >Tutoriel Python >Création d'un vérificateur de disponibilité pour les Steam Decks remis à neuf en Europe

Création d'un vérificateur de disponibilité pour les Steam Decks remis à neuf en Europe

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-24 02:14:14220parcourir

Building an Availability Checker for Refurbished Steam Decks in Europe

Obtenir un Steam Deck remis à neuf en Europe peut être difficile en raison de la fluctuation des stocks. Ce vérificateur de disponibilité basé sur Python automatise le processus, fournissant des notifications en temps réel lorsque des unités rénovées apparaissent. Cet article détaille la mise en œuvre technique du projet et encourage les contributions de la communauté.

Aperçu du projet

Ce script Python surveille la boutique Steam pour vérifier la disponibilité du Steam Deck remis à neuf en Europe. Tirant parti du service de notification NTFY, il alerte instantanément les utilisateurs lorsque le stock devient disponible. Le projet présente une résolution efficace de problèmes à l'aide de bibliothèques et d'API Python facilement disponibles.

Fonctionnalité

Le script fonctionne comme suit :

  1. Il interroge périodiquement l'API Steam pour connaître les mises à jour des stocks.
  2. Lors de la détection du stock disponible, il envoie une notification ntfy.
  3. Une surveillance continue est obtenue en planifiant le script (par exemple, en utilisant cron).

Logique de base :

<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>

Exécution

  1. Installez une version récente de Python. Aucun module supplémentaire n'est nécessaire.
  2. Remplacez ntfy_url par votre URL ntfy personnelle (obtenez-en une sur le site Web ntfy). L'application mobile ntfy est recommandée pour les notifications.
  3. Pour les utilisateurs de Windows Server, ajoutez ntfy.sh et api.steampowered.com à vos sites de confiance dans les paramètres d'Internet Explorer.

Conclusion

Ce projet met en évidence la puissance des scripts Python concis pour des tâches pratiques. Il constitue une ressource d'apprentissage précieuse pour l'interaction avec les API, les notifications et l'automatisation Python. Le code complet est disponible sur GitHub, accueillant les contributions et la personnalisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn