Skip to content

DearCrazyLeaf/astrbot_plugin_steam_updates

Repository files navigation

Steam Update Push (AstrBot Plugin)

Steam 游戏/创意工坊更新推送(Steam News API)

Python AstrBot License

views


✅ 简介 | Introduction

这是一个为 AstrBot 编写的插件:轮询游戏/创意工坊更新并推送(支持多 AppID、创意工坊ID、卡片或文本)

Release License Issues Pull Requests GitHub Stars

Important

本插件优先使用 Steam News API 获取游戏更新日志;当 API 失败或返回为空时,可启用 Steam Feed 自动回退


✅ 功能列表 | Features

  • 被动推送:自动轮询 Steam 更新日志
  • 多游戏:支持多个 AppID 统一推送
  • 手动查询:群内指令触发即时查询
  • LLM整理:可选用大模型对更新内容进行翻译/总结/排版
  • 卡片/文本:两种输出模式可选
  • 无更新静默:当天无更新不推送
  • 创意工坊订阅监控:支持轮询 Workshop PublishedFileID,发现更新时间变化后推送,支持查询非公开创意工坊内容
preview workshop_public_3240880604_v4_spacing

📦 安装 | Installation

将插件目录放入:

AstrBot/data/plugins/astrbot_plugin_steam_updates

重启 AstrBot 后即可在 WebUI 中看到插件


⚙️ 配置 | Configuration

插件使用 _conf_schema.json 定义配置,入口:

AstrBot WebUI -> 插件 -> 插件配置

🔧 核心配置

配置项 说明
enable_push 是否启用插件
steam_web_api_key Steam Web API Key(可选)
enable_feed_fallback 是否启用 Steam Feed 回退
feed_timeout_sec Feed 回退超时秒数
proxy_mode 代理模式:off / system / custom
proxy_url 自定义代理地址(仅 custom 生效)
steam_appids AppID 列表(如 730
workshop_enable 是否启用创意工坊订阅监控
workshop_item_ids 创意工坊订阅ID列表(PublishedFileID)
workshop_api_base 创意工坊API基础地址
workshop_timeout_sec 创意工坊请求超时秒数
workshop_push_on_first_seen 首次发现时是否立即推送(默认仅记录基线)
steam_lang 语言(如 schinese / english
poll_interval_sec 轮询间隔(秒,从起始时间开始计时)
poll_start_time 轮询起始时间(HH:MM)
notify_group_ids 推送群号列表
platform_id 平台 ID(可选,如 chatbot2)
message_mode cardtext
manual_query_game_command 游戏更新手动查询指令(可配置多个)
manual_query_workshop_command 创意工坊手动查询指令(可配置多个)
content_process_mode 内容处理方式:plugin / llm
llm_provider_id LLM 提供商ID(可选,WebUI下拉选择)
llm_timeout_sec LLM 请求超时秒数(默认 20
llm_prompt LLM 提示词(仅 llm 模式生效)
max_days 每个游戏最多展示最近 N 天更新
content_max_chars 单游戏正文最大字符数
image_max_per_item 每条更新最多渲染图片数
image_max_height 图片最大高度
enable_app_headers 是否启用游戏头图渲染
image_download_timeout_sec 内容图片下载超时秒数
header_download_timeout_sec 游戏头图下载超时秒数
prefetch_image_concurrency 内容图片预取并发数
prefetch_header_concurrency 头图预取并发数
failed_download_cooldown_sec 下载失败冷却时间(秒)
debug_log 调试日志(仅控制台输出)

🧪 调试日志 | Debug Logs

  • 打开 debug_log 后,插件会输出结构化日志到 AstrBot 控制台
  • 主要阶段:pollfetchfetch_apifetch_feedmanualmanual_cmdsendpushping
  • 不会生成额外日志文件,便于在线排查

🌐 代理说明 | Proxy

  • proxy_mode=system:读取 AstrBot 进程环境变量(如 HTTP_PROXY / HTTPS_PROXY
  • proxy_mode=custom:使用 proxy_url 强制指定代理(推荐,最可控)
  • proxy_mode=off:不使用代理,直连请求

建议:

  • 若创意工坊查询出现 ConnectTimeout/ReadTimeout,优先改为 custom 并设置 proxy_url(例如 http://127.0.0.1:7890
  • 创意工坊不仅依赖 api.steampowered.com,还依赖 steamcommunity.com
  • 仅代理 API 而不代理社区域名时,常见现象是:游戏更新可用、创意工坊失败

🗂️ AppID 名称映射 | AppID Name Map

插件根目录内的 appid_map.json 用于缓存和手动维护 AppID 对应名称(多语言):

  • 优先读取该文件中的名称
  • 若该 AppID 语言缺失,会自动通过 Steam API 获取并写回同一条记录
  • 不会覆盖已有语言条目(除非你手动修改)

示例:

{
  "730": {
    "schinese": "反恐精英2",
    "english": "Counter-Strike 2",
    "japanese": "カウンターストライク 2"
  }
}

🧭 网络代理建议 | Network Proxy (Clash)

部分地区访问 Steam 相关服务可能不稳定,推荐使用 Clash 混合模式并代理下列域名:

mixin:
  mode: rule

  proxy-groups:
    - name: STEAM-UPDATES
      type: select
      proxies:
        - HK   # ← 改成你的节点
        - DIRECT

  rules:
    # Steam 更新插件核心域名(建议代理)
    - DOMAIN,api.steampowered.com,STEAM-UPDATES
    - DOMAIN,store.steampowered.com,STEAM-UPDATES
    - DOMAIN-SUFFIX,steamcommunity.com,STEAM-UPDATES
    - DOMAIN-SUFFIX,steampowered.com,STEAM-UPDATES

    # 资源域名(建议同样走代理,减少超时)
    - DOMAIN-SUFFIX,steamstatic.com,STEAM-UPDATES
    - DOMAIN-SUFFIX,steamusercontent.com,STEAM-UPDATES
    - DOMAIN-SUFFIX,akamaihd.net,STEAM-UPDATES

    # 其余流量直连
    - MATCH,DIRECT

📌 使用方法 | Usage

📣 自动推送

开启 enable_push 即启用插件,插件会自动轮询 Steam 更新日志并推送到配置的群 若同时开启 workshop_enable 并配置 workshop_item_ids,会在同一轮询中检测创意工坊条目更新时间并合并推送

💬 手动查询

群内发送任一配置指令即可触发,例如:

STEAM更新
steam更新
cs2更新

🛰️ 平台捕获

steam_update_ping

用于捕获平台信息并测试推送通路


🖼️ 输出模式 | Render Modes

  • card:图片卡片(推荐)
  • text:纯文本输出

📜 License

GPL-3.0


Made for AstrBot ❤️

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages