Steam 消费历史分类器
Steam 消费历史分类器 (Steam Spending History Classifier) 使用手册
版本:2.1.24
适用页面:https://store.steampowered.com/account/history
作者:SmallFork
开源许可:MIT
📦 概述
Steam 消费历史分类器 是一款专为 Steam 账户消费历史页面设计的增强型用户脚本。它能自动识别并分类每笔交易(直购、内购、送礼、退款、充值、市场买入/卖出),提供多维度统计分析、可视化图表、转区 CD 查询、送礼额度计算、商店折扣统计以及内购分析等高级功能,帮助您全面掌握 Steam 钱包收支情况。
脚本完全在本地处理数据,不收集任何个人信息,所有统计均基于页面已加载的消费记录。
✨ 主要功能
| 功能模块 | 简要说明 |
|---|---|
| 自动分类 | 根据交易描述识别类别:直购、内购、送礼、退款、充值、市场买入/卖出 |
| 统计看板 | 顶部卡片显示各类交易笔数及金额(主货币),点击卡片筛选对应类别 |
| 搜索与分页 | 按物品名称搜索,支持分页浏览和“显示全部”模式 |
| 主货币切换 | 自动检测页面主货币,可手动切换,所有统计自动更新 |
| 次级货币统计 | 展开显示其他货币的交易汇总(按币种及支付方式) |
| 数据导出 | 一键导出为 CSV 或 JSON 格式 |
| 消费分类占比图 | 环形图同时展示笔数和金额占比(仅限商店消费类) |
| 收支柱状图 | 对比支出(商店、内购、送礼、市场买入)与收入(市场卖出、充值、退款) |
| 转区 CD 查询 | 自动检测历史货币变更记录,计算转区冷却期剩余天数,点击记录可跳转 |
| 送礼额度计算 | 基于商店消费、退款、已送礼金额计算剩余可用额度,支持滑块模拟调整 |
| 商店折扣统计 | 统计主货币直购订单的折扣分布、平均折扣、节省总额,列出原价购买明细 |
| 内购分析 | 按游戏汇总内购物品、购买次数、总花费,支持展开查看明细 |
| 键盘快捷键 | 快速打开各图表窗口及筛选操作 |
🖥️ 界面与使用指南
1️⃣ 安装与首次加载
- 在 Tampermonkey 或 Violentmonkey 中安装脚本后,访问 Steam 消费历史页面 即可生效。
- 脚本会自动加载当前页面的所有消费记录(支持“加载更多”按钮自动点击)。
- 加载完成后,页面顶部会出现筛选工具栏,原表格上方增加统计卡片和操作按钮。
2️⃣ 统计卡片与分类筛选
- 卡片从左到右:
全部、直购、内购、送礼、退款、充值、买入、卖出。 - 每个卡片显示该类别的交易笔数,单击卡片可筛选显示该类别(再次点击“全部”恢复)。
- 卡片主区域点击可在“笔数”和“金额”视图间切换,方便查看不同维度的统计。
- 统计卡片右侧有一个展开按钮(▸),点击可展开次级货币统计行,显示非主货币的交易汇总(按币种和支付方式分组)。
3️⃣ 搜索与分页
- 搜索框:位于页面标题右侧,输入物品名称即可实时过滤(支持模糊匹配)。
- 分页控件:位于工具栏右侧,包含上一页/下一页、页码输入框、总页数。
- “显示全部”按钮:点击后切换至显示全部模式(所有记录一次性展示,分页禁用)。再次点击恢复分页。
4️⃣ 主货币切换
- 页面顶部(“点击加载更多历史记录”提示旁)会显示当前主货币标识(国旗+符号)。
- 单击该标识,会弹出下拉菜单,列出所有在消费记录中出现过的货币。
- 选择任意货币,脚本将立即切换主货币,所有金额统计和图表将自动更新为所选货币。
- 切换后,后续页面刷新会记住选择(除非手动清除缓存)。
5️⃣ 数据导出
- 点击工具栏中的导出按钮(下载图标)弹出下拉菜单,选择 CSV 或 JSON。
- 导出的数据包含:日期、物品名称、操作类型、分类、总金额、钱包变更、支付方式及金额(最多三种)。
- 文件名自动包含时间戳(如
steam-history-2026-08-06_15_30_00.csv)。
6️⃣ 统计图表窗口(核心数据分析)
脚本提供了六个可独立打开的统计窗口,每个窗口均支持导航侧边栏,方便在窗口间快速切换。
🔵 消费分类占比 (D 键)
- 仅统计“商店消费”类(直购、内购、送礼),环形图同时展示笔数占比和金额占比。
- 图例显示各类别的具体数值。
🟣 收支柱状图 (B 键)
- 左侧柱状图:支出类(直购、内购、送礼、市场买入)。
- 右侧柱状图:收入类(市场卖出、充值、退款)。
- 数值均以主货币显示。
🟠 转区 CD 查询 (R 键)
- 自动分析历史记录中的货币转换事件,检测最近一次货币变更日期。
- 显示当前货币、转区前货币、变更日期、CD 到期日。
- 以环形进度条直观展示冷却进度,剩余天数醒目显示。
- 历史记录表格:列出所有货币变更记录(含日期、旧货币→新货币、间隔天数)。点击任意历史行,脚本会自动跳转到对应的消费记录行并高亮。
🟢 送礼额度计算 (G 键)
- 公式:剩余额度 = 商店直购总额 - 退款总额 - 已送礼总额。
- 显示四项关键数据:商店直购、退款、总可用额度、已送礼(全部)。
- 环形图展示剩余、已送礼、退款占比,并显示剩余额度数值。
- 滑块功能:可调整“已送礼(30天内)”金额,模拟不同送礼策略,图表和数值实时联动。
- 当剩余额度为负时,自动显示“已经超额”状态。
🟡 商店折扣统计 (K 键)
- 仅统计主货币的直购订单(排除内购、送礼等)。
- 显示:直购笔数、原价购买笔数、平均折扣率、商店实付总额、节省总额。
- 平均折扣进度条直观展示折扣深度。
- 折扣区间分布柱状图:按 0%、10%、20%…90% 分档,统计各区间订单数量。
- 原价购买明细:点击“原价购买”卡片,弹出窗口列出所有未打折的原价购买记录,支持按是否退款筛选,退款项目带有标记。
🔷 内购分析 (I 键)
- 汇总所有主货币的内购记录,按游戏分组。
- 每个游戏显示:内购物品种类数、总购买次数、总花费、均价(总花费/总次数)。
- 游戏列表按总花费降序排列,前三名高亮显示。
- 点击任意游戏行,可展开查看该游戏下每个物品的购买次数、总花费、均价。
- 顶部三张卡片汇总:物品种类数、总购买次数、内购总花费。
7️⃣ 快捷键
| 按键 | 功能 |
|---|---|
D |
打开消费分类占比图 |
B |
打开收支柱状图 |
R |
打开转区 CD 查询 |
G |
打开送礼额度计算 |
K |
打开商店折扣统计 |
I |
打开内购分析 |
C |
重置筛选为“全部”类别 |
S |
聚焦到搜索框(并选中内容) |
N |
下一页(分页模式下) |
P |
上一页(分页模式下) |
Esc |
关闭当前打开的模态框 / 取消输入框焦点 |
注意:快捷键在焦点处于输入框、下拉菜单或文本区域时不会触发(
S键例外,它会自动聚焦搜索框)。
⚙️ 高级设置(代码内可调参数)
脚本顶部 配置常量 区域包含可自定义参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
CD_DAYS |
90 | 转区冷却天数 |
PAGE_SIZE |
30 | 每页显示记录数 |
DEBOUNCE_MS |
200 | 搜索输入防抖延迟 |
SETTLE_MS |
300 | 加载更多后稳定等待时间 |
SAFETY_TIMEOUT |
5000 | 加载超时保护 |
🔒 隐私与安全
- 脚本不收集任何个人数据,所有数据仅在本地处理。
- 主货币切换依赖页面已有的消费记录,不会向外部发送任何请求。
- 转区 CD 查询仅基于本地消费历史分析,不涉及 Steam API 调用。
- 所有图表和统计均为纯前端计算,无数据外传。
❓ 常见问题 (FAQ)
Q:为什么某些交易被归为“其他”?
A:脚本根据交易描述中的关键词匹配,若无法匹配到任何已知类别(如“市场交易”但钱包变更不含正负号),则归为“其他”,在表格中隐藏。您可以检查该条目的描述文本是否标准。
Q:主货币切换后,次级货币统计为何不显示?
A:次级货币统计只显示在切换后的主货币以外的其他货币交易。若某货币没有交易记录,则不会出现在列表中。
Q:转区 CD 查询没有显示任何历史记录?
A:这可能是因为您的账户从未发生过货币转换,或者转换记录被过滤掉了(例如仅充值卡兑换未触发实际货币变更)。脚本会尽量从消费记录中推断转换事件,若无则显示“未发生任何转区”。
Q:送礼额度中的“已送礼(30天内)”是什么意思?
A:该数值取自分类为“送礼”的交易总金额(脚本中目前未做30天限制,实际为所有送礼记录总和)。滑块允许您调整该数值,以模拟不同送礼策略对剩余额度的影响。
Q:折扣统计没有显示任何数据?
A:折扣统计仅针对主货币的“直购”订单,且要求订单中包含原价和折后价信息(即 wht_base_price 列有 wht_discounted_price 子元素)。若无此类订单,则相关统计为零。
Q:页面加载很慢,如何处理?
A:脚本在加载时会自动点击“加载更多”按钮以获取全部历史记录。如果记录非常多,建议耐心等待。您也可以手动滚动到底部点击“加载更多”,脚本会辅助处理。若仍过慢,可调高 SAFETY_TIMEOUT 值。
📜 开源与反馈
- 主页:Keylol 论坛发布帖
- GitHub:脚本通过 GreasyFork 托管,欢迎提交 Issue 或 PR。
- 更新:脚本会自动检查更新(通过 GreasyFork 的
@updateURL)。
本手册依据脚本源码 v2.1.24 编写,如有变更请以实际界面为准。
Happy spending tracking! 🛒