Rumah > pembangunan bahagian belakang > Tutorial Python > Membina Penyemak Ketersediaan untuk Dek Stim Diperbaharui di Eropah

Membina Penyemak Ketersediaan untuk Dek Stim Diperbaharui di Eropah

Mary-Kate Olsen
Lepaskan: 2025-01-24 02:14:14
asal
271 orang telah melayarinya

Building an Availability Checker for Refurbished Steam Decks in Europe

Mengamankan Dek Stim yang diperbaharui di Eropah boleh menjadi mencabar kerana stok yang turun naik. Penyemak ketersediaan berasaskan Python ini mengautomasikan proses, memberikan pemberitahuan masa nyata apabila unit yang diperbaharui muncul. Catatan ini memperincikan pelaksanaan teknikal projek dan menggalakkan sumbangan komuniti.

Gambaran Keseluruhan Projek

Skrip Python ini memantau kedai Steam untuk ketersediaan Steam Deck yang diperbaharui di Eropah. Memanfaatkan perkhidmatan pemberitahuan ntfy, ia serta-merta memaklumkan pengguna apabila stok tersedia. Projek ini mempamerkan penyelesaian masalah yang cekap menggunakan perpustakaan Python dan API yang tersedia.

Kefungsian

Skrip beroperasi seperti berikut:

  1. Ia menanyakan Steam API secara berkala untuk kemas kini stok.
  2. Setelah mengesan stok yang tersedia, ia menghantar pemberitahuan ntfy.
  3. Pemantauan berterusan dicapai dengan menjadualkan skrip (cth., menggunakan cron).

Logik Teras:

<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>
Salin selepas log masuk

Pelaksanaan

  1. Pasang versi Python terbaharu. Tiada modul tambahan diperlukan.
  2. Ganti ntfy_url dengan URL ntfy peribadi anda (dapatkan satu daripada tapak web ntfy). Apl mudah alih ntfy disyorkan untuk pemberitahuan.
  3. Untuk pengguna Windows Server, tambahkan ntfy.sh dan api.steampowered.com pada tapak yang dipercayai anda dalam tetapan Internet Explorer.

Kesimpulan

Projek ini menyerlahkan kuasa skrip Python ringkas untuk tugas praktikal. Ia berfungsi sebagai sumber pembelajaran yang berharga untuk interaksi API, pemberitahuan dan automasi Python. Kod lengkap tersedia di GitHub, mengalu-alukan sumbangan dan penyesuaian.

Atas ialah kandungan terperinci Membina Penyemak Ketersediaan untuk Dek Stim Diperbaharui di Eropah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan