Update smzdm_task.js

This commit is contained in:
Hex
2023-03-02 18:34:48 +08:00
parent 3ebc803ef5
commit 8d4cf5ec48

View File

@@ -25,12 +25,12 @@ if (process.env.SMZDM_COOKIE) {
}
}
const SIGN_KEY = "apr1$AwP!wRRT$gJ/q.X24poeBInlUJC";
const DEFAULT_USER_AGENT = "smzdm_android_V10.2.0 rv:860 (Redmi Note 3;Android10;zh)smzdmapp";
const SIGN_KEY = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC';
const DEFAULT_USER_AGENT = 'smzdm_android_V10.2.0 rv:860 (Redmi Note 3;Android10;zh)smzdmapp';
function randomStr(len = 18) {
let char = "0123456789";
let str = "";
const char = '0123456789';
let str = '';
for (let i = 0; i < len; i++) {
str += char.charAt(Math.floor(Math.random() * char.length));
}
@@ -84,63 +84,238 @@ function signFormData(data) {
};
}
// 获取任务列表
async function getTaskList(cookie) {
try {
const response = await $.http.post({
url: 'https://user-api.smzdm.com/task/list_new',
headers: getHeaders(cookie),
form: signFormData({
get_total: '1',
limit: '100',
offset: '0',
point_type: '0',
token: getToken(cookie)
})
});
// 公共请求函数
async function requestApi(url, inputOptions = {}) {
const options = { ...inputOptions };
if (!options.method) {
options.method = 'get';
}
if (!options.data) {
options.data = {};
}
if (options.sign !== false) {
options.data = signFormData(options.data);
}
return $.http[options.method]({
url,
headers: options.headers,
form: options.method === 'post' ? options.data : {}
}).then((response) => {
const data = parseJSON(response.body);
if (data.error_code == '0') {
return data.data.rows[0].cell_data.activity_task.accumulate_list.task_list
return {
isSuccess: data.error_code == '0',
response: response.body,
data
};
}).catch((error) => {
return {
isSuccess: false,
response: error
};
})
}
// 获取任务列表
async function getTaskList(cookie) {
const { isSuccess, data } = await requestApi('https://user-api.smzdm.com/task/list_new', {
method: 'post',
headers: getHeaders(cookie),
data: {
get_total: '1',
limit: '100',
offset: '0',
point_type: '0',
token: getToken(cookie)
}
});
if (isSuccess) {
return data.data.rows[0].cell_data.activity_task.accumulate_list.task_list
}
else {
return [];
}
}
// 领取奖励
async function receiveReward(taskId, cookie) {
const { isSuccess, data, response } = await requestApi('https://user-api.smzdm.com/task/activity_task_receive', {
method: 'post',
headers: getHeaders(cookie),
data: {
task_id: taskId,
token: getToken(cookie)
}
});
if (isSuccess) {
const msg = data.data.reward_msg.replace(/<[^<]+?>/g, '');
$.log(msg);
return {
isSuccess,
msg
};
}
else {
$.log(`领取任务奖励失败!${response}`);
return {
isSuccess,
msg: '领取任务奖励失败!'
};
}
}
// 获取 Web 文章列表
async function getArticleList(cookie) {
const { isSuccess, data, response } = await requestApi('https://post.smzdm.com/json_more/?tab_id=tuijian&filterUrl=tuijian', {
sign: false,
headers: {
Accept: '*/*',
'Accept-Encoding': 'gzip',
'Accept-Language': 'zh-cn',
Connection: 'keep-alive',
Referer: 'https://post.smzdm.com/',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/smzdm 10.4.25 rv:93.4 (iPhone13,4; iOS 14.5; zh_CN)/iphone_smzdmapp/10.4.25/wkwebview/jsbv_1.0.0',
Cookie: cookie
}
});
if (isSuccess) {
// 目前只取前两个做任务
return data.data.slice(0, 2);
}
else {
$.log(`获取文章列表失败: ${response}`);
return [];
}
}
// 分享的每日奖励
async function shareDailyReward(channelId, cookie) {
const { isSuccess, data, response } = await requestApi('https://user-api.smzdm.com/share/daily_reward', {
method: 'post',
headers: getHeaders(cookie),
data: {
channel_id: channelId,
token: getToken(cookie)
}
});
if (isSuccess) {
$.log(data.data.reward_desc);
return {
isSuccess,
msg: data.data.reward_desc
};
}
else {
if (data) {
$.log(data.error_msg);
return {
isSuccess,
msg: data.error_msg
};
}
else {
return [];
$.log(`分享每日奖励请求失败!${response}`);
return {
isSuccess,
msg: '分享每日奖励请求失败!'
};
}
}
catch (e) {
return [];
}
// 分享完成后回调接口
async function shareCallback(articleId, channelId, cookie) {
const { isSuccess, response } = await requestApi('https://user-api.smzdm.com/share/callback', {
method: 'post',
headers: getHeaders(cookie),
data: {
article_id: articleId,
channel_id: channelId,
touchstone_event: '{}',
token: getToken(cookie)
}
});
if (isSuccess) {
$.log('分享回调完成。');
return {
isSuccess,
msg: ''
};
}
else {
$.log(`分享回调失败!${response}`);
return {
isSuccess,
msg: '分享回调失败!'
};
}
}
// 分享完成,可以领取奖励了
async function shareArticleDone(articleId, channelId, cookie) {
const { isSuccess, response } = await requestApi('https://user-api.smzdm.com/share/article_reward', {
method: 'post',
headers: getHeaders(cookie),
data: {
article_id: articleId,
channel_id: channelId,
token: getToken(cookie)
}
});
if (isSuccess) {
$.log('完成分享成功。');
return {
isSuccess,
msg: '完成分享成功。'
};
}
else {
$.log(`完成分享失败!${response}`);
return {
isSuccess: false,
msg: '完成分享失败!'
};
}
}
// 执行浏览任务
async function doViewTask(task, cookie) {
try {
$.log(`开始任务: ${task.task_name}`);
$.log(`开始任务: ${task.task_name}`);
$.log('延迟 11 秒模拟阅读文章');
await $.wait(11000);
$.log('延迟 11 秒模拟阅读文章');
await $.wait(11000);
let response = await $.http.post({
url: 'https://user-api.smzdm.com/task/event_view_article',
headers: getHeaders(cookie),
form: signFormData({
article_id: task.article_id,
channel_id: task.channel_id,
token: getToken(cookie)
})
});
let data = parseJSON(response.body);
if (data.error_code != '0') {
$.log('完成阅读失败!');
return {
isSuccess: false
};
const { isSuccess, response } = await requestApi('https://user-api.smzdm.com/task/event_view_article', {
method: 'post',
headers: getHeaders(cookie),
data: {
article_id: task.article_id,
channel_id: task.channel_id,
token: getToken(cookie)
}
});
if (isSuccess) {
$.log('延迟 3 秒领取奖励');
await $.wait(3000)
@@ -148,194 +323,11 @@ async function doViewTask(task, cookie) {
return rewardResult;
}
catch (e) {
$.log('任务异常!');
return {
isSuccess: false
};
}
}
async function receiveReward(taskId, cookie) {
try {
const response = await $.http.post({
url: 'https://user-api.smzdm.com/task/activity_task_receive',
headers: getHeaders(cookie),
form: signFormData({
task_id: taskId,
token: getToken(cookie)
})
});
const data = parseJSON(response.body);
if (data.error_code == '0') {
const msg = data.data.reward_msg.replace(/<[^<]+?>/g, '');
$.log(msg);
return {
isSuccess: true,
msg
};
}
else {
$.log(`领取任务奖励失败!${response.body}`)
return {
isSuccess: false,
msg: '领取任务奖励失败!'
};
}
}
catch (e) {
$.log('领取任务奖励请求失败!');
return {
isSuccess: false,
msg: '领取任务奖励请求失败!'
};
}
}
async function getArticleList(cookie) {
const response = await $.http.get({
url: 'https://post.smzdm.com/json_more/?tab_id=tuijian&filterUrl=tuijian',
headers: {
Accept: "*/*",
"Accept-Encoding": "gzip",
"Accept-Language": "zh-cn",
Connection: "keep-alive",
Referer: "https://post.smzdm.com/",
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148/smzdm 10.4.25 rv:93.4 (iPhone13,4; iOS 14.5; zh_CN)/iphone_smzdmapp/10.4.25/wkwebview/jsbv_1.0.0",
Cookie: cookie
}
});
const data = parseJSON(response.body);
if (data.error_code == '0') {
// 目前只取前两个做任务
return data.data.slice(0, 2);
}
else {
$.log(`获取文章列表失败: ${data}`);
return [];
}
}
$.log(`任务异常!${response}`);
// 分享的每日奖励
async function shareDailyReward(channelId, cookie) {
try {
const response = await $.http.post({
url: 'https://user-api.smzdm.com/share/daily_reward',
headers: getHeaders(cookie),
form: signFormData({
channel_id: channelId,
token: getToken(cookie)
})
});
const data = parseJSON(response.body);
if (data.error_code == '0') {
$.log(data.data.reward_desc);
return {
isSuccess: true,
msg: data.data.reward_desc
};
}
else {
$.log(data.error_msg);
return {
isSuccess: false,
msg: data.error_msg
};
}
}
catch (e) {
$.log('分享每日奖励请求失败!');
return {
isSuccess: false,
msg: '分享每日奖励请求失败!'
};
}
}
// 分享完成后回调接口
async function shareCallback(articleId, channelId, cookie) {
try {
const response = await $.http.post({
url: 'https://user-api.smzdm.com/share/callback',
headers: getHeaders(cookie),
form: signFormData({
article_id: articleId,
channel_id: channelId,
touchstone_event: '{}',
token: getToken(cookie)
})
});
const data = parseJSON(response.body);
if (data.error_code == '0') {
$.log('分享回调完成。');
return {
isSuccess: true,
msg: ''
};
}
else {
$.log(`分享回调失败!${response.body}`)
return {
isSuccess: false,
msg: '分享回调失败!'
};
}
}
catch (e) {
$.log('分享回调请求失败!');
return {
isSuccess: false,
msg: '分享回调请求失败!'
};
}
}
// 分享完成,可以领取奖励了
async function shareArticleDone(articleId, channelId, cookie) {
try {
const response = await $.http.post({
url: 'https://user-api.smzdm.com/share/article_reward',
headers: getHeaders(cookie),
form: signFormData({
article_id: articleId,
channel_id: channelId,
token: getToken(cookie)
})
});
const data = parseJSON(response.body);
if (data.error_code == '0') {
$.log('完成分享成功。');
return {
isSuccess: true,
msg: ''
};
}
else {
$.log('完成分享失败!');
return {
isSuccess: false,
msg: '完成分享失败!'
};
}
}
catch (e) {
$.log('完成分享请求失败!');
return {
isSuccess: false,
msg: '完成分享请求失败!'
isSuccess
};
}
}
@@ -344,69 +336,65 @@ async function shareArticleDone(articleId, channelId, cookie) {
async function doShareTaskMulti(task, cookie) {
$.log(`开始任务: ${task.task_name}`);
try {
const articles = await getArticleList(cookie);
const articles = await getArticleList(cookie);
for (let i = 0; i < articles.length; i++) {
$.log(`开始分享第 ${i + 1} 篇文章...`);
for (let i = 0; i < articles.length; i++) {
$.log(`开始分享第 ${i + 1} 篇文章...`);
const article = articles[i];
const article = articles[i];
$.log('等候 5 秒');
$.wait(3000);
$.log('等候 5 秒');
$.wait(3000);
await shareDailyReward(article.channel_id, cookie);
await shareDailyReward(article.channel_id, cookie);
await shareCallback(article.article_hash_id, article.channel_id, cookie);
await shareCallback(article.article_hash_id, article.channel_id, cookie);
const { isSuccess } = await shareArticleDone(article.article_hash_id, article.channel_id, cookie);
await shareArticleDone(article.article_hash_id, article.channel_id, cookie);
$.log('等候 5 秒');
$.wait(5000);
if (!isSuccess) {
return {
isSuccess
};
}
$.log('延迟 3 秒领取奖励');
await $.wait(3000)
const rewardResult = await receiveReward(task.task_id, cookie);
return rewardResult;
}
catch (e) {
return {
isSuccess: false
};
$.log('等候 5 秒');
$.wait(5000);
}
$.log('延迟 3 秒领取奖励');
await $.wait(3000)
const rewardResult = await receiveReward(task.task_id, cookie);
return rewardResult;
}
// 执行一篇文章的分享任务
async function doShareTaskSingle(task, cookie) {
$.log(`开始任务: ${task.task_name}`);
try {
$.log(`开始分享文章...`);
$.log(`开始分享文章...`);
$.log('等候 5 秒');
$.wait(5000);
$.log('等候 5 秒');
$.wait(5000);
await shareDailyReward(task.channel_id, cookie);
await shareDailyReward(task.channel_id, cookie);
await shareCallback(task.task_redirect_url.link_val, task.channel_id, cookie);
await shareCallback(task.task_redirect_url.link_val, task.channel_id, cookie);
const { isSuccess } = await shareArticleDone(task.task_redirect_url.link_val, task.channel_id, cookie);
await shareArticleDone(task.task_redirect_url.link_val, task.channel_id, cookie);
$.log('延迟 5 秒领取奖励');
await $.wait(5000)
const rewardResult = await receiveReward(task.task_id, cookie);
return rewardResult;
}
catch (e) {
if (!isSuccess) {
return {
isSuccess: false
isSuccess
};
}
$.log('延迟 5 秒领取奖励');
await $.wait(5000)
const rewardResult = await receiveReward(task.task_id, cookie);
return rewardResult;
}
async function run(cookie) {