/* 无边星链一键下架 */ const scriptName = `无边星链一键下架`; const magicJS = MagicJS(scriptName, "INFO"); const WuBianConstKey = { // 基础数据 UserInfo: 'WubianUserInfo', Token: 'WubianProToken', ActivityListData: 'WubianActivityListData', ActivityGoodsList: 'WubianActivityGoodsList', ActivityTaskCaptureEnabled: 'WubianActivityTaskCaptureEnabled', ActivityTagName: 'WubianActivityActivityTagName', ActivityIndexName: 'WubianActivityIndexName', ActivityId: 'WubianActivityId', TenantId: 'WubianTenantId', FirstOrderCaptureEnabled: 'WubianFirstOrderCaptureEnabled', FirstArtListData: 'WubianFirstArtListData', FirstGoodsId: 'WubianFirstGoodsId', FirstGoodsName: 'WubianFirstGoodsName', CreateFirstOrderData: 'WubianCreateFirstOrderData', FirstGrabConcurrentMode: 'WubianFirstGrabConcurrentMode', FirstGrabRunsPerSecond: 'WubianFirstGrabRunsPerSecond', ConsignmentCaptureEnabled: 'WubianConsignmentCaptureEnabled', MyCollectListData: 'WubianMyCollectListData', ConsignmentArtName: 'WubianConsignmentArtName', ConsignmentArtId: 'WubianConsignmentArtId', ConsignmentArtPrice: 'WubianConsignmentArtPrice', ConsignmentArtAmount: 'WubianConsignmentArtAmount', CloseSaleArtName: 'WubianCloseSaleArtName', }; const gUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/20) uni-app`; const gHost = `api.wubian.pro`; let gToken = magicJS.data.read(WuBianConstKey.Token, ''); const gCommonHeaders = { 'Accept': `*/*`, 'Accept-Encoding': `gzip, deflate, br`, 'Connection': `keep-alive`, 'Content-Type': `application/json`, 'Cookie': `token=${gToken}`, 'Host': gHost, 'User-Agent': gUserAgent, 'CLIENT-TYPE': `APP`, 'token': gToken, 'Accept-Language': `zh-CN,zh-Hans;q=0.9` }; let gRetBody; async function Main() { if (magicJS.isStrictRequest) { magicJS.checkRecordRequestBody(); } if (magicJS.isRequest) { checkHandleRequest(); } else { updateHeaders(); await tryCloseSale(); } magicJS.notification.msg(''); if (gRetBody) { magicJS.done({ body: JSON.stringify(gRetBody) }); } else { magicJS.done(); } } function checkHandleRequest() { } function updateHeaders() { gToken = magicJS.data.read(WuBianConstKey.Token, ''); gCommonHeaders['token'] = gToken; gCommonHeaders['cookie'] = `token=${gToken}`; } function getTenantId() { let tenantId = magicJS.data.read(WuBianConstKey.TenantId, '238bw8l9n5'); return tenantId; } function getCloseSaleName() { return magicJS.data.read(WuBianConstKey.CloseSaleArtName, ''); } async function tryCloseSale() { let tenantId = getTenantId(); let name = getCloseSaleName(); let page = 1; while (page < 100) { let retCollectList = await queryUserCollectList(tenantId, 1, 2, page); if (retCollectList && retCollectList.code == 200) { let collectList = retCollectList.data.list; for (let i = 0; i < collectList.length; ++i) { let goodsItem = collectList[i]; magicJS.logger.info(`[${goodsItem.title}#${goodsItem.ver}]¥${goodsItem.price}寄售单状态:${goodsItem.status}`); // if (goodsItem.status == -1) {//锁定中 // continue; // } if (goodsItem.status == -2) {//寄售中 } if (goodsItem.title.indexOf(name) > -1) { let retGoodsDetail = await getMarketGoodsInfo(goodsItem.goodsId, 1); let goodsBaseInfo = retGoodsDetail.data?.info; let retCancelOpt = await cancelConsignmentOrder(goodsItem.artId, goodsItem.goodsId); if (retCancelOpt && retCancelOpt.code == 200) { magicJS.notification.appendNotifyInfo(`[${goodsItem.title}#${goodsItem.ver}]¥${goodsItem.price}寄售单取消成功!`); } else { magicJS.notification.appendNotifyInfo(`[${goodsItem.title}#${goodsItem.ver}]¥${goodsItem.price}寄售单取消失败,原因:${retCancelOpt?.msg}!`); } } } if (retCollectList.data.next == 1) { page++; } else { break; } } } } /** * * @param {*} type * @param {*} state 1=收藏中 2=转让中 3=已转让 * @param {*} page * @returns */ async function queryUserCollectList(tenantId, type, state, page) { const url = `https://api.wubian.pro/vmf/app/user/collect/list`; const reqData = { type: type, state: state, page: page, tenantId: tenantId, }; let options = { url: url, headers: gCommonHeaders, body: JSON.stringify(reqData), }; let result = await magicJS.http.post(options).then(response => { try { let rspData = response.body; // magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`); return rspData; } catch (e) { magicJS.logger.error(e); } }).catch(err => { const msg = `获取个人拥有的产品列表数据异常\n${JSON.stringify(err)}`; magicJS.logger.error(msg); }); return result; } async function getMarketGoodsInfo(goodsId, type) { const url = `https://api.wubian.pro/vmf/app/market/goodsInfo`; const reqData = { goodsId: goodsId, type: String(type), }; let options = { url: url, headers: gCommonHeaders, body: JSON.stringify(reqData), }; let result = await magicJS.http.post(options).then(response => { try { let rspData = response.body; // magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`); return rspData; } catch (e) { magicJS.logger.error(e); } }).catch(err => { const msg = `请求产品信息异常\n${JSON.stringify(err)}`; magicJS.logger.error(msg); }); return result; } async function cancelConsignmentOrder(artHashId, goodsHashId) { const url = `https://api.wubian.pro/vmf/app/order/cancelConsignmentOrder`; const reqData = { artHashId: artHashId, goodsHashId: goodsHashId, }; let options = { url: url, headers: gCommonHeaders, body: JSON.stringify(reqData), }; let result = await magicJS.http.post(options).then(response => { try { let rspData = response.body; magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`); return rspData; } catch (e) { magicJS.logger.error(e); } }).catch(err => { const msg = `请求取消寄售异常\n${JSON.stringify(err)}`; magicJS.logger.error(msg); }); return result; }