又造了个轮子,监控实体店库存,实现自动下单

2023-09-21 11:18:09 +08:00
 oreainters

监控库存的脚本已经比较多了,实现起来也比较简单,几行代码就完成了,只是好像没有用起来特别方便的。

支持了一下 docker ,这样可以直接方便跑在服务器上。

自动下单没找到现有的,索性花了点时间实现了,但是这两天 15 的实体店库存都刷不出来,也不知道能不能一次成功,等测成功了再提上去吧。

Github 地址:ToolGallery

推送支持了 bark, 钉钉通知。

懒人示例:

docker run --rm toolgallery/ape-store-assistant:main -p MTQ43CH/A -l '广东 深圳 罗湖区' -c cn

# 产品型号可以通过 -lp --code 15-pro -c cn 获取

比较菜,轻喷。

4631 次点击
所在节点    Apple
58 条回复
Fange
2023-09-22 02:10:56 +08:00
有点好奇 不需要填写个人信息和付款方式吗?
oreainters
2023-09-22 16:34:00 +08:00
@Fange 需要基本信息
calpes
2023-09-22 16:58:36 +08:00
@oreainters 我注意到似乎没有填写到店时间?
Soulkim
2023-09-22 16:59:42 +08:00
@oreainters #22 大佬能给个自动下单的示例吗,刚上手不太明白,还有个问题就是不用登录 appleid 的吗?
Heroininu
2023-09-22 17:20:07 +08:00
@calpes 自动取第一个到店时间得
calpes
2023-09-22 17:23:07 +08:00
@oreainters 设置为 5s 后边都会失败,apple store 的服务器不太行吗
zjunjun
2023-09-22 17:51:38 +08:00
用脚本买到一个 256 黑,后天下午可取。楼主厉害👍
oreainters
2023-09-22 18:08:45 +08:00
@zjunjun 厉害厉害,实话讲,我到现在也没买到,放的太少了。
oreainters
2023-09-22 18:14:25 +08:00
@Soulkim 不用,这个是用游客进行下单,下单成功后在邮件里进行支付,示例我看看补充在 readme 里
rzjsbbbb
2023-09-22 23:45:51 +08:00
可不可以加一个白名单或者限制距离的功能啊,苏州甚至查长沙的库存。。。
oreainters
2023-09-23 15:36:54 +08:00
@rzjsbbbb 已加
cairnechen
2023-09-23 17:51:48 +08:00
@oreainters

大佬,问一下不用 docker 怎么运行
Hades300
2023-09-23 21:49:01 +08:00
感谢楼主,已经挂着跑了一整个下午了,发现不少这种报错,每次都在 start_checkout: Starting checkout... 之后,代码我改过一些行数不一定准。。 准备开个 debug level 调调看,楼主遇到过吗
File "/Users/XXX/PycharmProjects/APEStoreAssistant/src/actions/order.py", line 148, in start_checkout
signin_url = resp_json["head"]["data"]["url"]
KeyError: 'data'
Hades300
2023-09-24 08:44:41 +08:00
InventoryMonitor 持有的 Order 一直复用一个 session ,会不会存在前面下单失败,购物车里积攒了很多个商品的问题🧐
Hades300
2023-09-24 10:11:52 +08:00
感谢楼主贡献的代码和思路,对我而言感觉是个很规范的 python 项目,学到了蛮多。
发现一个问题和一些优化点
1. 我在页面上购买杭州的 14Plus 测试,无法在付款前拿到 timewindow 的,这个不是下单的必要条件。
2. 填充付款方式和联系人信息是可以并行的🤣(杭州货好难抢,每次补货只持续 2-10s )
3. monitor 模块和 order 模块目前串行耦合,一个 available 的机会是可以开多个 order 并行 race 一下的(相当于模拟多位 guest 同时下单)
4. 激进一些,甚至可以初始化时拿好 store 信息,不 check 库存直接下单(这个有些脑补,需要测出无库存时的表现)
关于第一点,可能是不同地区的下单逻辑稍有不同,比如上海就能通过楼主给的流程下单,但对其他地区是致命的因为必失败。
除此之外,刚刚验证了,上面 order 复用问题确实是个缺陷,购物车会越攒越多(程序一直挂着跑,抢 15PM 的话首次失败后后续失败也几乎是必然的)。
感觉是个潘多拉魔盒,想给楼主提 PR 但是又有点不敢提了,不过该说的都说了,,我相信一定有闭源的现存下单工具。。但真的很纠结。。。 @oreainters
oreainters
2023-09-24 12:30:48 +08:00
@Hades300 哈哈,可以提 PR ,order 复用的问题已经发现了,后面修改下。

第一点应该是必要条件,那个是获取取货的时间,很多时候监控到有货,再到拿取货时间的时候已经没了

2 ,3 ,4 都是速度相关的优化,其实已经写好了一个维护 order 池下单的一个方案,下单可以做到 5-6 秒左右,不太确定要不要放出来。
Hades300
2023-09-24 14:08:47 +08:00
@oreainters 酷酷!不过取货时间真的是必要的吗,在杭州下单 iPhone14 是不显示可预约取货时间的,得先付款🤯。在抢 15PM 的时候经常发现有机器但是没有可约时间,怀疑也是和 14 一样。
rzjsbbbb
2023-09-24 14:28:01 +08:00
@oreainters 我看很多现货产品 14/iPad 之类的都是取货日期待付款完成后确定,要先付款才行
oreainters
2023-09-24 21:26:48 +08:00
@Hades300
@rzjsbbbb 不太确定,空了试试
c5QzzesMys8FudxI
2023-09-25 08:23:11 +08:00
OP 我没看懂这个参数 能举个简单的例子么? 比如我在北京想监控 iPhone15promax 钛原色 256G 请问怎么跑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/975815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX