|
|
@@ -11,12 +11,15 @@ hostname = api.wubian.pro
|
|
|
|
|
|
*/
|
|
|
|
|
|
+const { userInfo } = require("os");
|
|
|
+
|
|
|
|
|
|
const scriptName = `无边星链助手`;
|
|
|
const magicJS = MagicJS(scriptName, "INFO");
|
|
|
|
|
|
const WuBianConstKey = {
|
|
|
// 基础数据
|
|
|
+ UserInfo: 'WubianUserInfo',
|
|
|
Token: 'WubianProToken',
|
|
|
ActivityListData: 'WubianActivityListData',
|
|
|
ActivityGoodsList: 'WubianActivityGoodsList',
|
|
|
@@ -25,6 +28,11 @@ const WuBianConstKey = {
|
|
|
ActivityIndexName: 'WubianActivityIndexName',
|
|
|
ActivityId: 'WubianActivityId',
|
|
|
TenantId: 'WubianTenantId',
|
|
|
+ FirstOrderCaptureEnabled: 'WubianFirstOrderCaptureEnabled',
|
|
|
+ FirstArtListData: 'WubianFirstArtListData',
|
|
|
+ FirstGoodsId: 'WubianFirstGoodsId',
|
|
|
+ FirstGoodsName: 'WubianFirstGoodsName',
|
|
|
+ CreateFirstOrderData: 'WubianCreateFirstOrderData',
|
|
|
};
|
|
|
|
|
|
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`;
|
|
|
@@ -73,6 +81,9 @@ function checkHandleRequest() {
|
|
|
magicJS.logger.info(`请求body=${magicJS.getRequestBody()}`);
|
|
|
if ($request && $request.method != 'OPTIONS') {
|
|
|
switch (path) {
|
|
|
+ case '/vmf/app/login/mobileLogin':
|
|
|
+ handleMobileLogin();
|
|
|
+ break;
|
|
|
case '/vmf/app/user/collect/list':
|
|
|
handleUserCollectList();
|
|
|
break;
|
|
|
@@ -85,6 +96,10 @@ function checkHandleRequest() {
|
|
|
break;
|
|
|
case '/vmf/app/index/artList':
|
|
|
// 发售产品
|
|
|
+ handleFirstArtList();
|
|
|
+ break;
|
|
|
+ case '/vmf/app/order/createFirstOrder':
|
|
|
+ // 创建发售订单
|
|
|
break;
|
|
|
case '/vmf/app/index/littleMinerInfo':
|
|
|
break;
|
|
|
@@ -147,6 +162,9 @@ function checkHandleRequest() {
|
|
|
case '/vmf/app/synthesis/createCompositeOrder':
|
|
|
break;
|
|
|
default:
|
|
|
+ if (path.indexOf('/vmf/app/order/createFirstOrder') != -1) {
|
|
|
+ handleCreateFirstOrder();
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -242,6 +260,47 @@ function appendCookieStr(newCookieStr) {
|
|
|
magicJS.data.write(WuBianConstKey.Cookie, cookieStr);
|
|
|
}
|
|
|
|
|
|
+function handleMobileLogin() {
|
|
|
+ let rspData = getResponsePlainData();
|
|
|
+ if (!rspData) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (rspData.code != 200) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ // 结果示例:
|
|
|
+ let result = {
|
|
|
+ "code": 200,
|
|
|
+ "data": {
|
|
|
+ "rankInfoHide": 0,
|
|
|
+ "hashId": "80n19034n1",
|
|
|
+ "cancellation": 0,
|
|
|
+ "mobile": "134*****115",
|
|
|
+ "isAuth": 1,
|
|
|
+ "isSecurityPassword": 1,
|
|
|
+ "tokenExpireTime": 1728625959,
|
|
|
+ "avatar": "/assets/img/avatar01.png",
|
|
|
+ "token": "bccafa59-d04c-48c9-82f6-08829155b2c6",
|
|
|
+ "address": "0x3dc7d16739d0f169977f589788007c33a0e8996d",
|
|
|
+ "locksold": 0,
|
|
|
+ "gameUserId": 0,
|
|
|
+ "nickname": "WBXL-9115",
|
|
|
+ "email": "",
|
|
|
+ "score": 0,
|
|
|
+ "lockown": 0
|
|
|
+ },
|
|
|
+ "msg": "成功",
|
|
|
+ "fail": false
|
|
|
+ }
|
|
|
+ */
|
|
|
+ magicJS.data.write(WuBianConstKey.UserInfo, rspData.data);
|
|
|
+ let token = rspData.data.token;
|
|
|
+ let expireDate = new Date(rspData.data.tokenExpireTime * 1000);
|
|
|
+ magicJS.data.write(WuBianConstKey.Token, token);
|
|
|
+ magicJS.notification.appendNotifyInfo(`🎉当前Token刷新到最新,过期时间:${magicJS.formatDate(expireDate, 'yyyy-MM-dd HH:mm:ss')}`);
|
|
|
+}
|
|
|
+
|
|
|
function handleUserCollectList() {
|
|
|
let rspData = getResponsePlainData();
|
|
|
if (!rspData) {
|
|
|
@@ -326,6 +385,11 @@ function isActivityTaskCaptureEnabled() {
|
|
|
return isEnabled;
|
|
|
}
|
|
|
|
|
|
+function isFirstOrderCaptureEnabled() {
|
|
|
+ let isEnabled = magicJS.data.read(WuBianConstKey.FirstOrderCaptureEnabled, true);
|
|
|
+ return isEnabled;
|
|
|
+}
|
|
|
+
|
|
|
function handleCvtGoodsList() {
|
|
|
let rspData = getResponsePlainData();
|
|
|
if (!rspData) {
|
|
|
@@ -371,6 +435,85 @@ function handleCompositeGoodsList() {
|
|
|
magicJS.data.write(key, rspData.data);
|
|
|
}
|
|
|
|
|
|
+function handleFirstArtList() {
|
|
|
+ let rspData = getResponsePlainData();
|
|
|
+ if (!rspData) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (rspData.code != 200) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 结果示例
|
|
|
+ /*
|
|
|
+ let result = {
|
|
|
+ "code": 200,
|
|
|
+ "data": {
|
|
|
+ "total": 1,
|
|
|
+ "next": 0,
|
|
|
+ "list": [
|
|
|
+ {
|
|
|
+ "category": 1,
|
|
|
+ "coverImage": "",
|
|
|
+ "refreshTime": 1725881400,
|
|
|
+ "count": 10000,
|
|
|
+ "type": 1,
|
|
|
+ "title": "星链计划",
|
|
|
+ "avatar": "/uploads/20240830/c18be0bb7951859b97a7a2afba9d33a2.jpg",
|
|
|
+ "image": "/uploads/20240909/0c5d20baa4c00a3390b131b84bf8d592.jpg",
|
|
|
+ "tagList": [
|
|
|
+
|
|
|
+ ],
|
|
|
+ "price": 138,
|
|
|
+ "attachFileType": 1,
|
|
|
+ "artId": "3oe8bev8",
|
|
|
+ "nickname": "无边星链",
|
|
|
+ "status": "1"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "msg": "成功",
|
|
|
+ "fail": false
|
|
|
+ }
|
|
|
+ */
|
|
|
+ let artDataDict = magicJS.data.read(WuBianConstKey.FirstArtListData, {});
|
|
|
+ let artList = rspData.data.list;
|
|
|
+ for (let item of artList) {
|
|
|
+ const artId = item.artId;
|
|
|
+ artDataDict[artId] = item;
|
|
|
+ }
|
|
|
+ magicJS.data.write(WuBianConstKey.FirstArtListData, artDataDict);
|
|
|
+}
|
|
|
+
|
|
|
+function getFirstArtData(artId) {
|
|
|
+ let artDataDict = magicJS.data.read(WuBianConstKey.FirstArtListData, {});
|
|
|
+ return artDataDict[artId];
|
|
|
+}
|
|
|
+
|
|
|
+function getFirstArtName(artId) {
|
|
|
+ let data = getFirstArtData(artId);
|
|
|
+ if (data) {
|
|
|
+ return data.title;
|
|
|
+ }
|
|
|
+ return `${artId}`;
|
|
|
+}
|
|
|
+
|
|
|
+function handleCreateFirstOrder() {
|
|
|
+ let rspData = getResponsePlainData();
|
|
|
+ if (!rspData) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (isFirstOrderCaptureEnabled()) {
|
|
|
+ // `https://api.wubian.pro/vmf/app/order/createFirstOrder?token=80n19034n1`
|
|
|
+ let reqData = JSON.parse(magicJS.getRequestBody());
|
|
|
+ let queryParams = magicJS.parseQueryStr($request.url);
|
|
|
+ reqData.token = queryParams.token;
|
|
|
+ magicJS.data.write(WuBianConstKey.CreateFirstOrderData, reqData);
|
|
|
+ magicJS.data.write(WuBianConstKey.FirstGoodsId, reqData.artHashId);
|
|
|
+ magicJS.notification.appendNotifyInfo(`🎉产品[${getFirstArtName(reqData.artHashId)}]数据采集成功!`);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
Main().catch((e) => magicJS.logger.log(`-\n ${e}`)).finally(() => magicJS.done());
|
|
|
|
|
|
|