Files
qinglong/脚本库/web版/抓包/mtmc/2023-02-01_mtmc_7c844a5f.js
2026-05-24 03:53:42 +00:00

170 lines
6.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// # Source: https://github.com/Wenmoux/checkbox/blob/master/scripts/mtmc.js
// # Raw: https://raw.githubusercontent.com/Wenmoux/checkbox/master/scripts/mtmc.js
// # Repo: Wenmoux/checkbox
// # Path: scripts/mtmc.js
// # UploadedAt: 2023-02-01T08:53:28Z
// # SHA256: 7c844a5f0b597749d681c654ff47966a18bb9e725624d5125e3559184356fbfa
// # Category: web版/抓包
// # Evidence: web/H5关键词 + cookie/token/header
//
const axios = require("axios");
const {
MTMC_userId,
MTMC_fingerprint,
MTMC_token,
MTMC_uuid
} = config.MeiTuan
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
function get(task, method = "get", data = null) {
return new Promise(async (resolve) => {
try {
let url = `https://mall.meituan.com/api/c/mallcoin/${task}&app_tag=union&bizId=2&ci=2&page_type=h5&poi=10000380&poiId=66&tenantId=1&t=${MTMC_token}&uci=-1&userid=${MTMC_userId}&utm_medium=android&utm_term=5.38.0&uuid=${MTMC_uuid}&xuuid=`
const headers = {
t: MTMC_token,
"user-agent": "Mozilla/5.0 (Linux; Android 11; MEIZU 18 Pro Build/RKQ1.201105.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/104.0.5112.69 Mobile Safari/537.36 TitansX/20.12.6 KNB/1.2.0 android/11 com.meituan.retail.v.android/armv7 App/11g20/5.38.0 com.meituan.retail.v.android/5.38.0",
Host: "mall.meituan.com",
"X-Requested-With": "com.meituan.retail.v.android",
"Content-Type": "application/json; charset=utf-8"
}
//console.log(headers)
if (method == "get") res = await axios.get(url, {
headers
});
if (data) {
xxstr = {
"platform": 4,
"app": 95,
"utm_term": "5.38.0",
"uuid": MTMC_uuid,
"fingerprint": MTMC_fingerprint,
"utm_medium": 95
}
data.riskMap ==
Object.assign(data.riskMap, xxstr)
}
// console.log(data)
if (method == "post") res = await axios.post(url, data, {
headers
});
if (res.data.code == 0) console.log(" 操作成功")
// console.log(headers)
// console.log(res.data)
resolve(res.data)
} catch (err) {
console.log(err);
resolve({
code: 500,
error: {
msg: "签到接口请求出错"
}
})
}
resolve();
});
}
async function getaskList() {
console.log("查询任务列表")
let res = await get("checkIn/queryTaskListInfoV3?&channel=1", "post",    {
"riskMap": {
"partner": 109,
"campaignId": 1002,
"campaignName": "买菜币"
}
})
if (res.code == 0 && res.data) return res.data.checkInTaskInfos.filter(x => x.id == 52 && x.taskFinishCount != x.taskChance || x.status == 100)
return []
}
async function sign() {
signmsg = ""
console.log("去签到:")
let signRes = await get("checkIn/userCheckInNew?", "post",    {
"userId": MTMC_userId,
"riskMap": {}
})
if (signRes.code == 0) {
if (signRes.data.result) signmsg = `签到成功!获得 ${signRes.data.rewardValue} 买菜币`
else signmsg = `签到失败!可能签到过啦`
console.log(" " + signmsg)
} else signmsg = signRes.error.msg
//console.log(signRes)/
//
for (rewardDate of [3, 7]) {
await get("checkIn/getWeekContinuousRewardNew?", "post", {
userId: MTMC_userId,
rewardDate: rewardDate,
"riskMap": {}
})
}
return signmsg
}
//浏览任务
async function view() {
let taskList = await getaskList()
if (taskList.length != 0) {
let task = taskList[0]
//领取
console.log("浏览任务开始:\n 去领取浏览任务:")
console.log(" " + task.buttonDesc)
if (task) {
if (task.buttonDesc == "领任务" || task.status == 10) {
let lqRes = await get("checkIn/takeTask?activityId=33&taskId=52&channel=1")
if (lqRes && lqRes.code == 0) {
console.log(" 领取成功\n等待17s")
await sleep(17 * 1000)
await get("checkIn/taskEventComplete?eventType=6&channel=1")
} else console.log(" " + lqRes.error.msg)
taskList = await getaskList()
task = taskList[0]
}
if (task.buttonDesc == "领奖励") {
await sleep(3 * 1000)
console.log(" 去领取奖励:")
let lqReward = await get(`checkIn/takeTaskReward?activityId=33&taskId=52&rewardId=774&taskType=6&userTaskId=${task.userTaskId}&channel=1`)
if (lqReward && lqReward.code == 0) {
console.log(` 领取成功!获得 ${lqReward.data.rewardType} ${lqReward.data.rewardValue}`)
}
}
} else console.log(" 暂无可领取任务")
}
}
async function getmyb() {
let res = await get("checkIn/getCheckInMainView?")
if (res && res.code == 0) return `\n 我的菜币:${res.data.userInfo.balance}\n 签到天数:${res.data.checkInCount}\n smjb${res.data.noticeDetail}\n`
else return ""
}
async function share() {
console.log("去分享:")
let res = await get("checkIn/getShareReward?shareBusinessType=2&")
if (res.code == 0) {
if (res.data.result) console.log(` 分享成功!获得 ${res.data.rewardValue}菜币`)
else console.log(" 分享过啦")
}
}
async function meituanmc() {
let signMsg = await sign()
await view()
await share()
myInfo = await getmyb()
content = ` 【美团买菜】 签到:${signMsg} ${myInfo}`
console.log(myInfo)
return content
}
module.exports = meituanmc