Skip to content

HankNovic/hudiyun-helper-scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

商品自动化脚本

用于国内主流 IDC 销售系统旧系的云平台的自动化工具集,最初基于狐蒂云(szhdy.com)编写,现已支持通过“广域名注入 + 运行时识别”适配更多同类商家平台,包含自动抢购和商品识别两个脚本。

项目特点

纯前端脚本,无需后端
数据存储在浏览器 localStorage
通过 DOM 操作实现自动化
支持页面跳转、弹窗关闭、错误重试等

安装说明

  1. 安装浏览器扩展 Tampermonkey
  2. 打开 Tampermonkey 管理面板
  3. 创建新脚本,复制对应脚本的完整代码并保存
  4. 访问对应平台的商品页/购物车页,脚本会在页面满足特征时自动运行

⚠️注意事项(必读)

  • 不要同时运行两个脚本(识别.js 与 抢购.js),避免页面跳转与状态冲突
  • 建议使用单独的浏览器环境运行脚本,减少其他扩展对页面 DOM、请求和性能的干扰
  • 抢购脚本在基于三周年活动编写时只针对“页面默认配置”下单,暂不支持自动选择具体配置项
  • 购物车可能出现重复订单:现在可在抢购脚本面板开启“购物车自动删除多余商品(删到剩一件)”;若未开启,仍需手动删除多余订单后再继续
  • 抢购脚本进入“支付页”会自动暂停(可选重复提交)
  • 三时间段模式会先卡时间窗口,未到 7-9/13-14/17-19 不会执行购买或加入购物车点击
  • 若检测到登录失效,脚本会自动暂停并响铃;暂停期间仍处于登出状态时,每 5 分钟会再次提醒一次
  • 若长时间未检测到目标,脚本会按阈值自动刷新页面;请合理设置检查间隔、刷新阈值和加载失败强刷阈值

使用教程

流程总览

  1. 先“识别”出有效商品 PID → 2. 再“抢购”这些 PID。

商品识别.js(先运行,可选)

目标:在一段 PID 范围内,自动跳转判定哪些是有效商品配置页,并可记录标题/价格。

操作步骤:

  1. 打开任意商品页面,启动识别脚本,面板中设置:
    • 起始 PID、结束 PID
    • 检查间隔(默认 500ms)
    • 可选:勾选“获取基础价格”
  2. 点击“开始”后脚本会逐个跳转检测;成功项将记录为“PID 标题 价格”并显示在面板
  3. 随时可“复制/清空成功”,“清空失败”

提示:出现 404/502 等错误,脚本会先自动重试一次,仍失败才计入“失败列表”。数据持久化于 localStorage

新增说明:

  • 商品识别脚本已支持“多平台适配”:脚本注入范围改为广域名,并在运行时自动识别当前页面是否为同类商品配置页。
  • 扫描过程中跳转到下一个 PID 时,会优先沿用当前站点域名继续扫描,不再写死狐蒂云域名。

比如之前的三周年活动香港PID:1859,地址: https://www.szhdy.com/cart?action=configureproduct&pid=1859

其他商品PID:

点击展开 2150 2026 云服务器16H系列(YJ6) ¥100009999.00
2151 潮州云服务器 代号:C ¥100000.00
2152 香港35区16H32G(YJ) ¥3999.00
2153 香港22区|精品网络| 2H系列 ¥20.00
2154 香港22区|精品网络| 4H系列 ¥35.00
2155 香港22区|精品网络| 8H系列 ¥60.00
2156 香港22区|精品网络| 16H系列 ¥100.00
2157 香港云服务器 代号:A ¥388.00
2158 美国云服务器 代号:I ¥388.00
2159 香港云服务器 代号:B ¥360.00
2160 2026 云服务器32H系列(YJ4) ¥999999.00
2161 香港云服务器 代号:C-A ¥99999999.00
2162 美国云服务器 代号:J-A ¥99999999.00
2163 香港云服务器 代号:C-B ¥138.00
2164 V9-10会员免抢专属 香港云服务器 代号:C-B ¥9999999.00
2165 境外云服务器 代号:J-B ¥138.00
2166 V9-10会员免抢专属 美国云服务器 代号:J-B ¥99999999.99
2167 境外云服务器 代号:J-C ¥138.00
2026.3.25 ???活动更新~

⚠️脚本在狐蒂云还能继续兼容,不过因为多了个支付方式,(或许?)需要提前往账号充值资金!!⚠️

支付方式又变回剩一个了

自动抢购.js(后运行)

目标:在指定检测策略与商品 PID 列表下,循环检测可购即自动点击购买/提交。

操作步骤:

  1. 打开任意商品页面,启动识别脚本,将识别得到的 PID ,挑出目标商品,粘贴到“商品 ID(逗号分隔)”里(支持英文逗号,和中文逗号),防止误伤。
  2. 选择检测模式:
    • 全天候(all_day):0-24h 持续检测(推荐)
    • 三时间段(three_periods):每日 7-9/13-14/17-19 运行(保留功能)
  3. 设置检查间隔(默认 800ms)与“刷新阈值”(默认 5 次失败后刷新)
  4. 可选:开启“购物车提交后重复提交”、“购物车自动删除多余商品”、“自动关闭弹窗”、“HTTP错误自动重试”、“商品页PID白名单校验”、“配置页随机时间等待”、“加载失败自动强刷”、“登出提醒”、“购物车自动输入并应用优惠码”、“侧栏模式”
  5. 手工修改网址 PID,跳转到目标商品页后,再点击“开始”,面板会显示状态、倒计时、失败计数、随机等待、点击加入等信息

新增功能说明(抢购.js):

