MCPcopy Create free account
hub / github.com/blackmatrix7/ios_rule_script / wrap

Function wrap

script/applestore/applestore.js:40–127  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

38
39 for (let i = 0; i < len; i++) {
40 const wrap = async () => {
41 let partsConfig = goods_models[i].split("#");
42 let parts = partsConfig[0];
43 let option = partsConfig.length >= 2 ? partsConfig[1] : "";
44 let name = partsConfig.length == 3 ? partsConfig[2] : "";
45 let subObj = { watch: 0, pickup: 0, soldout: 0, changed: 0 };
46 let availability = await getGoodsStock(parts, applestore_region, option);
47
48 if (availability && availability.length > 0) {
49 // 获取AppleStore取货信息
50 for (let store of availability) {
51 let storeNumber = store["storeNumber"];
52 if (!stock.hasOwnProperty(parts)) {
53 stock[parts] = { title: store["partsAvailability"][parts]["storePickupProductTitle"], stores: {} };
54 }
55 if (!stock[parts]["stores"][storeNumber]) {
56 stock[parts]["stores"][storeNumber] = { notify: false, pickup: false, msg: "等待查询", city: store["city"], name: store["storeName"] };
57 }
58 if (stock[parts]["stores"][storeNumber]["msg"] != store["partsAvailability"][parts]["pickupSearchQuote"]) {
59 // 更新库存情况
60 stock[parts]["stores"][storeNumber]["msg"] = store["partsAvailability"][parts]["pickupSearchQuote"];
61 stock[parts]["stores"][storeNumber]["pickup"] = store["partsAvailability"][parts]["pickupDisplay"] != "unavailable";
62 // 库存变化推送通知
63 stock[parts]["stores"][storeNumber]["notify"] = true;
64 } else {
65 // 库存未变化不推送
66 stock[parts]["stores"][storeNumber]["notify"] = false;
67 }
68 }
69
70 let now = new Date();
71 if (!stock[parts]["title"] && !name) {
72 name = "未命名商品";
73 }
74 let logStr = `${name}\n`;
75 let title = `${name} - ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;
76 let watchResult = "全部售罄";
77 let stockInContent = ""; // 有库存的型号与店铺
78 let soldOutContent = ""; // 售罄的型号与店铺
79 let unchangContent = ""; // 没有变化的型号与店铺
80 let content = "";
81
82 // 整理通知内容
83 for (let storeStock of Object.values(stock[parts]["stores"])) {
84 subObj["watch"] += 1;
85 // 有货
86 if (storeStock["pickup"]) {
87 subObj["pickup"] += 1;
88 if (watchResult == "全部售罄") watchResult = `${storeStock["city"]} ${storeStock["name"]}`;
89 if (storeStock["notify"] === true) {
90 subObj["changed"] += 1;
91 if (!!stockInContent) stockInContent += "\n";
92 stockInContent += `🔆 ${storeStock["name"]} - ${storeStock["msg"]}↑`;
93 } else {
94 if (!!unchangContent) unchangContent += "\n";
95 unchangContent += `🔆 ${storeStock["name"]} - ${storeStock["msg"]}● `;
96 }
97 logStr += `${storeStock["name"]} - ${storeStock["msg"]}\n`;

Callers 1

watchStockFunction · 0.85

Calls 3

getGoodsStockFunction · 0.85
readMethod · 0.45
postMethod · 0.45

Tested by

no test coverage detected