Continue seeded Qinglong script collection
This commit is contained in:
24
脚本库/APP版/账密/107-望潮_v1.01/2023-09-20_wangchao_101_155f9d5a.js
Normal file
24
脚本库/APP版/账密/107-望潮_v1.01/2023-09-20_wangchao_101_155f9d5a.js
Normal file
File diff suppressed because one or more lines are too long
4341
脚本库/APP版/账密/中国联通/2025-07-19_中国联通修复版_81c5a945.js
Normal file
4341
脚本库/APP版/账密/中国联通/2025-07-19_中国联通修复版_81c5a945.js
Normal file
File diff suppressed because one or more lines are too long
342
脚本库/APP版/账密/享玩游戏APP/2025-04-28_sudojia_xiangwan_659341f6.js
Normal file
342
脚本库/APP版/账密/享玩游戏APP/2025-04-28_sudojia_xiangwan_659341f6.js
Normal file
@@ -0,0 +1,342 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/client/sudojia_xiangwan.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/client/sudojia_xiangwan.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/client/sudojia_xiangwan.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 659341f6d90da24ae84aff1ca890993bb08f62f22537ed7eca9ee139ad06e61d
|
||||
// # Category: APP版/账密
|
||||
// # Evidence: username/password/mobile/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 享玩游戏APP
|
||||
* 下载链接:https://dl.duoyou.com/fenapk/xwshare/xw_100016.apk?version=1.3
|
||||
*
|
||||
* 会员v0:起始签到 10 个玩豆,连续签到递增 1 玩豆,最高签到 15 个玩豆
|
||||
* 会员v1-2:起始 15,最高 20
|
||||
* ...
|
||||
* 会员v10:起始 75,最高 80
|
||||
* 具体自行查看签到规则
|
||||
*
|
||||
* 以会员v0来计算(包含连签奖励):
|
||||
* 10 玩豆 兑换 0.1 现金,
|
||||
* 500 玩豆 兑换 5 现金,大约需 21 天
|
||||
* 1000 玩豆 兑换 10 现金,大约需 30 天
|
||||
* 5000 玩豆 兑换 50 现金,大约需 200 天
|
||||
* 10000 玩豆 兑换 100现金,大约需 381 天
|
||||
* 30000 玩豆 兑换 300 现金,大约需 1135 天 😂😂😂
|
||||
*
|
||||
* export XWGAME_ACCOUNTS = '手机号#密码'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2025/02/25
|
||||
*
|
||||
* const $ = new Env('享玩游戏APP')
|
||||
* cron: 33 0 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('享玩游戏APP');
|
||||
const crypto = require('crypto');
|
||||
const moment = require('moment');
|
||||
const fs = require('fs').promises;
|
||||
const path = require('path');
|
||||
const xiangWanList = process.env.XWGAME_ACCOUNTS ? process.env.XWGAME_ACCOUNTS.split(/[\n&]/) : [];
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// token 缓存地址
|
||||
const TOKEN_CACHE_PATH = path.join(__dirname, 'xiangwan_token_cache.json');
|
||||
// 接口地址
|
||||
const baseUrl = 'https://sdk-api.xiangwan.com'
|
||||
// 加密秘钥(Base64)
|
||||
const keyBase64 = '5snOI0E5WUpP99pG5+fzug==';
|
||||
// 解码 Base64 得到原始的二进制密钥
|
||||
const key = Buffer.from(keyBase64, 'base64');
|
||||
// 加密 Iv(Base64)
|
||||
const ivBase64 = 'KhVRUtkYTNM82dSDxb7/YQ==';
|
||||
// 解码 Base64 得到原始的二进制 IV
|
||||
const iv = Buffer.from(ivBase64, 'base64');
|
||||
// 请求头
|
||||
const headers = {
|
||||
'User-Agent': 'okhttp/4.11.0',
|
||||
'Accept-Encoding': 'gzip',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
};
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, xiangWanList);
|
||||
for (let i = 0; i < xiangWanList.length; i++) {
|
||||
const index = i + 1;
|
||||
const [account, pwd] = xiangWanList[i].split('#');
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
await login(account, pwd);
|
||||
if (!$.isLogin) {
|
||||
continue;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
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 sign();
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
await getUserInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param account
|
||||
* @param password
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function login(account, password) {
|
||||
try {
|
||||
let cachedToken = await getTokenFromCache("xiangwan", account);
|
||||
if (cachedToken) {
|
||||
headers.authorization = `Bearer ${cachedToken}`;
|
||||
console.log('使用缓存 token 登录,验证中...');
|
||||
const isValid = await validateToken(cachedToken);
|
||||
await $.wait(sudojia.getRandomWait(2e3, 3e3));
|
||||
if (isValid) {
|
||||
$.isLogin = true;
|
||||
console.log('token 验证有效✅');
|
||||
return;
|
||||
} else {
|
||||
console.log('缓存 token 验证失效,开始重新登录更新 token...');
|
||||
}
|
||||
}
|
||||
const encryptData = await sudojia.sendRequest(`${baseUrl}/account/account_login`, 'post', headers, {
|
||||
"params": encryptCredentials(JSON.stringify({
|
||||
...getCommonParams(),
|
||||
account: account,
|
||||
password: password
|
||||
}))
|
||||
});
|
||||
const decryptData = JSON.parse(decryptCredentials(encryptData));
|
||||
if (200 !== decryptData.status_code) {
|
||||
$.isLogin = false;
|
||||
return console.error(`登录失败 ->`, decryptData);
|
||||
}
|
||||
console.log('登录成功~');
|
||||
headers.authorization = `Bearer ${decryptData.data.token}`;
|
||||
$.isLogin = true;
|
||||
// 保存 token 到文件
|
||||
await saveTokenToCache("xiangwan", account, decryptData.data.token);
|
||||
} catch (e) {
|
||||
$.isLogin = false;
|
||||
if (e.response || e.response.data) {
|
||||
console.error(`登录时发生异常 ->`, e.response.data);
|
||||
} else {
|
||||
console.error(`登录时发生异常 ->`, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function sign() {
|
||||
try {
|
||||
console.log('\n开始执行...');
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
const days = moment().format('YYYYMMDD');
|
||||
const encryptData = await sudojia.sendRequest(`${baseUrl}/discover/sign`, 'post', headers, {
|
||||
"params": encryptCredentials(JSON.stringify({
|
||||
...getCommonParams(),
|
||||
"days": days
|
||||
}))
|
||||
});
|
||||
const decryptData = JSON.parse(decryptCredentials(encryptData));
|
||||
if (200 !== decryptData.status_code) {
|
||||
message += `签到失败 -> ${decryptData.message}\n`;
|
||||
return console.error(`签到失败 ->`, decryptData.message);
|
||||
}
|
||||
console.log(`签到成功,恭喜获得:${decryptData.data.score}玩豆`);
|
||||
message += `签到成功,恭喜获得:${decryptData.data.score}玩豆\n`;
|
||||
} catch (e) {
|
||||
console.error(`签到时发生异常 ->`, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getUserInfo() {
|
||||
try {
|
||||
const encryptData = await sudojia.sendRequest(`${baseUrl}/me/member_info`, 'post', headers, {
|
||||
"params": encryptCredentials(JSON.stringify({
|
||||
...getCommonParams()
|
||||
}))
|
||||
});
|
||||
const decryptData = JSON.parse(decryptCredentials(encryptData));
|
||||
if (200 !== decryptData.status_code) {
|
||||
return console.error(`获取用户信息时发生异常 ->`, decryptData);
|
||||
}
|
||||
const {nickname, mobile, balance} = decryptData.data;
|
||||
const hiddenMobile = `${mobile.slice(0, 3)}***${mobile.slice(-3)}` || 18888888888;
|
||||
const displayName = nickname || "吴彦祖";
|
||||
console.log(`${displayName}(${hiddenMobile})`);
|
||||
console.log(`当前玩豆:${balance}`);
|
||||
message += `${nickname}(${hiddenMobile})\n`;
|
||||
message += `当前玩豆:${balance}\n\n`;
|
||||
} catch (e) {
|
||||
console.error(`获取用户信息时发生异常 ->`, e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证 token 是否有效
|
||||
*
|
||||
* @param token
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async function validateToken(token) {
|
||||
try {
|
||||
const encryptData = await sudojia.sendRequest(`${baseUrl}/me/member_account`, 'post', {
|
||||
authorization: `Bearer ${token}`
|
||||
}, {
|
||||
"params": encryptCredentials(JSON.stringify({
|
||||
...getCommonParams()
|
||||
}))
|
||||
});
|
||||
const decryptData = JSON.parse(decryptCredentials(encryptData));
|
||||
return 200 === decryptData.status_code;
|
||||
} catch (error) {
|
||||
console.error('验证 token 时发生异常:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取公共请求参数
|
||||
*
|
||||
* @returns {Object} 包含公共请求参数的对象
|
||||
*/
|
||||
function getCommonParams() {
|
||||
return {
|
||||
"app_channel": "xw_100016",
|
||||
"app_version": "1.3",
|
||||
"invite_uid": "",
|
||||
"app_os": "android",
|
||||
"server_device_id": "176"
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密请求数据
|
||||
*
|
||||
* @returns {string} 加密后的Base64字符串
|
||||
*/
|
||||
function encryptCredentials(plainText) {
|
||||
// 创建加密器
|
||||
const cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
|
||||
// 加密数据
|
||||
let encrypted = cipher.update(plainText, 'utf8', 'base64');
|
||||
encrypted += cipher.final('base64');
|
||||
return encrypted;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密响应数据
|
||||
*
|
||||
* @param encryptedText
|
||||
* @returns {string}
|
||||
*/
|
||||
function decryptCredentials(encryptedText) {
|
||||
// 创建解密器
|
||||
const decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
|
||||
// 解密数据
|
||||
let decrypted = decipher.update(encryptedText, 'base64', 'utf8');
|
||||
decrypted += decipher.final('utf8');
|
||||
return decrypted;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 从文件中读取 token
|
||||
*
|
||||
* @param platform
|
||||
* @param username
|
||||
* @returns {Promise<*|null>}
|
||||
*/
|
||||
async function getTokenFromCache(platform, username) {
|
||||
try {
|
||||
try {
|
||||
// 检查文件是否存在
|
||||
await fs.access(TOKEN_CACHE_PATH);
|
||||
} catch (error) {
|
||||
console.warn('token 缓存文件不存在,创建一个空文件...');
|
||||
await fs.writeFile(TOKEN_CACHE_PATH, JSON.stringify({}, null, 2), 'utf8');
|
||||
return null;
|
||||
}
|
||||
const cache = await fs.readFile(TOKEN_CACHE_PATH, 'utf-8');
|
||||
// 检查文件内容是否为空
|
||||
if (!cache.trim()) {
|
||||
console.warn('token 缓存文件内容为空,开始重新登录生成 token 内容');
|
||||
return null;
|
||||
}
|
||||
let cacheObj;
|
||||
try {
|
||||
cacheObj = JSON.parse(cache);
|
||||
} catch (parseError) {
|
||||
console.error('解析 token 缓存文件失败:', parseError);
|
||||
return null; // 解析失败时返回 null
|
||||
}
|
||||
// 检查平台和用户名是否存在
|
||||
if (cacheObj[platform] && cacheObj[platform][username]) {
|
||||
return cacheObj[platform][username];
|
||||
} else {
|
||||
console.warn(`token 缓存文件中未找到[${username}]的账号,开始重新登录生成 token`);
|
||||
return null;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('读取缓存文件失败:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 token 保存到文件
|
||||
*
|
||||
* @param platform
|
||||
* @param username
|
||||
* @param token
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function saveTokenToCache(platform, username, token) {
|
||||
try {
|
||||
let cacheObj = {};
|
||||
try {
|
||||
const cache = await fs.readFile(TOKEN_CACHE_PATH, 'utf-8');
|
||||
if (cache.trim()) {
|
||||
cacheObj = JSON.parse(cache);
|
||||
} else {
|
||||
console.warn('token 缓存文件内容为空,开始初始化为空对象...');
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn('读取缓存文件失败,初始化为空对象:', error);
|
||||
}
|
||||
if (!cacheObj[platform]) {
|
||||
cacheObj[platform] = {};
|
||||
}
|
||||
cacheObj[platform][username] = token;
|
||||
await fs.writeFile(TOKEN_CACHE_PATH, JSON.stringify(cacheObj, null, 2), 'utf-8');
|
||||
console.log('token 已保存到缓存文件[xiangwan_token_cache.json]');
|
||||
console.log(`路径:${TOKEN_CACHE_PATH}`);
|
||||
} catch (error) {
|
||||
console.error('保存 token 失败:', error);
|
||||
}
|
||||
}
|
||||
235
脚本库/APP版/账密/图虫/2025-04-28_sudojia_tuchong_1bc74b15.js
Normal file
235
脚本库/APP版/账密/图虫/2025-04-28_sudojia_tuchong_1bc74b15.js
Normal file
@@ -0,0 +1,235 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/client/sudojia_tuchong.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/client/sudojia_tuchong.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/client/sudojia_tuchong.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 1bc74b1583f9e64ca80f93708622e78e4f8972e2c837fb9b581804ae01ffbcb3
|
||||
// # Category: APP版/账密
|
||||
// # Evidence: username/password/mobile/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 图虫APP
|
||||
*
|
||||
* 每日签到及部分任务获取积分
|
||||
* 自行重设密码
|
||||
* export TUC_ACCOUNTS = '手机号#密码'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2024/12/28
|
||||
*
|
||||
* const $ = new Env('图虫')
|
||||
* cron: 38 5 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('图虫');
|
||||
const crypto = require('crypto');
|
||||
const tuList = process.env.TUC_ACCOUNTS ? process.env.TUC_ACCOUNTS.split(/[\n&]/) : [];
|
||||
const key = Buffer.from('41343045353832423133303141423545', 'hex');
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// 接口地址
|
||||
const baseUrl = 'https://api.tuchong.com'
|
||||
// 请求头
|
||||
const headers = {
|
||||
'User-Agent': 'okhttp/3.12.2 com.ss.android.tuchong (Tuchong: 7391 7.39.1) (Android: 11 30)',
|
||||
'Accept-Encoding': 'gzip',
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'version': '7576',
|
||||
'channel': 'oppo',
|
||||
'platform': 'android',
|
||||
};
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, tuList);
|
||||
for (let i = 0; i < tuList.length; i++) {
|
||||
const index = i + 1;
|
||||
const [phone, pwd] = tuList[i].split('#');
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
const isLogin = await login(phone, pwd);
|
||||
if (!isLogin) {
|
||||
continue;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
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 getUserInfo();
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3))
|
||||
await checkIn();
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3))
|
||||
await getArticle();
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3))
|
||||
await getPointStatus();
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*
|
||||
* @param phone
|
||||
* @param pwd
|
||||
* @returns {Promise<boolean>}
|
||||
*/
|
||||
async function login(phone, pwd) {
|
||||
try {
|
||||
const encryptedPhone = encrypt(phone);
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/accounts/login`, 'post', headers, {
|
||||
"password": pwd,
|
||||
"account": encryptedPhone
|
||||
});
|
||||
if (0 !== data.account_status) {
|
||||
console.error(`账号或密码错误`);
|
||||
return false;
|
||||
}
|
||||
headers.token = data.token;
|
||||
$.accountId = data.identity;
|
||||
console.log(`登录成功`);
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.error(`登录时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getUserInfo() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/2/sites/${$.accountId}`, 'get', headers);
|
||||
if ('SUCCESS' !== data.result) {
|
||||
return console.error(`获取用户信息失败 ->`, data);
|
||||
}
|
||||
console.log(`${data.site.name}(${data.site.site_id})`);
|
||||
message += `${data.site.name}(${data.site.site_id})\n`;
|
||||
} catch (e) {
|
||||
console.error(`获取用户信息时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function checkIn() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/point/check-in`, 'get', headers);
|
||||
if ('SUCCESS' !== data.result) {
|
||||
message += `签到失败, ${data.message}\n`;
|
||||
return console.error(`签到失败 ->`, data);
|
||||
}
|
||||
console.log('签到成功');
|
||||
message += `签到成功\n`;
|
||||
} catch (e) {
|
||||
console.error(`签到时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文章信息
|
||||
* 然后随机选择一篇文章进行点赞和关注作者操作
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getArticle() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`https://tuchong.com/gapi/feed/app`, 'get', headers);
|
||||
// 过滤掉没有data_id的项,得到有效的文章列表
|
||||
const filteredFeedList = data.feedList.filter(item => item.data_id !== undefined);
|
||||
let listElement = filteredFeedList[Math.floor(Math.random() * filteredFeedList.length)];
|
||||
console.log(`获取到文章id:${listElement.data_id}`);
|
||||
// 执行点赞操作
|
||||
await performAction('点赞', favorite, listElement.data_id);
|
||||
// 执行关注作者操作
|
||||
await performAction('关注作者', follow, listElement.entry.author_id);
|
||||
} catch (e) {
|
||||
console.error(`开宝箱时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 点赞操作
|
||||
* 调用performInteraction函数来执行点赞操作
|
||||
*
|
||||
* @param postId
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function favorite(postId) {
|
||||
return await performInteraction('favorite', postId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关注作者操作
|
||||
* 调用performInteraction函数来执行关注作者操作
|
||||
*
|
||||
* @param userId
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function follow(userId) {
|
||||
return await performInteraction('follow', userId, 'site_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行交互操作,点赞和关注
|
||||
*
|
||||
* @param action 交互操作类型 'favorite' 或 'follow'
|
||||
* @param id 文章ID或用户ID
|
||||
* @param paramKey 请求参数中的键名,默认为 'post_id'
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function performInteraction(action, id, paramKey = 'post_id') {
|
||||
try {
|
||||
let data = await sudojia.sendRequest(`https://tuchong.com/gapi/interactive/${action}?_rticket=${new Date().getTime()}`, 'put', headers, {
|
||||
[paramKey]: id
|
||||
});
|
||||
console.log(`开始取消操作`);
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
data = await sudojia.sendRequest(`https://tuchong.com/gapi/interactive/${action}?${paramKey}=${id}`, 'DELETE', headers);
|
||||
console.log(data);
|
||||
} catch (e) {
|
||||
console.error(`${action}时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function performAction(description, actionFunction, id) {
|
||||
console.log(`开始${description}`);
|
||||
await $.wait(sudojia.getRandomWait(1e3, 2e3));
|
||||
// 执行传入的操作函数
|
||||
await actionFunction(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取积分
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getPointStatus() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`https://m.tuchong.com/tuchonggapi/misc/point/v2/status?platform=android&version=7.57.6`, 'get', headers);
|
||||
console.log(`当前积分:${data.status.total_point}`);
|
||||
console.log(`当前等级:${data.status.influence_level_text}`);
|
||||
message += `当前积分:${data.status.total_point}\n当前等级:${data.status.influence_level_text}\n\n`;
|
||||
} catch (e) {
|
||||
console.error(`获取积分状态时发生异常:${e}`);
|
||||
}
|
||||
}
|
||||
|
||||
function encrypt(text) {
|
||||
const cipher = crypto.createCipheriv('aes-128-ecb', key, '');
|
||||
cipher.setAutoPadding(true);
|
||||
let encrypted = cipher.update(text, 'utf8', 'base64');
|
||||
encrypted += cipher.final('base64');
|
||||
return encrypted;
|
||||
}
|
||||
304
脚本库/APP版/账密/小牛电动/2025-04-28_sudojia_xniu_881d6e72.js
Normal file
304
脚本库/APP版/账密/小牛电动/2025-04-28_sudojia_xniu_881d6e72.js
Normal file
@@ -0,0 +1,304 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/client/sudojia_xniu.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/client/sudojia_xniu.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/client/sudojia_xniu.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 881d6e7286177862b1e9c05ebd6c71ceeb80a12924183f25c85a2f710a64feda
|
||||
// # Category: APP版/账密
|
||||
// # Evidence: username/password/mobile/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 小牛电动 APP
|
||||
*
|
||||
* 账号#密码
|
||||
* export XNIU_ACCOUNT = '18888888888#123456'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2024/08/26
|
||||
*
|
||||
* const $ = new Env('小牛电动')
|
||||
* cron: 19 11 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('小牛电动');
|
||||
const xniuList = process.env.XNIU_ACCOUNT ? process.env.XNIU_ACCOUNT.split(/[\n&]/) : [];
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// 接口地址
|
||||
const baseUrl = 'https://app-api.niu.com'
|
||||
// 请求头
|
||||
const headers = {
|
||||
'User-Agent': 'manager/5.7.4 (android; OPPO R9s 9);lang=zh-CN;clientIdentifier=Domestic;timezone=Asia/Shanghai;model=OPPO_OPPO R9s;deviceName=OPPO R9s;ostype=android',
|
||||
'Content-Type': 'application/json',
|
||||
'Accept-Encoding': 'gzip',
|
||||
};
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, xniuList);
|
||||
for (let i = 0; i < xniuList.length; i++) {
|
||||
const index = i + 1;
|
||||
$.isLogin = true;
|
||||
let [phone, pwd] = xniuList[i].split('#');
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
await getToken(phone, sudojia.md5(pwd));
|
||||
if (!$.isLogin) {
|
||||
continue;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||||
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 getUserInfo();
|
||||
await $.wait(sudojia.getRandomWait(1200, 2000));
|
||||
await getQuestionList();
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await readGuide();
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await getPostIdByCity();
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await followUser();
|
||||
await $.wait(sudojia.getRandomWait(3000, 3500));
|
||||
await followUser();
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await getPoints();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 token
|
||||
*
|
||||
* @param phone 手机号
|
||||
* @param pwd 密码
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getToken(phone, pwd) {
|
||||
try {
|
||||
const headerCp = JSON.parse(JSON.stringify(headers));
|
||||
headerCp['Content-Type'] = 'application/x-www-form-urlencoded';
|
||||
headerCp.token = 'tokenExperienceMode';
|
||||
const params = `password=${pwd}&grant_type=password&scope=base&app_id=niu_ktdrr960&account=${phone}`
|
||||
const data = await sudojia.sendRequest(`https://account.niu.com/v3/api/oauth2/token`, 'post', headerCp, params);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
$.isLogin = false;
|
||||
return;
|
||||
}
|
||||
console.log('登录成功~');
|
||||
headers.token = data.data.token.access_token;
|
||||
$.userId = data.data.user.user_id;
|
||||
} catch (e) {
|
||||
console.error(`获取 token 时发生异常:` + e);
|
||||
$.isLogin = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getUserInfo() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/user/profile?user_id=${$.userId}`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
console.log(`昵称:${data.data.user_nick_name}`);
|
||||
message += `昵称:${data.data.user_nick_name}\n`;
|
||||
} catch (e) {
|
||||
console.error(`获取用户信息时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取问题列表
|
||||
* type:1 热门 2 最新提问 3 最新回答
|
||||
*
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
async function getQuestionList() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/qa/list?type=2&category_id=&page=1&page_size=30&_=${Date.now()}`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
const quest = data.data.items[Math.floor(Math.random() * data.data.items.length)];
|
||||
console.log(`开始回答[${quest.content}]`);
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await getAnswer(quest.id);
|
||||
} catch (e) {
|
||||
console.error(`获取问题列表时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取回答评论
|
||||
*
|
||||
* @param pid
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getAnswer(pid) {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/posts/comments/list?parent_id=${pid}&parent_type=1&page=1&page_size=20&hide_hot=1&version=2&_=${Date.now()}`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
let answer;
|
||||
if (!data.data.items || data.data.items.length === 0) {
|
||||
console.log('这个问题的回答评论为空,将使用默认的回答评论【我也遇到过】');
|
||||
answer = '我也遇到过';
|
||||
} else {
|
||||
answer = data.data.items[Math.floor(Math.random() * data.data.items.length)].content;
|
||||
}
|
||||
console.log(`开始回答评论 -> ${answer}`);
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await postAnswer(pid, answer);
|
||||
} catch (e) {
|
||||
console.error(`获取回答评论时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 回答问题
|
||||
*
|
||||
* @param pid
|
||||
* @param content
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function postAnswer(pid, content) {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/posts/comments`, 'post', headers, {
|
||||
"content": content,
|
||||
"object": 2,
|
||||
"parent_id": pid
|
||||
});
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
console.log(`回答成功`);
|
||||
} catch (e) {
|
||||
console.error(`回答问题时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 阅读社区指引
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function readGuide() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/posts/detail?id=1940&version=2&_=${Date.now()}`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
console.log(`阅读社区指引完成`);
|
||||
} catch (e) {
|
||||
console.error(`阅读社区指引时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据不同的城市获取文章ID
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getPostIdByCity() {
|
||||
try {
|
||||
for (let i = 0; i < 2; i++) {
|
||||
const cityCodeList = ['110000', '120000', '310000', '440100', '440300', '320400', '441900', '442000', '441300', '440700', '431100', '371000'];
|
||||
const city = cityCodeList[Math.floor(Math.random() * cityCodeList.length)];
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/group/city/recommend_list?city_code=${city}&last_score=0&page_size=20&_=${Date.now()}`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
const {id, user_id} = data.data.items[Math.floor(Math.random() * data.data.items.length)];
|
||||
await $.wait(sudojia.getRandomWait(2000, 2500));
|
||||
await share(id);
|
||||
await $.wait(sudojia.getRandomWait(800, 1200));
|
||||
$.uid = user_id;
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(`获取文章ID时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分享文章
|
||||
*
|
||||
* @param postId 文章ID
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function share(postId) {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/posts/shares`, 'post', headers, {
|
||||
"id": postId
|
||||
});
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
console.log(`分享文章成功`);
|
||||
} catch (e) {
|
||||
console.error(`分享文章时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 关注用户
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function followUser() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/community/api/user/follow/create`, 'post', headers, {
|
||||
"follow_user_id": $.uid
|
||||
});
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
if (2 === data.data.followType) {
|
||||
console.log(`关注用户成功`);
|
||||
} else {
|
||||
console.log(`取关用户成功`);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(`关注用户时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取积分
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getPoints() {
|
||||
try {
|
||||
const data = await sudojia.sendRequest(`${baseUrl}/v5/points/index`, 'get', headers);
|
||||
if (0 !== data.status) {
|
||||
console.log(data.desc);
|
||||
return;
|
||||
}
|
||||
console.log(`当前积分:${data.data.userPoints}`);
|
||||
message += `当前积分:${data.data.userPoints}\n\n`;
|
||||
} catch (e) {
|
||||
console.error(`获取积分时发生异常:` + e);
|
||||
}
|
||||
}
|
||||
96
脚本库/APP版/账密/螃蟹租号爬虫/2025-10-28_螃蟹租号爬虫_bb196fc9.py
Normal file
96
脚本库/APP版/账密/螃蟹租号爬虫/2025-10-28_螃蟹租号爬虫_bb196fc9.py
Normal file
@@ -0,0 +1,96 @@
|
||||
# Source: https://github.com/NaroisCool/naro-scripts/blob/master/%E8%9E%83%E8%9F%B9%E7%A7%9F%E5%8F%B7%E7%88%AC%E8%99%AB.py
|
||||
# Raw: https://raw.githubusercontent.com/NaroisCool/naro-scripts/master/%E8%9E%83%E8%9F%B9%E7%A7%9F%E5%8F%B7%E7%88%AC%E8%99%AB.py
|
||||
# Repo: NaroisCool/naro-scripts
|
||||
# Path: 螃蟹租号爬虫.py
|
||||
# UploadedAt: 2025-10-28T05:54:28+08:00
|
||||
# SHA256: bb196fc9a07e36e2128f56eb40eb3b6ca348cf3716f82f66fdb8116b383d4197
|
||||
# Category: APP版/账密
|
||||
# Evidence: username/password/mobile/login
|
||||
|
||||
#螃蟹租号爬虫
|
||||
import requests
|
||||
import notify
|
||||
|
||||
# 定义基础URL
|
||||
base_url = 'https://api.pxb7.com/api/product/daily/details?game_id=61&date=1712419200&page={}'
|
||||
header ={
|
||||
"accept": "application/json, text/plain, */*",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
"ApiToken":"dfb00eb839abe281c499e141686f3247",
|
||||
"token":"feb93033a7ab04ea442b08103ec019a4",
|
||||
"loginstatus": "false",
|
||||
"sec-fetch-dest": "empty",
|
||||
"sec-fetch-mode": "cors",
|
||||
"sec-fetch-site": "same-site"}
|
||||
|
||||
ol = 0
|
||||
ten = 0
|
||||
mobile = 0
|
||||
start_page = 1
|
||||
while True:
|
||||
# 构造完整的URL
|
||||
url = base_url.format(start_page)
|
||||
|
||||
# 发送HTTP GET请求并获取响应
|
||||
response = requests.get(url=url,headers=header).json()
|
||||
code = response.get('code')
|
||||
# 检查响应的状态码
|
||||
if code == 200:
|
||||
data = response.get('data')
|
||||
#print(data)
|
||||
#昨日卖出总数
|
||||
total = data.get('total')
|
||||
start_page = data.get('page')
|
||||
#租号数据
|
||||
data2 = data.get('list')
|
||||
#总共的页码
|
||||
pages = (total + 10 -1) // 10
|
||||
print('总共页数'+str(pages))
|
||||
print('总数'+str(total))
|
||||
print('第'+str(start_page)+'页')
|
||||
if start_page <= pages:
|
||||
for l in data2:
|
||||
try:
|
||||
if 'OL' in l.get('category')[0].get('value'):
|
||||
gj = l.get('category')[3].get('value')
|
||||
name = l.get('name')
|
||||
date = l.get('pay_date')
|
||||
pop = str(l.get('collect'))
|
||||
price = l.get('price')
|
||||
olf = open('ol.txt','a')
|
||||
olf.write('官阶:'+gj+'\n描述:'+name+'\n价格:'+str(price)+'\n成交时间'+date+'\n欢迎度'+pop+'\n')
|
||||
olf.close()
|
||||
#print('官阶:'+gj+'\n描述:'+name+'\n价格:'+price+'\n成交时间'+date+'\n欢迎度'+pop)
|
||||
if price >= 900:
|
||||
notify.send('爬取结果','官阶:'+gj+'\n描述:'+name+'\n价格:'+str(price)+'\n成交时间'+date+'\n欢迎度'+pop+'\n\n')
|
||||
ol = ol +1
|
||||
if '十周年' in l.get('category')[0].get('value'):
|
||||
gj = l.get('category')[3].get('value')
|
||||
name = l.get('name')
|
||||
date = l.get('pay_date')
|
||||
pop = str(l.get('collect'))
|
||||
price = l.get('price')
|
||||
tf = open('ten.txt','a')
|
||||
tf.write('官阶:'+gj+'\n描述:'+name+'\n价格:'+str(price)+'\n成交时间'+date+'\n欢迎度'+pop+'\n\n')
|
||||
tf.close()
|
||||
ten = ten +1
|
||||
if '移动' in l.get('category')[0].get('value'):
|
||||
gj = l.get('category')[3].get('value')
|
||||
name = l.get('name')
|
||||
date = l.get('pay_date')
|
||||
pop = str(l.get('collect'))
|
||||
price = l.get('price')
|
||||
mf = open('mobile.txt','a')
|
||||
mf.write('官阶:'+gj+'\n描述:'+name+'\n价格:'+str(price)+'\n成交时间'+date+'\n欢迎度'+pop+'\n\n')
|
||||
mf.close()
|
||||
mobile = mobile +1
|
||||
except:
|
||||
print('出错')
|
||||
if start_page == pages:
|
||||
print('遍历完成!')
|
||||
notify.send('遍历完成!','ol/十周年/移动'+str(ol)+'/'+str(ten)+'/'+str(mobile))
|
||||
break
|
||||
else:
|
||||
start_page = start_page +1
|
||||
else:
|
||||
break
|
||||
132
脚本库/APP版/账密/阿里云盘签到/2025-04-28_sudojia_aliyundrive_75ec43e2.js
Normal file
132
脚本库/APP版/账密/阿里云盘签到/2025-04-28_sudojia_aliyundrive_75ec43e2.js
Normal file
@@ -0,0 +1,132 @@
|
||||
// # Source: https://github.com/sudojia/AutoTaskScript/blob/script/src/web/sudojia_aliyundrive.js
|
||||
// # Raw: https://raw.githubusercontent.com/sudojia/AutoTaskScript/script/src/web/sudojia_aliyundrive.js
|
||||
// # Repo: sudojia/AutoTaskScript
|
||||
// # Path: src/web/sudojia_aliyundrive.js
|
||||
// # UploadedAt: 2025-04-28T19:26:13+08:00
|
||||
// # SHA256: 75ec43e2a22bf9b15950ca462ac41bcfb78ba18983f400ec906670a29fd035c9
|
||||
// # Category: APP版/账密
|
||||
// # Evidence: username/password/mobile/login
|
||||
//
|
||||
|
||||
/**
|
||||
* 阿里云盘每日签到
|
||||
*
|
||||
* 移除了获取奖励, 目前仅支持签到
|
||||
* export ALI_REFRESH_TOKEN = 'xxxxx'
|
||||
* 多账号用 & 或换行
|
||||
*
|
||||
* @author Telegram@sudojia
|
||||
* @site https://blog.imzjw.cn
|
||||
* @date 2024/5/18
|
||||
*
|
||||
* const $ = new Env('阿里云盘签到')
|
||||
* cron: 35 10 * * *
|
||||
*/
|
||||
const initScript = require('../utils/initScript')
|
||||
const {$, notify, sudojia, checkUpdate} = initScript('阿里云盘签到');
|
||||
// 环境变量
|
||||
const refreshTokenList = process.env.ALI_REFRESH_TOKEN ? process.env.ALI_REFRESH_TOKEN.split(/[\n&]/) : [];
|
||||
// 消息推送
|
||||
let message = '';
|
||||
// 阿里云盘 API 配置
|
||||
const API_CONFIG = {
|
||||
"SIGN_IN_API": "https://member.aliyundrive.com/v1/activity/sign_in_list",
|
||||
"GET_REWARD_API": "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
|
||||
"ACCESS_TOKEN_API": "https://auth.aliyundrive.com/v2/account/token"
|
||||
}
|
||||
|
||||
!(async () => {
|
||||
await checkUpdate($.name, refreshTokenList);
|
||||
for (let i = 0; i < refreshTokenList.length; i++) {
|
||||
const index = i + 1;
|
||||
const refreshToken = refreshTokenList[i];
|
||||
console.log(`\n*****第[${index}]个${$.name}账号*****`);
|
||||
message += `📣====${$.name}账号[${index}]====📣\n`;
|
||||
await main(refreshToken);
|
||||
await $.wait(sudojia.getRandomWait(2300, 2800));
|
||||
}
|
||||
if (message) {
|
||||
await notify.sendNotify(`「${$.name}」`, `${message}`);
|
||||
}
|
||||
})().catch((e) => $.logErr(e)).finally(() => $.done());
|
||||
|
||||
async function main(refreshToken) {
|
||||
const accessToken = await getAccessToken(refreshToken);
|
||||
if (!accessToken) {
|
||||
console.log('获取access_token失败, refresh_token可能有误');
|
||||
return;
|
||||
}
|
||||
await $.wait(sudojia.getRandomWait(1200, 2000));
|
||||
const signInCount = await AliSignIn(refreshToken, accessToken);
|
||||
// await $.wait(1000);
|
||||
// await getReward(accessToken, signInCount);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 access_token
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getAccessToken(refreshToken) {
|
||||
try {
|
||||
const params = {
|
||||
grant_type: 'refresh_token',
|
||||
refresh_token: refreshToken
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.ACCESS_TOKEN_API, 'post', {}, params);
|
||||
if (!data.access_token) {
|
||||
console.log('获取access_token失败, refresh_token可能有误');
|
||||
process.exit(0);
|
||||
}
|
||||
message += `【用户昵称】${data.nick_name}(${data.user_name})\n`;
|
||||
return data.access_token;
|
||||
} catch (e) {
|
||||
$.logErr('获取access_token接口异常:', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function AliSignIn(refreshToken, accessToken) {
|
||||
try {
|
||||
const params = {
|
||||
grant_type: 'refresh_token',
|
||||
refresh_token: refreshToken
|
||||
}
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${accessToken}`
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.SIGN_IN_API, 'post', headers, params);
|
||||
console.log(data.success ? '签到成功\n' : '签到失败\n');
|
||||
message += data.success ? '【签到状态】签到成功\n' : '【签到状态】签到失败\n'
|
||||
message += `【签到统计】已累计签到${data.result.signInCount}天\n\n`;
|
||||
// 返回签到天数
|
||||
return data.result.signInCount;
|
||||
} catch (e) {
|
||||
$.logErr('请求签到接口异常:', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取签到奖励
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
async function getReward(accessToken, signInCount) {
|
||||
const params = {
|
||||
signInDay: signInCount
|
||||
}
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${accessToken}`
|
||||
}
|
||||
const data = await sudojia.sendRequest(API_CONFIG.GET_REWARD_API, 'post', headers, params);
|
||||
console.log(`奖励: ${data.result.notice}\n`);
|
||||
message += `【签到奖励】${data.result.notice}\n`
|
||||
}
|
||||
Reference in New Issue
Block a user