点击展开
  • 260427 更新:

    • 三时间段模式增加前置时间门禁,未到窗口时不会点击购买、加入购物车或提交。
    • 配置页白名单通过后,加入购物车前也会再检查一次时间窗口,避免刚加白名单就直接点击。
    • 登出暂停期间会保留提醒:首次检测到登出会响铃,之后仍处于登出状态时每 5 分钟再响一次。
    • 配置页随机等待标记收紧到本轮尝试,避免同一轮里重复等待;刷新后会重新允许。
    • 加了轮次令牌,旧的异步回调回来后不会再改面板或覆盖新状态。
    • 新增“点击加入”状态提示,方便看配置页流程走到哪一步。
  • 新增“加载失败自动强刷”(可开关):

    • 只认面板里确认过的“[保护页] 加载失败”状态,不自己乱猜。
    • 默认连续 3 次后强刷一次,次数可在配置里调。
    • refreshThreshold 控制连续几次加载失败后强刷,loadFailRefreshMax 控制最多强刷几次,超过后会自动暂停。
  • 抢购脚本已支持“多平台适配”:脚本注入范围改为广域名,并在运行时识别当前页面是否为财务旧系同类页面,避免只绑定单一域名。

  • 新增“购物车自动删除多余商品(删到只剩一件)”(可开关):

    • 进入购物车页后,若检测到购物车中存在多件商品,可自动从上往下逐个删除。
    • 每次删除后会自动点击确认弹窗中的“确定”。
    • 删除到只剩 1 件商品后,再继续后续结算流程。
    • 默认关闭,不影响原有使用方式。
  • 新增“购物车自动输入并应用优惠码”(可开关):

    • 可在面板中填写优惠码,脚本进入购物车后会自动填写并点击应用。
    • 执行顺序在“自动删除多余商品”之后、“确认支付/提交订单”之前。
    • 若已开启该功能但优惠码为空,或未找到优惠码输入框/应用按钮,脚本会自动暂停,等待手动处理。
    • 若检测到页面提示“优惠码不存在”,脚本会自动暂停,并停留在当前购物车页面。
  • 点击“开始”时,脚本会主动重新唤醒主循环,不只切换运行状态;同时增加了简单的循环防重入控制,避免重复触发多份主循环。260424

  • 商品 ID 输入支持中英文逗号混合分隔。

  • 新增“商品页PID白名单校验”(可开关):

    • 开启后,脚本在跳转到商品配置页(如 cart?action=configureproduct&pid=2167)会先检查当前 URL 的 pid 是否在“商品 ID(逗号分隔)”列表中。
    • 若不在列表中:脚本会立即暂停,不再继续后续流程。
    • 若在列表中:才继续执行加入购物车/后续自动流程。
    • 因此开启该功能时,必须在“商品 ID(逗号分隔)”中填写你要抢购的目标 PID
  • 新增“配置页随机时间等待功能”(可开关):

    • 作用于商品配置页(action=configureproduct):页面刷新后会先等待一段时间,再点击“加入购物车”。
    • 控制面板可设置最小/最大等待时间(单位 ms)。
    • 功能关闭时,两个等待输入框为禁用状态。
    • 输入带防呆限制:范围为 0 ~ 3600000ms(最多 1 小时)。
    • 当最小值与最大值相等时,按固定等待时间执行;不相等时按区间随机等待。
    • 现在同一个 pid 在同一轮尝试里只会随机等待一次,避免重复进入配置页时反复等待。
    • 另外脚本加了“轮次令牌”,旧的异步回调回来后不会再改面板或覆盖新状态。

⚠️注意⚠️
建议直接在已知的具体商品页面运行抢购.js,因不可控的活动页面变化,不要在活动列表页面使用!

行为规则:

  • 支付页:自动暂停,不再执行任何点击(此刻才算锁单了)
  • 三时间段模式:未到窗口先等待,不会提前点击购买、加入购物车或提交
  • 登出状态:自动暂停并响铃;仍未恢复登录时,每 5 分钟再响一次
  • 购物车页:可先自动删除多余商品、自动应用优惠码,再自动勾选支付/条款并提交(可选重复提交)
  • 保护页(配置页):不刷新,只做必要点击(如加入购物车);若开启随机等待,会先等再点
  • 普通商品列表:依据 pid/gid[data-id]/[data-gid] 定位按钮自动点击

常见问题

  • 新安装了脚本,卡在保护页状态
    • 手动刷新一下页面
  • 控制面板超出页面范围
    • 适当调整页面大小,快捷键:Ctrl + 鼠标滚轮
  • 看不到(没有)自动点击?
    • 检查页面是否能找到以下任一元素:
      • .form-footer-butt[href*="pid=目标ID"]
      • [data-id="目标ID"] .form-footer-butt
      • a[href*="gid=目标ID"]
      • 脚本仅支持MoFang材物系统
  • 识别脚本没记录标题/价格?
    • 标题/价格选择器会因活动样式变化失效,建议先只拿 PID,再人工核验
  • 数据保存在哪里?
    • 抢购配置:hudiyun_config;抢购运行状态:hudiyun_running
    • 识别配置:hudiyun_scanner_config;成功:hudiyun_scanner_success;失败:hudiyun_scanner_failed
  • 暂停后再点“开始”会不会从头开始?
    • 不会。脚本主要按当前页面状态判断下一步动作。
    • 现在点击“开始”时会主动重新唤醒主循环,从当前页面继续执行,而不是单纯等待旧定时器。

致谢与声明

  • 本项目基于群友脚本拓展开发,仅用于学习与技术研究,请遵守网站规则与当地法律!
  • 祝大家都能买到需要的服务器!

About

基于 Tampermonkey + 原生 JavaScript 的魔方抢购脚本 & 商品页识别脚本

Resources

License

Stars

Watchers

Forks

Contributors