Continue seeded Qinglong script collection
This commit is contained in:
195
脚本库/web版/账密/飞牛私有云/2025-04-28_sudojia_fnnas_5d809252.js
Normal file
195
脚本库/web版/账密/飞牛私有云/2025-04-28_sudojia_fnnas_5d809252.js
Normal file
@@ -0,0 +1,195 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/web/sudojia_fnnas.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/web/sudojia_fnnas.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/web/sudojia_fnnas.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 5d80925231190e241d959facb5f7ae099c4bb2122c415e04975ba821f3c30271
|
||||
// # Category: web版/账密
|
||||
// # Evidence: web/H5关键词 + username/password/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 飞牛私有云
|
||||
*
|
||||
* 官网:https://club.fnnas.com
|
||||
* 获取 Cookie,格式:pvRK_2132_auth=46exxxxxxxx; pvRK_2132_saltkey=F3xxxxx
|
||||
* export FN_NAS_COOKIE = 'pvRK_2132_auth=46exxxxxxxx; pvRK_2132_saltkey=F3xxxxx'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2024/09/20
|
||||
*
|
||||
* const $ = new Env('飞牛私有云')
|
||||
* cron: 10 0 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('飞牛私有云');
|
||||
const cheerio = require("cheerio");
|
||||
const fnNasList = process.env.FN_NAS_COOKIE ? process.env.FN_NAS_COOKIE.split(/[\n&]/) : [];
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// 获取配置信息
|
||||
let formHash, signLink, uid;
|
||||
// 接口地址
|
||||
const baseUrl = 'https://club.fnnas.com'
|
||||
// 请求头
|
||||
const headers = {
|
||||
'User-Agent': sudojia.getRandomUserAgent('PC'),
|
||||
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
||||
};
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, fnNasList);
|
||||
console.log(`\n已随机分配 User-Agent\n\n${headers['user-agent'] || headers['User-Agent']}`);
|
||||
for (let i = 0; i < fnNasList.length; i++) {
|
||||
const index = i + 1;
|
||||
headers.Cookie = fnNasList[i];
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
message += `📣====${$.name}账号[${index}]====📣\n`;
|
||||
await main();
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
}
|
||||
if (message) {
|
||||
await notify.sendNotify(`「${$.name}」`, `${message}`);
|
||||
}
|
||||
})().catch((e) => $.logErr(e)).finally(() => $.done());
|
||||
|
||||
async function main() {
|
||||
await getUidAndUserName();
|
||||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||||
await follow();
|
||||
await $.wait(sudojia.getRandomWait(1200, 1800));
|
||||
await checkIn();
|
||||
await $.wait(sudojia.getRandomWait(1200, 1800));
|
||||
await getCount();
|
||||
await $.wait(sudojia.getRandomWait(1200, 1800));
|
||||
await getPoints();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取重要信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getUidAndUserName() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}`, 'get', headers);
|
||||
const $ = cheerio.load(data);
|
||||
uid = $('a', '.icon_msg').attr('href').match(/uid=(\d+)/)[1];
|
||||
const userName = $('.quater_phone_nav .z').text().trim();
|
||||
console.log(`${userName}(${uid})`);
|
||||
// 拿到 formhash 和签到地址
|
||||
const logoutLink = $('li.l4 a').attr('href');
|
||||
formHash = logoutLink.split('formhash=')[1];
|
||||
signLink = $('a[href*="plugin.php?id=zqlj_sign"]').attr('href');
|
||||
message += `${userName}(${uid})\n`;
|
||||
} catch (e) {
|
||||
console.error('获取重要信息时发生异常:', e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function checkIn() {
|
||||
try {
|
||||
let data = await sudojia.sendRequest(`${baseUrl}/${signLink}`, 'get', headers);
|
||||
if (!data.includes('点击打卡')) {
|
||||
console.log('今日已打卡');
|
||||
return;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||||
data = await sudojia.sendRequest(`${baseUrl}/${signLink}&sign=${formHash}`, 'get', headers);
|
||||
console.log('打卡成功!');
|
||||
message += `打卡成功\n`;
|
||||
} catch (e) {
|
||||
console.error('签到时发生异常:', e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 统计信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getCount() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/${signLink}`, 'get', headers);
|
||||
const $ = cheerio.load(data);
|
||||
const items = {};
|
||||
// 使用选择器提取信息
|
||||
$('.xl li').each((index, element) => {
|
||||
const text = $(element).text().trim();
|
||||
switch (text.substring(0, 4)) {
|
||||
case '最近打卡':
|
||||
items['zjdk'] = text.substring(5).trim();
|
||||
break;
|
||||
case '本月打卡':
|
||||
items['bydk'] = text.substring(5).trim();
|
||||
break;
|
||||
case '连续打卡':
|
||||
items['lxdk'] = text.substring(5).trim();
|
||||
break;
|
||||
case '累计打卡':
|
||||
items['ljdk'] = text.substring(5).trim();
|
||||
break;
|
||||
case '累计奖励':
|
||||
items['ljjl'] = text.substring(5).trim();
|
||||
break;
|
||||
case '最近奖励':
|
||||
items['zjjl'] = text.substring(5).trim();
|
||||
break;
|
||||
case '当前打卡':
|
||||
items['currenDkLevel'] = text.substring(7).trim();
|
||||
break;
|
||||
}
|
||||
});
|
||||
console.log(`最近打卡:${items.zjdk}\n本月打卡:${items.bydk}\n连续打卡:${items.lxdk}\n累计打卡:${items.ljdk}\n累计奖励:${items.ljjl}\n最近奖励:${items.zjjl}\n当前打卡等级:${items.currenDkLevel}`);
|
||||
message += `最近打卡:${items.zjdk}\n本月打卡:${items.bydk}\n连续打卡:${items.lxdk}\n累计打卡:${items.ljdk}\n累计奖励:${items.ljjl}\n最近奖励:${items.zjjl}\n当前打卡等级:${items.currenDkLevel}\n`;
|
||||
} catch (e) {
|
||||
console.error('获取统计信息时发生异常:', e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取个人信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getPoints() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/home.php?mod=space&uid=${uid}&do=profile&from=space`, 'get', headers);
|
||||
const $ = cheerio.load(data);
|
||||
const ulElement = $('.pf_l');
|
||||
const item = {};
|
||||
ulElement.find('li').each((index, element) => {
|
||||
const label = $(element).find('em').text().trim();
|
||||
const value = $(element).text().replace(label, '').trim();
|
||||
switch (label) {
|
||||
case '积分':
|
||||
item.points = parseInt(value);
|
||||
break;
|
||||
case '牛值':
|
||||
item.bullValue = parseInt(value);
|
||||
break;
|
||||
case '飞牛币':
|
||||
item.flyingBullCoins = parseInt(value);
|
||||
break;
|
||||
case '登陆天数':
|
||||
item.loginDays = parseInt(value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
console.log(`当前积分:${item.points}\n当前牛值:${item.bullValue}\n当前飞牛币:${item.flyingBullCoins}\n当前登录天数:${item.loginDays}`);
|
||||
message += `当前积分:${item.points}\n当前牛值:${item.bullValue}\n当前飞牛币:${item.flyingBullCoins}\n当前登录天数:${item.loginDays}\n\n`;
|
||||
} catch (e) {
|
||||
console.error('获取个人信息时发生异常:', e);
|
||||
}
|
||||
}
|
||||
|
||||
async function follow() {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/home.php?mod=spacecp&ac=follow&op=add&hash=${formHash}&fuid=6441&infloat=yes&handlekey=followmod&inajax=1&ajaxtarget=fwin_content_followmod`, 'get', headers);
|
||||
}
|
||||
Reference in New Issue
Block a user