新增自定义 User Agent

This commit is contained in:
Hex
2023-07-30 15:19:40 +08:00
parent 415cb0d81f
commit 862a521c28
2 changed files with 25 additions and 4 deletions

View File

@@ -52,6 +52,8 @@ 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_USER_AGENT_APP`: 这个值是可选值,是指 APP 的 User-Agent从 APP 的 API 请求头中抓包得到,建议抓取 Android 的 User-Agent不填使用脚本默认值。
* `SMZDM_USER_AGENT_WEB`: 这个值是可选值,是指 APP 中访问网页的 User-Agent一般在 APP 内的转盘网页中抓包得到,建议抓取 Android 的 User-Agent不填使用脚本默认值。
* `SMZDM_COMMENT`: 如果要完成评论文章的任务请设置这个环境变量,环境变量的内容是评论的文案,文案要大于 10 个汉字,建议用比较个性化的文案,脚本发布评论后会删除这条评论,但是为防止删除失败的情况,请尽量用好一点的文案,防止被判定为恶意灌水。
* `SMZDM_CROWD_SILVER_5`: 每日抽奖任务默认只进行免费抽奖,如要进行 5 碎银子的抽奖,请设置这个环境变量的值为 `yes`
* `SMZDM_CROWD_KEYWORD`: 抽奖关键词,执行非免费抽奖时,会优先选择包含此关键词的抽奖,如果未找到包含此关键词的抽奖,则会随机选择一个。

27
bot.js
View File

@@ -6,13 +6,16 @@ const got = require('got');
const APP_VERSION = '10.4.26';
const APP_VERSION_REV = '866';
const DEFAULT_USER_AGENT = `smzdm_android_V${APP_VERSION} rv:${APP_VERSION_REV} (Redmi Note 3;Android10.0;zh)smzdmapp`;
const DEFAULT_WEB_USER_AGENT = `Mozilla/5.0 (Linux; Android 10.0; Redmi Build/Redmi Note 3; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36 smzdm_android_V${APP_VERSION} rv:${APP_VERSION_REV} (Redmi;Android10.0;zh) jsbv_1.0.0 webv_2.0 smzdmapp`;
const DEFAULT_USER_AGENT_APP = `smzdm_android_V${APP_VERSION} rv:${APP_VERSION_REV} (Redmi Note 3;Android10.0;zh)smzdmapp`;
const DEFAULT_USER_AGENT_WEB = `Mozilla/5.0 (Linux; Android 10.0; Redmi Build/Redmi Note 3; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36 smzdm_android_V${APP_VERSION} rv:${APP_VERSION_REV} (Redmi;Android10.0;zh) jsbv_1.0.0 webv_2.0 smzdmapp`;
const SIGN_KEY = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC';
// ------------------------------------
const reVersion = /(smzdm_android_V|smzdm\s|iphone_smzdmapp\/)([\d.]+)/i;
const reRev = /rv:([\d.]+)/i;
const randomStr = (len = 18) => {
const char = '0123456789';
let str = '';
@@ -200,22 +203,38 @@ class SmzdmBot {
}
getHeaders() {
let userAgent = DEFAULT_USER_AGENT_APP;
if (process.env.SMZDM_USER_AGENT_APP) {
userAgent = process.env.SMZDM_USER_AGENT_APP
.replace(reVersion, `$1${APP_VERSION}`)
.replace(reRev, `rv:${APP_VERSION_REV}`);
}
return {
Accept: '*/*',
'Accept-Language': 'zh-Hans-CN;q=1',
'Accept-Encoding': 'gzip',
'request_key': randomStr(18),
'User-Agent': DEFAULT_USER_AGENT,
'User-Agent': userAgent,
Cookie: this.androidCookie
};
}
getHeadersForWeb() {
let userAgent = DEFAULT_USER_AGENT_WEB;
if (process.env.SMZDM_USER_AGENT_WEB) {
userAgent = process.env.SMZDM_USER_AGENT_WEB
.replace(reVersion, `$1${APP_VERSION}`)
.replace(reRev, `rv:${APP_VERSION_REV}`);
}
return {
Accept: '*/*',
'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
'Accept-Encoding': 'gzip',
'User-Agent': DEFAULT_WEB_USER_AGENT,
'User-Agent': userAgent,
Cookie: this.androidCookie
};
}