悠悠有品饰品折扣率计算
概述
在悠悠有品(youpin898.com)的饰品市场页与饰品详情页,直接显示该饰品「倒余额」的折扣率:用人民币在悠悠有品买入,再挂到 Steam 社区市场卖出并扣除手续费后,能换回多少 Steam 余额。
脚本拦截页面自身的接口响应,复用响应里已有的悠悠有品价格与 Steam 价格计算折扣,不为计算折扣额外发起请求。除此之外,详情页还会向价格走势接口请求交易次数(近 7 日与近 30 日各一次)。
功能特性
- 市场列表页(
/market):在每个饰品卡片的标签行末尾附加折扣率标签,按档位换色
- 饰品详情页(
/market/goods-list):在价格区域插入「折扣」信息
- 详情页交易次数:在折扣旁显示近 7 日 / 近 30 日交易次数,作为饰品流通量的参考
- 三档配色:低于 80% 绿色(值得倒),80%~100% 黄色(基本持平),高于 100% 红色(倒余额反而亏)
- 点击跳转:市场页的折扣标签本身就是链接,点击直达该饰品的详情页(建议中键点击,可以保持原界面不调整新标签页打开)
折扣率怎么算
折扣率 = 悠悠有品售价 ÷ (Steam 售价 × 0.85)
其中 0.85 是 Steam 社区市场成交后扣除 15% 手续费的实际到手比例。
折扣率越低越划算:60% 表示花 0.6 元人民币能换到 1 元 Steam 余额;超过 100% 则说明这笔倒余额是亏的。
档位阈值见 src/module/discount.ts 中的 LOWER_DROP_PRICE_PERCENT = 0.8,详情页与市场页共用这个模块。
使用方法
- 安装网页拓展 脚本猫
- 点击脚本详情页的 安装脚本 按钮
- 打开 https://www.youpin898.com/market 或任意饰品详情页,等列表数据加载完成后即可看到折扣标签
说明
- 匹配范围:
https://www.youpin898.com/*,在 document-body 阶段运行
- 详情页的悠悠有品售价优先取「外观」筛选中当前外观对应的价格;若页面没有「外观」筛选、筛选列表为空、找不到当前外观,或外观价不是有限正数(包括 0),则回退读取「在售」列表的第一个价格;两种取法都取不到时跳过该饰品,只在控制台输出一条警告,不显示折扣
- 在售价与 Steam 价都必须是有限正数,否则同样跳过渲染,不会出现
0% 或 NaN
- 交易次数来自价格走势接口(
orderType: 13):取接口返回的成交点列表长度,近 7 日与近 30 日各请求一次
- 必须登录悠悠有品账号:脚本读取 cookie 里的
uu_token 作为鉴权;未登录或近 7 日取不到时整块不显示(近 30 日单独失败只少那一行),折扣不受影响
- 交易次数是趋势接口返回的成交点数量,不等于 Steam 官方成交笔数;接口对数据点做过采样,近 30 日的数字通常不会正好是近 7 日的 4 倍
- 交易次数只在折扣出现的页面显示:无在售面板的租赁页、价格走势页不显示
- 折扣率仅供参考,Steam 市场价格波动、交易冷却与挂单成交速度都会影响实际到手余额
开发与测试
在脚本项目目录 src/com/youpin898/steam-price-calculate/ 下执行:
pnpm build — 生产构建,输出到 dist/steam-price-calculate.user.js(构建前会先跑 TypeScript 检查)
pnpm test — 运行共享折扣计算的单元测试(Vitest)
pnpm test:browser — 通过父仓库的 .browser-harness 跑真实浏览器回归
跑浏览器回归前,先 pnpm build,再用脚本猫(ScriptCat)安装 dist/steam-price-calculate.user.js(第一次安装要在浏览器弹窗里点「允许」),最后执行 pnpm test:browser。脚本会核对脚本猫里已安装的版本与 banner/UserScript.ts 是否一致,不一致会提示重新构建并安装。
浏览器验证用的是仓库根那套独立配置,动手前先 pnpm browser:doctor 体检,完整流程见 docs/agents/browser-harness.md。
许可证
GPL-3
技术支持
如有问题或建议,请联系:
功能增加模板
脚本名称: 悠悠有品饰品折扣率计算
脚本版本: [如 1.0.0]
需要的新功能:
[...]
Bug提交模板
脚本名称: 悠悠有品饰品折扣率计算
脚本版本: [如 1.0.0]
使用的浏览器及其版本: [如 Google Chrome 版本 142.0.7444.61(正式版本) (64 位)]
出现的问题:
[...]
重现步骤:
1.
2.
3.
补充(如报错截图):