Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
sari3l committed May 10, 2022
1 parent 18f0095 commit 0bce9e7
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 22 deletions.
30 changes: 21 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# sams_helper

山姆下单助手
<img src="https://github.com/sari3l/sams_helper/blob/main/pics/sams_helper.png"/>

借鉴自: https://github.com/robGoods/sams v1.0

Expand All @@ -19,7 +19,7 @@ ignoreInvalid: true # 是否忽略无效商品
noticeType: 0 # 0->不通知, 1->Bark, 2->Server酱,3->OSX 系统语音
```
其他配置(尤其是通知相关配置)请查看文件内注释自行修改
其他配置(尤其是通知相关配置)请查看文件内注释自行修改
### 0x02 运行方式
Expand All @@ -45,7 +45,24 @@ go run main.go
```
3. 命令行运行可执行文件。

## 注意
## 功能支持

| config | 简介 |
|-----------------------|--------------------------------------|
| addGoodsFromFileSet | 自动搜索添加商品(即使无货),允许热加载随时更新 |
| autoFixPurchaseLimit | 对限购、库存数量不足的商品自动修正 |
| autoInputSet | 自动选择支付方式、收货地址 |
| autoShardingForOrder | 超重订单自动拆分下单(暂未考虑运费、重量最优解) |
| bruteCapacity | 运力爆破(非常规爆破),全城配下很好用的功能,增大下单成功率 |
| cartSelectedStateSync | 全平台勾选状态同步,只会下单勾选商品 |
| moneySet | 控制单次订单金额上下限,累计金额上限(会影响超重拆分功能) |
| runUnlimited | 成功下单后程序不退出持续运行 |
| sleepTimeSet | 自定义各步骤休眠时间 |
| supplySet | 即时获取保供清单,可强制添加无货保供商品,同时可设置黑白名单限制监控清单 |
| updateStoreForce | 强制刷新商店,避免店面突然上下线引起的异常(早中抢购建议开启) |
| proxySet | 代理设置,方便抓包、调试 |

## 注意事项

1. `runUnlimited: true`永不停歇模式开启
- 下单成功会回到购物车检查状态,如果没有设置提醒可能错过文字消息。
Expand All @@ -64,14 +81,9 @@ go run main.go
- `fixOnline: true` 线上购物车修正,修正后会重新获取购物车信息
7. `noticeType = 3``Mac Sound` 提醒,仅对 OSX 系统有效。


### 已知情况

1. 部分地区不释放运力,具体表现为`20:59:00`左右运力列表并未更新,且唯一显示运力为隔天不可用
2. 部分地区保供列表套餐有数量,添加购物车但无法结算,认为运力不可达

## 主要更新:

