Continue seeded Qinglong script collection

This commit is contained in:
Hermes Agent
2026-05-24 05:33:05 +00:00
parent ca1a4275e4
commit b082da3fe1
392 changed files with 131619 additions and 7 deletions

View File

@@ -0,0 +1,979 @@
// # Source: https://github.com/xfmeng970526/ql/blob/main/dyjsbxg.js
// # Raw: https://raw.githubusercontent.com/xfmeng970526/ql/main/dyjsbxg.js
// # Repo: xfmeng970526/ql
// # Path: dyjsbxg.js
// # UploadedAt: 2023-09-20T12:13:28+08:00
// # SHA256: 7be80b498ea2c88b44462164bebb3eadc4a69c9191d943228f5fdae00b6c5c2f
// # Category: web版/抓包
// # Evidence: web/H5关键词 + cookie/token/header
//
/**
* 抖音极速版按理来说只需要传sessionid就行
* cron: * 30 0-23 * * *
* new Env('104-抖音极速版');
* 项目名称:抖音极速版
* 变量名 dyjsbck
* 格式export dyjsbck="sessionid=xxxx&device_id=xxxxx&iid=xxxx"
* sessionid必填device_id和iid实在抓不到不填应该问题不大
* 多账户用 @ 隔开
* 更新日志:
* 修复开宝箱金币溜走问题
* by 偷CK的六舅哥
*/
const $ = new Env('抖音极速版-测试');
let tokens = $.getdata('dyjsbck') || process.env['dyjsbck'] || '';
let is_bf = $.getdata('dyjsb_bf') || process.env['dyjsb_bf'] ||
'1'; //是否并发 0否 1是
!(async () => {
$.log("当前版本 v1.0.0")
$.log("更新日志1.修复开宝箱金币溜走问题\n------------------");
$.log("有问题请联系https://t.me/jiangyutck \n------------------");
is_bf = parseInt(is_bf);
if (tokens.indexOf("@") != -1) {
tokens = tokens.split('@') || [];
} else {
tokens = tokens.split('\n') || [];
}
if (!tokens[0]) {
$.log(`请设置环境变量添加抖音极速版账号`)
return;
}
$.log(`共获取到${tokens.length}个账号`);
let userList = [];
tokens.forEach(token => {
let user = jxUser(token);
if (user.sessionid) {
userList.push(new UserInfo(user.sessionid, user
.device_id, user.iid));
} else {
console.log("账号格式错误");
}
})
for (let i = 0; i < userList.length; i++) {
let userInfo = userList[i];
if (is_bf) {
userInfo.main(i);
} else {
await userInfo.main(i);
}
}
})()
.catch((e) => $.logErr(e))
.finally(() => {
if (is_bf) {
$.done();
}
});
function jxUser(val) {
let res = {};
let arrs = val.split("&");
arrs.forEach(arr => {
let kvs = arr.split("=");
res[kvs[0]] = kvs[1];
})
return res;
}
function UserInfo(seesion = '', device_id = '', iid = '') {
let isbreak = false;
let cookie = 'sessionid=' + seesion;
let $user_agent = 'com.ss.android.ugc.aweme.lite/250101 (Linux; U; Android 13; zh_CN; V2185A; Build/TP1A.220624.014;tt-ok/3.12.13.1)';
let version_name = '25.01.01';
let aid = 2329;
let app_name = 'douyin_lite';
let index = 0;
let isOpenBox = false;
let treasurebox = false;
let task_list = [];
function randomString(e, t = "abcdefhijkmnprstwxyz123456789") {
e = e || 32;
let a = t.length,
n = "";
for (let i = 0; i < e; i++)
n += t.charAt(Math.floor(Math.random() * a));
return n
}
this.main = async function (i) {
let startTime = new Date().getTime();
index = i + 1;
if (!device_id) {
device_id = randomString(16, "0123456789")
}
if (!iid) {
iid = randomString(16)
}
await get_info();
if (!isbreak) {
await sign();
await task('excitation_ad_signin','签到广告视频');
if (task_list.filter(item => item.name === '走路赚金币').length > 0) {
await upload_step();
}
await task('read','观看同城视频');
await one_more_detail();
await excitation_ad();
if (task_list.filter(item => item.name === '逛街赚钱').length > 0) {
await shopping_gold();
}
await excitation_ad_treasure_box();
await ad_append('excitation_ad', '看广告追加');
await ad_append('walk_excitation_ad', '步行额外视频');
if (task_list.filter(item => item.name === '搜索赚金币').length > 0) {
await search_excitation();
}
if (task_list.filter(item => item.name === '填写好友邀请码').length > 0) {
//await task('post_invite_code', '填写邀请码', {invite_code: ""});
}
if (task_list.filter(item => item.name === '吃饭补贴').length > 0) {
await meal_check_in();
}
if (task_list.filter(item => item.name === '看小说赚金币').length > 0) {
await task('read_novel', '看小说赚金币');
}
await get_info(false);
}
const e = (new Date).getTime(), s = (e - startTime) / 1e3;
$.log(`账号[${index}] 运行完毕, 结束! 🕛 ${s}`);
}
function get_info(open = true) {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/page?mode=done&update_version_code=250100&os_api=33&device_platform=android&iid=${iid}&device_id=${device_id}&aid=${aid}`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'user-agent': $user_agent,
'Cookie': cookie
}
}
$.get(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.data.is_login) {
if (open) {
if (data.data.treasure_stats) {
task_list = data.data.task_list;
let treasure_stats = data.data.treasure_stats;
if (treasure_stats.next_time <= treasure_stats.cur_time) {
$.log(`==================开宝箱====================\n💣账号[${index}]准备开宝箱,这里可能会卡一会哦~`);
//可以开宝箱
let openCount = 0;
while (!isOpenBox) {
openCount++;
await open_box();
// if(openCount>100){
// isOpenBox=true;
// }
// await $.wait(1000);
}
} else {
$.log(`==================开宝箱====================\n🧧账号[${index}]下次开宝箱时间:${$.time('yyyy-MM-dd HH:mm:ss', treasure_stats.next_time * 1000)}\n==================开宝箱结束====================`);
}
}
} else {
$.log(`======================================\n🧧小主,账号[${index}]资产情况如下:\n金币余额:${data.data.income_data?.amount1} 现金余额:${data.data.income_data?.amount2 / 100}\n======================================`);
}
isbreak = false;
} else {
$.log(`账号[${index}]登录失败!`);
isbreak = true;
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function sign() {
return new Promise(resolve => {
let t = new Date().getTime(), ts = parseInt((t / 1000) + '');
let url = `https://api26-normal-lq.amemv.com/luckycat/aweme/v1/task/done/sign_in?iid=${iid}&device_id=${device_id}&ac=5g&channel=31575073k&aid=${aid}&app_name=${app_name}&version_code=250100&version_name=${version_name}&device_platform=android&os=android&ssmix=a&device_type=SHARK+KSR-A10&device_brand=blackshark&language=zh&os_api=33&os_version=12&manifest_version_code=250101&resolution=1080*2190&dpi=440&update_version_code=25109900&_rticket=${t}&package=com.ss.android.ugc.aweme.lite&mcc_mnc=46001&gold_container=1&cpu_support64=true&host_abi=armeabi-v7a&is_guest_mode=0&app_type=normal&minor_status=0&appTheme=dark&need_personal_recommend=1&is_android_pad=0&ts=${ts}&status_bar_height=29`;
const options = {
url: url,
headers: {
'Host': 'api26-normal-lq.amemv.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie
},
body: '{}'
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
$.log(`账号[${index}]签到: ${data.err_tips}`);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function excitation_ad_signin() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/excitation_ad_signin?mode=done&update_version_code=25109900&oaid=5992671818827601&os_api=29&device_platform=android&ac=wifi&channel=bf_1007913_2329_47_3&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie
},
body: '{}'
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
$.log(`账号[${index}]签到视频: ${data.err_tips}`);
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function open_box() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/treasure_task?_request_from=web&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie
},
body: '{}'
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
isOpenBox = true;
$.log(`账号[${index}]${data.data.success_desc}: ${data.data.amount}金币`);
$.log(`账号[${index}]下次开宝箱时间为:${$.time('yyyy-MM-dd HH:mm:ss', data.data.next_time * 1000)}\n================开宝箱结束====================`);
let excitation_ad_info = data.data.excitation_ad_info;
if (excitation_ad_info) {
excitation_ad_info.amount = data.data.amount;
excitation_ad_info.ad_alias_position = 'box';
$.log(`账号[${index}]开宝箱-看广告视频预计再赚${excitation_ad_info.score_amount}金币`);
await show_ad(excitation_ad_info);
$.log(`账号[${index}]等待45s广告`);
await $.wait(15000);
$.log(`账号[${index}]45s广告success`);
$.log(`==================开宝箱1200金币=================\n💣账号[${index}]准备看宝箱视频,这里可能会卡一会哦~`);
let openbox = 0;
while (!treasurebox) {
openbox++;
await excitation_ad_treasure_box()
if(openbox>250){
isOpenBox=true;
}
await $.wait(1000);
}
}
} else {
//$.log(`账号[${index}]开宝箱: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function ad_append(task_key = 'excitation_ad', name = '', one_more_round = 0) {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/excitation_ad/one_more?_request_from=web&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: '{"task_key":"' + task_key + '","rit":"28038","creator_id":"12315000","one_more_round":' + one_more_round + '}'
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]${name ? name : task_key}: 获得${data.data.amount}金币`);
} else {
$.log(`账号[${index}]${name ? name : task_key}: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function show_ad(ad_info) {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/${ad_info.task_key}?_request_from=web&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie
},
body: `{"task_key":"${ad_info.task_key}","amount":"${ad_info.score_amount}","ad_rit":"${ad_info.ad_id}","ad_inspire":"{"score_amount":"${ad_info.score_amount}","amount":"${ad_info.amount}","req_id":"${ad_info.req_id}"}","ad_alias_position":"${ad_info.ad_alias_position}","timeout":4000}`
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]${data.data.content}: ${data.data.amount}金币`);
} else {
$.log(`账号[${index}]看广告视频: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function upload_step() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/walk/step_submit?iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: `{"step":${parseInt((10000 + Math.random() * 10000) + "")},"submit_time":${parseInt((new Date().getTime() / 1000) + "")}}`
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]上传步数:今日步数${data.data.today_step}`);
await receive_step_reward();
} else {
$.log(`账号[${index}]上传步数: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function receive_step_reward() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/walk/receive_step_reward?iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: ``
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]领取步数奖励:${data.data.reward_amount}金币`);
} else {
$.log(`账号[${index}]领取步数奖励: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function excitation_ad() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/excitation_ad?mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: `{"from":"excitation_ad"}`
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]看广告: 获得${data.data.amount}金币`);
} else {
$.log(`账号[${index}]看广告: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function shopping_gold() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/shopping_gold?mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=2509900&device_platform=android&ssmix=a&device_type=16s%20Pro&device_brand=meizu&language=zh&os_api=29&os_version=10&openudid=24f98283275a56fc&manifest_version_code=250101&resolution=1080*2232&dpi=480&_rticket=1683899803704&mcc_mnc=46011&tool_grey_user=0&cpu_support64=true&host_abi=armeabi-v7`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: `body=11222`
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]逛街: ${data.data.reward_text}`);
} else {
$.log(`账号[${index}]逛街: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function excitation_ad_treasure_box() {
return new Promise(resolve => {
let t = new Date().getTime(),
ts = parseInt((t / 1000) + '');
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/excitation_ad_treasure_box?mode=done&iid=${iid}&device_id=${device_id}&ac=5g&channel=31575073k&aid=2329&app_name=douyin_lite&version_code=250100&version_name=25.1.0&device_platform=android&os=android&ssmix=a&device_type=RNA-AN00&device_brand=HONOR&language=zh&os_api=31&os_version=12&openudid=acb2c7481f3d2737&manifest_version_code=250101&resolution=1236*2562&dpi=520&update_version_code=25109900&_rticket=1683983540390&package=com.ss.android.ugc.aweme.lite&mcc_mnc=46001&gold_container=0&cpu_support64=true&host_abi=arm64-v8a&is_guest_mode=0&app_type=normal&minor_status=0&appTheme=light&need_personal_recommend=1&is_android_pad=0&ts=${ts}&cdid=bb4348ff-60c6-4b34-9628-c402fe361bb5&oaid=0c6cd837-6830-4145-8447-9f6cb10aa5fd&rom=EMUI&has_alipay=1&p_switch=1&launch_method=enter_launch&rom_version=MagicOS_7.0.0&luckydog_base=Zm_1GzCIIb6IlT10frcgpm8hjRXTDXRajr68axrvNYdWMeXGAwpi7e36pHTOLD3IdMDam-LbJRy6yf1ZRhL4S4RUI6YsZ5lXIT8ejEUNWGeNnWz8iAZ0A-ViioikSAYM8wU1QcxHFAppiurXM14a1kNHWVtI51PHIme6tzI-vnzGeYulkAdY33cMM8ARxvIj&luckydog_data=FKlxq4aSv2hw07vieQgQ2FHCovzbGKLHnIkn6OuUEZ2ohD29G2CyRKSveldgOt6869_W-eomGhKBksgB4wIKtBPXibAViAW41B71N359xVfVRPE4ypf4af341-U-DWoxkn0DzdtLD_-RZK0ut45UU7h5WlCVprjpYRPA581YgGaOlmdbKURUNCmyFjqaGuUv0waRO0ujC9ZcsSALldeZKo5u0zz6b2Ud1zTbZ9RC4xaEpLJVXC1StX6wkujPsoUxTnMD8htSd-_55U8fV6zVG0706oiXlp4JblplVPm1z5g&luckydog_token=UYSEyUkWlD-DG9bw9rO1wLQu2vhO4Stn9igoVS1fVrcT_OwtMMGPTdSzADtgS-iQdYKU_eXfb1JjaWxhV3BAZw&luckydog_sdk_version=8.1.0-rc.17-dy&luckydog_api_version=8.1.0-rc.17-dy&static_settings_version=49&dynamic_settings_version=49&polling_settings_version=0&luckycat_version_name=8.1.0-rc.17-dy&luckycat_version_code=810017&lucky_is_32=0&lucky_device_score=9.0435&lucky_device_type=RNA-AN00&status_bar_height=34&md=0`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: `body=11222`
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
treasurebox = true;
$.log(`账号[${index}]开宝箱视频: ${data.data.amount} 金币 \n================开宝箱1200结束==================`);
} else {
//$.log(`账号[${index}]开宝箱视频: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function one_more_detail() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/excitation_ad/one_more/detail?task_key=excitation_ad_treasure_box&rit=28038&creator_id=12317000&one_more_round=0&mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
}
$.get(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
if (data.data.has_one_more) {
//$.log(`账号[${index}]宝箱连续视频下次奖励: ${data.data.amount}金币`);
await ad_append('excitation_ad_treasure_box', '宝箱连续视频');
}
} else {
$.log(`账号[${index}]宝箱连续视频下次奖励: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function search_excitation() {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/search_excitation?mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: ``
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]领取搜索奖励: ${data.data.score_amount}金币`);
} else {
$.log(`账号[${index}]领取搜索奖励: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function task(taskKey, taskName, body = {}) {
return new Promise(resolve => {
let url = `https://aweme.snssdk.com/luckycat/aweme/v1/task/done/${taskKey}?mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'aweme.snssdk.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: JSON.stringify(body)
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.err_no == 0) {
$.log(`账号[${index}]${taskName}: ${data.data.score_amount}金币`);
} else {
$.log(`账号[${index}]${taskName}: ${data.err_tips}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
function meal_check_in(taskName = "吃饭补贴") {
return new Promise(resolve => {
let timeHours = parseInt($.time('HH'));
let meal_index = 0;
if (timeHours > 5 && timeHours < 9) {
meal_index = 0;
} else if (timeHours > 11 && timeHours < 14) {
meal_index = 1;
} else if (timeHours > 17 && timeHours < 19) {
meal_index = 2;
} else if (timeHours > 21 && timeHours < 23) {
meal_index = 3;
} else {
resolve();
return;
}
let body = {"meal_index": meal_index, "aid": "2329"}
let url = `https://gecko.zijieapi.com/ttgame/meal/check_in?mode=done&iid=${iid}&device_id=${device_id}&app_name=${app_name}&version_name=${version_name}&aid=${aid}&device_platform=android&dpi=411&update_version_code=25109900`;
const options = {
url: url,
headers: {
'Host': 'gecko.zijieapi.com',
'content-type': 'application/json; charset=utf-8',
'user-agent': $user_agent,
'Cookie': cookie,
},
body: JSON.stringify(body)
}
$.post(options, async (err, resp, data) => {
try {
if (data) {
data = JSON.parse(data);
if (data.code == 0) {
$.log(`账号[${index}]${taskName}: ${data.data.reward}金币`);
await ad_append('meal_excitation_ad', '吃饭补贴视频');
} else {
$.log(`账号[${index}]${taskName}: ${data.message}`);
}
}
} catch (e) {
$.logErr(e, resp);
} finally {
resolve(data);
}
});
})
}
}
function Env(t, e) {
"undefined" != typeof process && JSON.stringify(process.env).indexOf("GITHUB") > -1 && process.exit(0);
class s {
constructor(t) {
this.env = t
}
send(t, e = "GET") {
t = "string" == typeof t ? {url: t} : t;
let s = this.get;
return "POST" === e && (s = this.post), new Promise((e, i) => {
s.call(this, t, (t, s, r) => {
t ? i(t) : e(s)
})
})
}
get(t) {
return this.send.call(this.env, t)
}
post(t) {
return this.send.call(this.env, t, "POST")
}
}
return new class {
constructor(t, e) {
this.name = t, this.http = new s(this), this.data = null, this.dataFile = "box.dat", this.logs = [], this.isMute = !1, this.isNeedRewrite = !1, this.logSeparator = "\n", this.startTime = (new Date).getTime(), Object.assign(this, e), this.log("", `🔔${this.name}, 开始!`)
}
isNode() {
return "undefined" != typeof module && !!module.exports
}
isQuanX() {
return "undefined" != typeof $task
}
isSurge() {
return "undefined" != typeof $httpClient && "undefined" == typeof $loon
}
isLoon() {
return "undefined" != typeof $loon
}
toObj(t, e = null) {
try {
return JSON.parse(t)
} catch {
return e
}
}
toStr(t, e = null) {
try {
return JSON.stringify(t)
} catch {
return e
}
}
getjson(t, e) {
let s = e;
const i = this.getdata(t);
if (i) try {
s = JSON.parse(this.getdata(t))
} catch {
}
return s
}
setjson(t, e) {
try {
return this.setdata(JSON.stringify(t), e)
} catch {
return !1
}
}
getScript(t) {
return new Promise(e => {
this.get({url: t}, (t, s, i) => e(i))
})
}
runScript(t, e) {
return new Promise(s => {
let i = this.getdata("@chavy_boxjs_userCfgs.httpapi");
i = i ? i.replace(/\n/g, "").trim() : i;
let r = this.getdata("@chavy_boxjs_userCfgs.httpapi_timeout");
r = r ? 1 * r : 20, r = e && e.timeout ? e.timeout : r;
const [o, h] = i.split("@"), n = {
url: `http://${h}/v1/scripting/evaluate`,
body: {script_text: t, mock_type: "cron", timeout: r},
headers: {"X-Key": o, Accept: "*/*"}
};
this.post(n, (t, e, i) => s(i))
}).catch(t => this.logErr(t))
}
loaddata() {
if (!this.isNode()) return {};
{
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e);
if (!s && !i) return {};
{
const i = s ? t : e;
try {
return JSON.parse(this.fs.readFileSync(i))
} catch (t) {
return {}
}
}
}
}
writedata() {
if (this.isNode()) {
this.fs = this.fs ? this.fs : require("fs"), this.path = this.path ? this.path : require("path");
const t = this.path.resolve(this.dataFile), e = this.path.resolve(process.cwd(), this.dataFile),
s = this.fs.existsSync(t), i = !s && this.fs.existsSync(e), r = JSON.stringify(this.data);
s ? this.fs.writeFileSync(t, r) : i ? this.fs.writeFileSync(e, r) : this.fs.writeFileSync(t, r)
}
}
lodash_get(t, e, s) {
const i = e.replace(/\[(\d+)\]/g, ".$1").split(".");
let r = t;
for (const t of i) if (r = Object(r)[t], void 0 === r) return s;
return r
}
lodash_set(t, e, s) {
return Object(t) !== t ? t : (Array.isArray(e) || (e = e.toString().match(/[^.[\]]+/g) || []), e.slice(0, -1).reduce((t, s, i) => Object(t[s]) === t[s] ? t[s] : t[s] = Math.abs(e[i + 1]) >> 0 == +e[i + 1] ? [] : {}, t)[e[e.length - 1]] = s, t)
}
getdata(t) {
let e = this.getval(t);
if (/^@/.test(t)) {
const [, s, i] = /^@(.*?)\.(.*?)$/.exec(t), r = s ? this.getval(s) : "";
if (r) try {
const t = JSON.parse(r);
e = t ? this.lodash_get(t, i, "") : e
} catch (t) {
e = ""
}
}
return e
}
setdata(t, e) {
let s = !1;
if (/^@/.test(e)) {
const [, i, r] = /^@(.*?)\.(.*?)$/.exec(e), o = this.getval(i),
h = i ? "null" === o ? null : o || "{}" : "{}";
try {
const e = JSON.parse(h);
this.lodash_set(e, r, t), s = this.setval(JSON.stringify(e), i)
} catch (e) {
const o = {};
this.lodash_set(o, r, t), s = this.setval(JSON.stringify(o), i)
}
} else s = this.setval(t, e);
return s
}
getval(t) {
return this.isSurge() || this.isLoon() ? $persistentStore.read(t) : this.isQuanX() ? $prefs.valueForKey(t) : this.isNode() ? (this.data = this.loaddata(), this.data[t]) : this.data && this.data[t] || null
}
setval(t, e) {
return this.isSurge() || this.isLoon() ? $persistentStore.write(t, e) : this.isQuanX() ? $prefs.setValueForKey(t, e) : this.isNode() ? (this.data = this.loaddata(), this.data[e] = t, this.writedata(), !0) : this.data && this.data[e] || null
}
initGotEnv(t) {
this.got = this.got ? this.got : require("got"), this.cktough = this.cktough ? this.cktough : require("tough-cookie"), this.ckjar = this.ckjar ? this.ckjar : new this.cktough.CookieJar, t && (t.headers = t.headers ? t.headers : {}, void 0 === t.headers.Cookie && void 0 === t.cookieJar && (t.cookieJar = this.ckjar))
}
get(t, e = (() => {
})) {
t.headers && (delete t.headers["Content-Type"], delete t.headers["Content-Length"]), this.isSurge() || this.isLoon() ? (this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {"X-Surge-Skip-Scripting": !1})), $httpClient.get(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
})) : this.isQuanX() ? (this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {hints: !1})), $task.fetch(t).then(t => {
const {statusCode: s, statusCode: i, headers: r, body: o} = t;
e(null, {status: s, statusCode: i, headers: r, body: o}, o)
}, t => e(t))) : this.isNode() && (this.initGotEnv(t), this.got(t).on("redirect", (t, e) => {
try {
if (t.headers["set-cookie"]) {
const s = t.headers["set-cookie"].map(this.cktough.Cookie.parse).toString();
s && this.ckjar.setCookieSync(s, null), e.cookieJar = this.ckjar
}
} catch (t) {
this.logErr(t)
}
}).then(t => {
const {statusCode: s, statusCode: i, headers: r, body: o} = t;
e(null, {status: s, statusCode: i, headers: r, body: o}, o)
}, t => {
const {message: s, response: i} = t;
e(s, i, i && i.body)
}))
}
post(t, e = (() => {
})) {
if (t.body && t.headers && !t.headers["Content-Type"] && (t.headers["Content-Type"] = "application/x-www-form-urlencoded"), t.headers && delete t.headers["Content-Length"], this.isSurge() || this.isLoon()) this.isSurge() && this.isNeedRewrite && (t.headers = t.headers || {}, Object.assign(t.headers, {"X-Surge-Skip-Scripting": !1})), $httpClient.post(t, (t, s, i) => {
!t && s && (s.body = i, s.statusCode = s.status), e(t, s, i)
}); else if (this.isQuanX()) t.method = "POST", this.isNeedRewrite && (t.opts = t.opts || {}, Object.assign(t.opts, {hints: !1})), $task.fetch(t).then(t => {
const {statusCode: s, statusCode: i, headers: r, body: o} = t;
e(null, {status: s, statusCode: i, headers: r, body: o}, o)
}, t => e(t)); else if (this.isNode()) {
this.initGotEnv(t);
const {url: s, ...i} = t;
this.got.post(s, i).then(t => {
const {statusCode: s, statusCode: i, headers: r, body: o} = t;
e(null, {status: s, statusCode: i, headers: r, body: o}, o)
}, t => {
const {message: s, response: i} = t;
e(s, i, i && i.body)
})
}
}
time(t, e = null) {
const s = e ? new Date(e) : new Date;
let i = {
"M+": s.getMonth() + 1,
"d+": s.getDate(),
"H+": s.getHours(),
"m+": s.getMinutes(),
"s+": s.getSeconds(),
"q+": Math.floor((s.getMonth() + 3) / 3),
S: s.getMilliseconds()
};
/(y+)/.test(t) && (t = t.replace(RegExp.$1, (s.getFullYear() + "").substr(4 - RegExp.$1.length)));
for (let e in i) new RegExp("(" + e + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? i[e] : ("00" + i[e]).substr(("" + i[e]).length)));
return t
}
msg(e = t, s = "", i = "", r) {
const o = t => {
if (!t) return t;
if ("string" == typeof t) return this.isLoon() ? t : this.isQuanX() ? {"open-url": t} : this.isSurge() ? {url: t} : void 0;
if ("object" == typeof t) {
if (this.isLoon()) {
let e = t.openUrl || t.url || t["open-url"], s = t.mediaUrl || t["media-url"];
return {openUrl: e, mediaUrl: s}
}
if (this.isQuanX()) {
let e = t["open-url"] || t.url || t.openUrl, s = t["media-url"] || t.mediaUrl;
return {"open-url": e, "media-url": s}
}
if (this.isSurge()) {
let e = t.url || t.openUrl || t["open-url"];
return {url: e}
}
}
};
if (this.isMute || (this.isSurge() || this.isLoon() ? $notification.post(e, s, i, o(r)) : this.isQuanX() && $notify(e, s, i, o(r))), !this.isMuteLog) {
let t = ["", "==============📣系统通知📣=============="];
t.push(e), s && t.push(s), i && t.push(i), console.log(t.join("\n")), this.logs = this.logs.concat(t)
}
}
log(...t) {
t.length > 0 && (this.logs = [...this.logs, ...t]), console.log(t.join(this.logSeparator))
}
logErr(t, e) {
const s = !this.isSurge() && !this.isQuanX() && !this.isLoon();
s ? this.log("", `❗️${this.name}, 错误!`, t.stack) : this.log("", `❗️${this.name}, 错误!`, t)
}
wait(t) {
return new Promise(e => setTimeout(e, t))
}
done(t = {}) {
const e = (new Date).getTime(), s = (e - this.startTime) / 1e3;
this.log("", `🔔${this.name}, 结束! 🕛 ${s}`), this.log(), (this.isSurge() || this.isQuanX() || this.isLoon()) && $done(t)
}
}(t, e)
}