mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-06-04 21:01:17 +08:00
92 lines
3.3 KiB
JavaScript
92 lines
3.3 KiB
JavaScript
const Base = require("./Base");
|
|
const BiliAPI = require("./BiliAPI");
|
|
const { trigger } = require("./GithubAPI");
|
|
const Public = require("./Public");
|
|
const GlobalVar = require('./GlobalVar');
|
|
const { followWhiteList } = require("./config");
|
|
const config = require("./config");
|
|
|
|
/** Github运行限制时间*/
|
|
const MAX_TIME = 6 * 60 * 60 * 1000 - 6 * 60 * 1000;
|
|
/**动态偏移量 */
|
|
let offset = '0';
|
|
|
|
/**
|
|
* 获取关注分区里的uid
|
|
* @returns { Promise<number[]> }
|
|
*/
|
|
async function getFollowList() {
|
|
const tagid = await BiliAPI.checkMyPartition(config.clear_partition);
|
|
if (typeof tagid === 'undefined') { Base.tooltip.log('未能成功获取关注分区id'); return }
|
|
let rmup = [];
|
|
for (let index = 1; index < 42; index++) {
|
|
const uids = await BiliAPI.getPartitionUID(tagid, index);
|
|
await Base.delay(2e3);
|
|
if (!uids.length) break;
|
|
rmup.push(...uids)
|
|
}
|
|
return followWhiteList.length
|
|
? rmup.filter(uid => followWhiteList.split(',').indexOf(String(uid)) === -1)
|
|
: rmup;
|
|
}
|
|
|
|
/**
|
|
* 清理动态和关注
|
|
*/
|
|
async function clear() {
|
|
config.updata(process.env.NUMBER);
|
|
const { clear_max_day, clear_remove_all_force, clear_remove_dynamic, clear_remove_attention } = config;
|
|
if (!process.env.LOCALLAUNCH) {
|
|
setTimeout(() => {
|
|
Base.tooltip.log('运行时间超过Actions上限 - 6小时');
|
|
Base.tooltip.log('尝试再次触发clear 并中止此任务')
|
|
trigger('clear.yml').then(() => {
|
|
process.exit(0);
|
|
})
|
|
}, MAX_TIME);
|
|
}
|
|
let success = true;
|
|
const uid_list = await getFollowList();
|
|
const now = Date.now() / 1000;
|
|
let before_separate = [];
|
|
for (let index = 0; index < 1000; index++) {
|
|
const { allModifyDynamicResArray, offset: _offset } = await Public.prototype.checkAllDynamic(GlobalVar.get("myUID"), 1, 5 * 1000, offset);
|
|
offset = _offset;
|
|
Base.tooltip.log(`开始读取第${index + 1}页(12条)`);
|
|
for (let index = 0; index < allModifyDynamicResArray.length; index++) {
|
|
const res = allModifyDynamicResArray[index];
|
|
const { type, dynamic_id, createtime } = res;
|
|
if (type === 1) {
|
|
const { origin_uid } = res;
|
|
if (clear_remove_all_force
|
|
|| (now - createtime) > 86400 * clear_max_day) {
|
|
/* 移除动态 */
|
|
if (clear_remove_dynamic) {
|
|
success = await BiliAPI.rmDynamic(dynamic_id)
|
|
}
|
|
|
|
/* 取消关注 */
|
|
if (clear_remove_attention
|
|
&& (clear_remove_all_force
|
|
|| (before_separate.indexOf(origin_uid) === -1
|
|
&& uid_list.indexOf(origin_uid) > -1))) {
|
|
success = await BiliAPI.cancelAttention(origin_uid);
|
|
}
|
|
|
|
/* 延时 */
|
|
await Base.delay(8e3);
|
|
|
|
if (!success) break;
|
|
} else {
|
|
before_separate.push(origin_uid)
|
|
}
|
|
}
|
|
}
|
|
Base.tooltip.log(`第${index}页中的转发动态与关注全部处理成功`)
|
|
if (offset === '0' || !success) break;
|
|
}
|
|
return
|
|
}
|
|
|
|
|
|
module.exports = { clear } |