- 2022年05月10日 新增`超重自动拆分`设置
- 2022年05月02日 新增`全平台购物车勾选状态同步`设置
- 2022年05月01日 新增`强制添加购物车``强制更新商店`设置,新增`下单金额限制`功能
- 2022年04月29日 添加`自动输入`设置
Expand Down
7 changes: 4 additions & 3 deletions conf/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ var MoneyMinErr = errors.New("检测购物车金额尚未达到单次订单金
var MoneyMaxErr = errors.New("检测购物车金额超过单次订单金额上限,将手动修改购物车")
var TotalLimitErr = errors.New("检测下单总金额已超累计金额上限,程序将退出!")

var AuthFailErr = errors.New("鉴权失败 auth-token 过期")
var AuthFailErr = errors.New("鉴权失败")
var CartGoodChangeErr = errors.New("购物车商品发生变化,请返回购物车页面重新结算")
var LimitedErr = errors.New("服务器正忙,请稍后再试")
var LimitedErr1 = errors.New("当前购物火爆,请稍后再试")
Expand All @@ -37,8 +37,9 @@ var GetDeliveryErr = errors.New("获取履约配送信息异常,即将重试")
var NoMatchDeliverMode = errors.New("当前区域不支持配送,将重新读取商店信息")
var CloseOrderTimeExceptionErr = errors.New("尊敬的会员,您选择的配送时间已失效,请重新选择")
var NotDeliverCapCityErr = errors.New("当前配送时间段已约满,请重新选择配送时段")
var DecreaseCapacityCountError = errors.New("扣减运力失败,即将重试")
var StoreHasClosedError = errors.New("门店已打烊")
var DecreaseCapacityCountErr = errors.New("扣减运力失败,即将重试")
var StoreHasClosedErr = errors.New("门店已打烊")
var GoodsExceedLimitErr = errors.New("商品超过限购数量")
var DeliveryTypeErr = errors.New("未知设备类型")
var NotCheckShopPendingErr = errors.New("请阅读并勾选《购物须知》")
var RequestErr = errors.New("请求异常")
Expand Down
1 change: 1 addition & 0 deletions goodsList.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# 商品名称: 数量
小胡鸭 柠檬酸辣去骨凤爪 580g: 2
MM 进口全脂纯牛奶 200ml*24: 1
13 changes: 8 additions & 5 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ stepOrderLoop:
goto stepCartLoop
} else if err == conf.GotoCapacityStep {
goto stepCapacityLoop
} else if err == conf.DecreaseCapacityCountError || err == conf.GetDeliveryErr {
} else if err == conf.DecreaseCapacityCountErr || err == conf.GetDeliveryErr {
bruteTime += 1
goto stepCapacityLoop
} else {
Expand Down Expand Up @@ -333,7 +333,7 @@ func stepCartShow(session *sams.Session) error {
continue
} else {
v2 := sams.Goods{}
copier.Copy(&v2, &v)
_ = copier.Copy(&v2, &v)
v2.Quantity -= i - 1
session.GoodsListFuture = append(session.GoodsListFuture, v2)
v.Quantity = i - 1
Expand Down Expand Up @@ -476,18 +476,21 @@ func stepOrder(session *sams.Session) error {
case conf.CloseOrderTimeExceptionErr, conf.NotDeliverCapCityErr:
tools.OutputBytes(c)
return conf.GotoCapacityStep
case conf.DecreaseCapacityCountError:
case conf.DecreaseCapacityCountErr:
tools.OutputBytes(c)
return conf.DecreaseCapacityCountError
return conf.DecreaseCapacityCountErr
case conf.GetDeliveryErr:
tools.OutputBytes(c)
return conf.GotoCartStep
case conf.OutOfSellErr:
tools.OutputBytes(c)
return conf.GotoCartStep
case conf.StoreHasClosedError:
case conf.StoreHasClosedErr:
tools.OutputBytes(c)
return conf.GotoStoreStep
case conf.GoodsExceedLimitErr:
tools.OutputBytes(c)
return conf.GotoCartStep
default:
tools.OutputBytes(c)
return conf.GotoCapacityStep
Expand Down
Binary file added pics/sams_helper.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 8 additions & 5 deletions requests/requests.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ func (request *Request) InitRequest(setting conf.Setting) error {

request.Headers = &http.Header{
"Host": []string{"api-sams.walmartmobile.cn"},
"content-Type": []string{"application/json"},
"accept": []string{"*/*"},
"Content-Type": []string{"application/json"},
"Accept": []string{"*/*"},
"auth-token": []string{setting.AuthToken},
"Accept-Language": []string{"zh-Hans-CN;q=1, en-CN;q=0.9, ga-IE;q=0.8"},
}
Expand All @@ -51,8 +51,9 @@ func (request *Request) InitRequest(setting conf.Setting) error {
request.Headers.Set("user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E217 MicroMessenger/6.8.0(0x16080000) NetType/WIFI Language/en Branch/Br_trunk MiniProgramEnv/Mac")
default: // 默认 ios
request.Headers.Set("device-type", "ios")
request.Headers.Set("user-agent", "SamClub/5.0.47 (iPhone; iOS 15.4.1; Scale/3.00)SamClub/5.0.47 (iPhone; iOS 15.4.1; Scale/3.00)")
request.Headers.Set("user-agent", "SamClub/5.0.47 (iPhone; iOS 15.4.1; Scale/3.00)")
}

return nil
}

Expand Down Expand Up @@ -92,13 +93,15 @@ func (request *Request) do(req *http.Request) (error, gjson.Result) {
case "CLOSE_ORDER_TIME_EXCEPTION":
return conf.CloseOrderTimeExceptionErr, gjson.Result{}
case "DECREASE_CAPACITY_COUNT_ERROR":
return conf.DecreaseCapacityCountError, gjson.Result{}
return conf.DecreaseCapacityCountErr, gjson.Result{}
case "GOODS_EXCEED_LIMIT":
return conf.GoodsExceedLimitErr, gjson.Result{}
case "OUT_OF_STOCK":
return conf.OutOfSellErr, gjson.Result{}
case "NOT_DELIVERY_CAPACITY_ERROR":
return conf.NotDeliverCapCityErr, gjson.Result{}
case "STORE_HAS_CLOSED":
return conf.StoreHasClosedError, gjson.Result{}
return conf.StoreHasClosedErr, gjson.Result{}
case "NO_MATCH_DELIVERY_MODE":
return conf.NoMatchDeliverMode, gjson.Result{}
case "FAIL":
Expand Down

0 comments on commit 0bce9e7

Please sign in to comment.