Steam Deck 已成为便携式PC游戏玩家的革命性产品。然而,由于供应有限,获取翻新机型并非易事。为此,我开发了一个基于Python的Steam Deck可用性检查器,用于监控欧洲市场上翻新Steam Deck的库存情况。
本文将深入探讨该项目的技术细节,提供实用代码片段,并欢迎其他开发者贡献代码。
项目概述
Steam Deck可用性检查器是一个Python脚本,可自动监控Steam商店的库存状态。它利用ntfy通知服务,在设备可用时向用户发送实时提醒。
该项目充分展现了如何使用简单的内置Python库和API高效解决实际问题。
工作原理
脚本的工作流程十分简洁:
- 定期查询Steam API以检查库存状态。
- 若检测到库存,则通过ntfy触发通知。
- 添加到cron任务后,脚本将无限期地重复此过程。
核心逻辑简述如下:
from urllib.request import urlopen # 请替换为您的ntfy URL ntfy_url = "ntfy.sh/YOUR_NTFY_URL" # 设置超时时间,防止脚本挂起 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"{name}版本现已上市!" print(message) with urlopen(f"https://{ntfy_url}", data=str.encode(message), timeout=timeout): pass if __name__ == "__main__": # 取消注释以测试通知功能 # notify("测试") # 欧洲地区翻新64GB版本,在波兰测试有效 if is_available("COGVNxICUEw="): notify("64GB")
登录后复制
运行脚本
- 安装任何最新版本的Python。无需额外模块。
- 将脚本中的ntfy_url替换为您自己的URL。访问ntfy网站获取您的URL。强烈建议您在iOS/Android手机上安装ntfy应用。
对于Windows服务器,您可能需要将ntfy.sh和api.powe.com添加到IE设置中的受信任站点。
总结
Steam Deck可用性检查器展示了如何利用简单的Python脚本解决实际问题。对于希望学习API、通知和Python自动化,并同时构建实用工具的开发者来说,这是一个极佳的项目。
欢迎访问GitHub仓库查看完整代码,为项目贡献代码,或根据您的需求自定义脚本。
祝您编程愉快!
以上就是为欧洲翻新蒸汽甲板构建可用性检查器的详细内容,更多请关注php中文网其它相关文章!