新增5碎银子抽奖

This commit is contained in:
Hex
2023-04-13 23:03:29 +08:00
parent e4eececf02
commit 7868a0110c
2 changed files with 51 additions and 26 deletions

View File

@@ -12,7 +12,9 @@
* 点赞文章
* 评论文章
* 分享
* 免费抽奖
* 抽奖
* 免费抽奖
* 5 碎银子抽奖
* 关注用户
* 关注栏目
* 关注品牌
@@ -49,6 +51,7 @@ ql repo https://github.com/hex-ci/smzdm_script.git "" "env.js|bot.js|sendNotify.
* SMZDM_COOKIE: 抓包抓到的 Cookie 内容,需要所有 Cookie 内容,多用户可以用 `&` 分隔,或者使用多个同名环境变量。
* SMZDM_SK: 这个值是可选值,是从安卓 App 的 `https://user-api.smzdm.com/checkin` 请求参数中抓包抓到的,如果抓到这个值可以填写(强烈建议填写),如果没抓到可以忽略,多用户可以用 `&` 分隔,或者使用多个同名环境变量,顺序要保持与 `SMZDM_COOKIE` 多用户顺序一致。
* SMZDM_COMMENT: 如果要完成评论文章的任务请设置这个环境变量,环境变量的内容是评论的文案,文案要大于 10 个汉字,建议用比较个性化的文案,脚本发布评论后会删除这条评论,但是为防止删除失败的情况,请尽量用好一点的文案,防止被判定为恶意灌水。
* SMZDM_CROWD_SILVER_5: 每日抽奖任务默认只进行免费抽奖,如要进行 5 碎银子的抽奖,请设置这个环境变量的值为 `yes`
## 交流群

View File

@@ -554,13 +554,27 @@ class SmzdmTaskBot extends SmzdmBot {
async doCrowdTask(task) {
$.log(`开始任务: ${task.task_name}`);
const { isSuccess, data } = await this.getFreeCrowd();
let { isSuccess, data } = await this.getCrowd('免费', 0);
if (!isSuccess) {
return {
isSuccess,
code: 99
};
if (process.env.SMZDM_CROWD_SILVER_5 == 'yes') {
({ isSuccess, data } = await this.getCrowd('5碎银子', 5));
if (!isSuccess) {
return {
isSuccess,
code: 99
};
}
}
else {
$.log('🟡请设置 SMZDM_CROWD_SILVER_5 环境变量值为 yes 后才能进行5碎银子抽奖');
return {
isSuccess,
code: 99
};
}
}
$.log('等候 5 秒');
@@ -841,38 +855,46 @@ class SmzdmTaskBot extends SmzdmBot {
};
}
// 获取免费抽奖信息
async getFreeCrowd() {
// 获取抽奖信息
async getCrowd(name, price) {
const { isSuccess, data, response } = await requestApi('https://zhiyou.smzdm.com/user/crowd/', {
sign: false,
parseJSON: false,
headers: this.getHeadersForWeb()
});
const re = new RegExp(`<button\\s+([^>]+?)>\\s+?<div\\s+[^>]+?>\\s*${name}(?:抽奖)?\\s*<\\/div>\\s+<span\\s+class="reduceNumber">-${price}<\\/span>[\\s\\S]+?<\\/button>`, 'ig');
if (isSuccess) {
const match = data.match(/<button\s+([^>]+?)>\s+?<div\s+[^>]+?>\s*免费抽奖\s*<\/div>\s+<span\s+class="reduceNumber">-0<\/span>[\s\S]+?<\/button>/i);
const crowds = [];
let match;
if (match) {
const matchCrowd = match[1].match(/data-crowd_id="(\d+)"/i);
while ((match = re.exec(data)) !== null) {
crowds.push(match[1]);
}
if (matchCrowd) {
$.log(`免费抽奖ID: ${matchCrowd[1]}`);
if (crowds.length < 1) {
$.log(`未找到${name}抽奖`);
return {
isSuccess: true,
data: matchCrowd[1]
};
}
else {
$.log(`未找到免费抽奖ID`);
return {
isSuccess: false
};
}
return {
isSuccess: false
};
}
const crowd = this.getOneByRandom(crowds);
const matchCrowd = crowd.match(/data-crowd_id="(\d+)"/i);
if (matchCrowd) {
$.log(`${name}抽奖ID: ${matchCrowd[1]}`);
return {
isSuccess: true,
data: matchCrowd[1]
};
}
else {
$.log(`未找到免费抽奖`);
$.log(`未找到${name}抽奖ID`);
return {
isSuccess: false
@@ -880,7 +902,7 @@ class SmzdmTaskBot extends SmzdmBot {
}
}
else {
$.log(`获取免费抽奖失败: ${response}`);
$.log(`获取${name}抽奖失败: ${response}`);
return {
isSuccess: false