上个月苹果发布了
iPhone 14
系列,一开始没抢到收发,自己的64G的11 Pro
已经不堪重负了,所以想早点换,所以就想着自己写个监控库存的小插件。
0.开发
这边选择的是用Node-Red来做,因为这个东西简单,学起来没什么成本,如果写个老长的脚本,还不直观。所以用这个来写,也很简单,这边不多赘述。这边监控的是紫色的Pro Max。
a) 抓包获得的库存接口
https://www.apple.com.cn/shop/fulfillment-messages?pl=true&mts.0=regular&parts.0=MQ863CH/A&location=%E6%B1%9F%E8%8B%8F%20%E5%8D%97%E4%BA%AC%20%E6%B5%A6%E5%8F%A3%E5%8C%BA
这个大家直接控制台就能够找到。返回的JSON数据,如下图:
b) 简单的逻辑处理
let retJson = msg.payload;
let status = retJson.head.status;
var notifyMsg = "";
msg.havePhone = false;
if(status == "200"){
stores = retJson.body.content.pickupMessage.stores;
for(var store in stores){
let city = stores[store].city;
let storeName = stores[store].storeName;
if("南京" == city){
let pickupSearchQuote = stores[store].partsAvailability["MQ863CH/A"].pickupSearchQuote;
let pickupDisplay = stores[store].partsAvailability["MQ863CH/A"].pickupDisplay;
if(pickupDisplay != "unavailable" && pickupDisplay != "default"){
notifyMsg = notifyMsg + city + storeName + pickupSearchQuote + "\n";
msg.havePhone = true;
}
}
}
}
if(msg.havePhone){
let title = "iPhone 供货情况";
let link = "https://store.apple.com/cn/xc/product/MQ863CH/A";
let img = "https://store.storeimages.cdn-apple.com/8756/as-images.apple.com/is/iphone-14-pro-storage-select-202209-6-7inch-deeppurple?wid=5120&hei=2880&fmt=jpeg&qlt=90&.v=1660768940425";
let summary = notifyMsg
let users = "freefitter";
msg.payload = "title=" + title + "&link=" + link +"&img=" + img + "&summary="+ summary + "&users=" + users;
}
return msg;
c)通知接口
通知是用的之前这个博客发文通知里面的接口,大家可以参看这个文章。
1.成果展示
最后我也是在10月9日抢到了手机,感觉还是不错的,就是有点大。最后附上通知截图。