361 lines
11 KiB
JavaScript
361 lines
11 KiB
JavaScript
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/client/sudojia_bananaVideo.js
|
||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/client/sudojia_bananaVideo.js
|
||
// # Repo: sudojia/AutoTaskScript
|
||
// # Path: src/client/sudojia_bananaVideo.js
|
||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||
// # SHA256: 1a8fb3222c27ae2783be5e0562b3110bdb4f4d984f503c7f8b3c48d7ef588dfc
|
||
// # Category: web版/账密
|
||
// # Evidence: web/H5关键词 + username/password/login
|
||
//
|
||
|
||
/**
|
||
* 香蕉视频 APP
|
||
*
|
||
* 扫码下载:https://pic.rmb.bdstatic.com/bjh/240914/dc8411e749492d270032b5278c5abd321993.png
|
||
* 开发不易,走个邀请码呗,感谢!!!
|
||
* 邀请码:IOWDUC
|
||
* 每日签到及任务获得金币, 金币可提现或在棋牌处单车变摩托, 10 金币 = 1元, 保底每日 6 金币
|
||
* 手机号#密码
|
||
* export BANANA_ACCOUNT = '18888888888#123456'
|
||
* 多账号用 & 或换行
|
||
*
|
||
* @author Telegram@sudojia
|
||
* @site https://blog.imzjw.cn
|
||
* @date 2024/09/14
|
||
*
|
||
* const $ = new Env('香蕉视频')
|
||
* cron: 10 1 * * *
|
||
*/
|
||
const initScript = require('../utils/initScript')
|
||
const {$, notify, sudojia, checkUpdate} = initScript('香蕉视频');
|
||
const bananaList = process.env.BANANA_ACCOUNT ? process.env.BANANA_ACCOUNT.split(/[\n&]/) : [];
|
||
// 消息推送
|
||
let message = '';
|
||
// 接口地址
|
||
const baseUrl = 'https://mgcrjh.ipajx0.cc'
|
||
// 收藏列表数组
|
||
let favoriteList = [];
|
||
// 请求头
|
||
const headers = {
|
||
"x-system": "Android",
|
||
"x-channel": "xj1",
|
||
"x-version": "5.0.5",
|
||
'User-Agent': sudojia.getRandomUserAgent('H5'),
|
||
"Accept-Encoding": "gzip, deflate",
|
||
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
|
||
};
|
||
|
||
!(async () => {
|
||
await checkUpdate($.name, bananaList);
|
||
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
|
||
for (let i = 0; i < bananaList.length; i++) {
|
||
const index = i + 1;
|
||
const [phone, pwd] = bananaList[i].split('#');
|
||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||
message += `📣====${$.name}账号[${index}]====📣\n`;
|
||
await main(phone, pwd);
|
||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||
}
|
||
if (message) {
|
||
await notify.sendNotify(`「${$.name}」`, `${message}`);
|
||
}
|
||
})().catch((e) => $.logErr(e)).finally(() => $.done());
|
||
|
||
async function main(phone, pwd) {
|
||
// 登录
|
||
await login(phone, pwd);
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 获取用户信息
|
||
await getUserInfo();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 签到
|
||
await sign();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 添加收藏
|
||
await addFavorite();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 获取收藏列表并删除收藏
|
||
await getFavoriteList();
|
||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||
await removeFavorite();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 点击广告任务
|
||
await adViewClick();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 下载长视频任务
|
||
await downLoadVideoTask();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 观看影片任务
|
||
await watchVideo();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 保存二维码任务
|
||
await qrcodeSave();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 发布评论任务
|
||
await postComment();
|
||
await $.wait(sudojia.getRandomWait(1500, 2000));
|
||
|
||
// 获取金币
|
||
await getPoints();
|
||
}
|
||
|
||
/**
|
||
* 登录
|
||
*
|
||
* @return {Promise<void>}
|
||
*/
|
||
async function login(phone, pwd) {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/login`, 'post', headers, `logintype=0&mobiprefix=86&mobi=${phone}&password=${pwd}`);
|
||
if (0 !== data.retcode) {
|
||
return console.error(data.errmsg);
|
||
}
|
||
headers['X-Cookie-Auth'] = data.data.xxx_api_auth;
|
||
console.log(`登录成功~`);
|
||
} catch (e) {
|
||
console.error(`获取用户信息时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取用户信息
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function getUserInfo() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/ucp/index`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
return console.error(data.errmsg);
|
||
}
|
||
console.log(`昵称:${data.data.user.username}`);
|
||
message += `昵称:${data.data.user.username}\n`;
|
||
} catch (e) {
|
||
console.error(`获取用户信息时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 签到
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function sign() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/ucp/task/sign`, 'post', headers);
|
||
if (0 !== data.retcode) {
|
||
message += `${data.errmsg}\n`;
|
||
return console.error(data.errmsg);
|
||
}
|
||
console.log(`签到成功,金币+${data.data.taskdone}`);
|
||
message += `签到成功\n`;
|
||
} catch (e) {
|
||
console.error(`签到时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 视频收藏
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function addFavorite() {
|
||
// 每次收藏的最大尝试次数
|
||
const maxAttempts = 5;
|
||
for (let i = 0; i < 5; i++) {
|
||
let attempt = 0;
|
||
while (attempt < maxAttempts) {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/favorite/add`, 'post', headers, `vodid=${sudojia.getRandomWait(1, 66000)}`);
|
||
if (data.retcode === 0) {
|
||
console.log(`第 ${i + 1} 次收藏视频成功!`);
|
||
await $.wait(sudojia.getRandomWait(1500, 2300));
|
||
break;
|
||
} else if (data.retcode === -1) {
|
||
console.log(`第 ${i + 1} 次收藏视频失败(已收藏),重新尝试...`);
|
||
attempt++;
|
||
await $.wait(sudojia.getRandomWait(1500, 2300));
|
||
} else {
|
||
console.error(`第 ${i + 1} 次收藏视频失败,错误代码:${data.retcode},错误信息:${data.errmsg}`);
|
||
return;
|
||
}
|
||
} catch (e) {
|
||
console.error(`收藏视频时发生异常:${e}`);
|
||
}
|
||
}
|
||
if (attempt === maxAttempts) {
|
||
console.error(`收藏视频达到最大尝试次数,收藏任务未成功`);
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取收藏列表
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function getFavoriteList() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/favorite/listing`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
return console.error(`获取收藏列表失败:${data.errmsg}`);
|
||
}
|
||
for (const item of data.data.rows) {
|
||
favoriteList.push(item.vodid);
|
||
}
|
||
console.log(`已获取收藏列表,开始删除收藏...`);
|
||
} catch (e) {
|
||
console.error(`获取收藏列表时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 删除收藏列表
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function removeFavorite() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/favorite/remove`, 'post', headers, `vodids=${favoriteList}`);
|
||
if (0 !== data.retcode) {
|
||
return console.error(`删除收藏视频失败:${data.errmsg}`);
|
||
}
|
||
console.log(`${data.errmsg}`);
|
||
} catch (e) {
|
||
console.error(`删除收藏视频时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 点击广告任务
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function adViewClick() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/ucp/task/adviewClick`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
return console.error(`点击广告失败:${data.errmsg}`);
|
||
}
|
||
console.log(`点击广告成功,金币+${data.data.taskdone}`);
|
||
} catch (e) {
|
||
console.error(`点击广告时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 长视频下载任务
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function downLoadVideoTask() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/vod/reqdown/${sudojia.getRandomWait(1, 66000)}`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
if (3 === data.retcode) {
|
||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||
return await downLoadVideoTask();
|
||
}
|
||
console.error(`下载长视频失败:${data.errmsg}`);
|
||
return;
|
||
}
|
||
if (!data.data.taskdone) {
|
||
return console.error(`下载长视频任务已完成`);
|
||
}
|
||
console.log(`下载长视频任务成功,金币+${data.data.taskdone}`);
|
||
} catch (e) {
|
||
console.error(`下载长视频任务时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 观看影片任务
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function watchVideo() {
|
||
try {
|
||
let watched = 0;
|
||
while (watched < 10) {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/v2/vod/reqplay/${sudojia.getRandomWait(1, 66000)}`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
console.error(`观看影片任务失败:${data.errmsg}`);
|
||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||
continue;
|
||
}
|
||
watched++;
|
||
console.log(`已观看影片数量:${watched}`);
|
||
await $.wait(sudojia.getRandomWait(1500, 2300));
|
||
}
|
||
} catch (e) {
|
||
console.error(`观看影片时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 保存二维码任务
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function qrcodeSave() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/ucp/task/qrcodeSave`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
return console.error(`保存二维码任务失败:${data.errmsg}`);
|
||
}
|
||
console.log(`保存二维码任务成功,金币+${data.data.taskdone}`);
|
||
} catch (e) {
|
||
console.error(`保存二维码任务时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 发布评论任务
|
||
*
|
||
* @returns {Promise<*|undefined>}
|
||
*/
|
||
async function postComment() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/comment/post`, 'post', headers, `vodid=${sudojia.getRandomWait(1, 66000)}&content=好`);
|
||
if (0 !== data.retcode) {
|
||
if (3 === data.retcode) {
|
||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||
return await postComment();
|
||
}
|
||
console.error(`发布评论失败:${data.errmsg}`);
|
||
return
|
||
}
|
||
console.log(data.errmsg);
|
||
} catch (e) {
|
||
console.error(`发布评论时发生异常:${e}`);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取金币
|
||
*
|
||
* @returns {Promise<void>}
|
||
*/
|
||
async function getPoints() {
|
||
try {
|
||
const data = await sudojia.sendRequest(`${baseUrl}/ucp/index`, 'get', headers);
|
||
if (0 !== data.retcode) {
|
||
return console.error(data.errmsg);
|
||
}
|
||
console.log(`当前金币:${data.data.user.goldcoin}`);
|
||
message += `当前金币:${data.data.user.goldcoin}`;
|
||
} catch (e) {
|
||
console.error(`获取金币时发生异常:${e}`);
|
||
}
|
||
} |