mirror of
https://github.com/shanmiteko/LotteryAutoScript.git
synced 2026-07-22 21:13:47 +08:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c85ea6bc77 | ||
|
|
eae72dbdd7 | ||
|
|
111602f248 | ||
|
|
d366e252e9 | ||
|
|
40dcc5f879 | ||
|
|
8c0d96afc6 | ||
|
|
09b6db4f8b | ||
|
|
24e16ed8bc |
@@ -1,5 +1,28 @@
|
||||
<!-- markdownlint-disable MD036 MD024-->
|
||||
# CHANGELOG
|
||||
## 主要变化(2.3.6)
|
||||
* eae72db feat: minfollower填0可关闭本地粉丝数筛选
|
||||
* 111602f perf: 日志显示是否转发过
|
||||
* d366e25 fix: 转发动态时非限制性错误码(#72)
|
||||
## 较上一版本变化
|
||||
* 变更可执行文件
|
||||
|
||||
_如果之前版本小于上一版本,请查看[CHANGELOG](CHANGELOG.md)变更说明_
|
||||
|
||||
**Full Changelog**: https://github.com/shanmiteko/LotteryAutoScript/compare/v2.3.5...v2.3.6
|
||||
|
||||
## 主要变化(2.3.5)
|
||||
* 8c0d96a refactor: 检测是否已经发送过随机动态(#71)
|
||||
* 09b6db4 feat: 新增设置`check_session_pages`(#66)
|
||||
## 较上一版本变化
|
||||
* 变更可执行文件
|
||||
* [my_config.js](my_config.example.js)增加
|
||||
- `check_session_pages` - 检查私信页数
|
||||
|
||||
_如果之前版本小于上一版本,请查看[CHANGELOG](CHANGELOG.md)变更说明_
|
||||
|
||||
**Full Changelog**: https://github.com/shanmiteko/LotteryAutoScript/compare/v2.3.4...v2.3.5
|
||||
|
||||
## 主要变化(2.3.4)
|
||||
* 1962d97 fix: 过滤专栏时间失效(#67)
|
||||
## 较上一版本变化
|
||||
|
||||
+3
-2
@@ -10,7 +10,7 @@ const bili = require('./net/bili')
|
||||
async function isMe() {
|
||||
let desp = '';
|
||||
const
|
||||
{ notice_key_words, update_session_wait, get_session_wait } = config,
|
||||
{ notice_key_words, update_session_wait, get_session_wait, check_session_pages } = config,
|
||||
UnreadAtNum = await bili.getUnreadAtNum(),
|
||||
UnreadSessionNum = await bili.getUnreadSessionNum(),
|
||||
{ follow_unread, unfollow_unread } = UnreadSessionNum || { unfollow_unread: 0, follow_unread: 0 };
|
||||
@@ -34,6 +34,7 @@ async function isMe() {
|
||||
const check = async (type) => {
|
||||
let session_t = '';
|
||||
let MySession = await bili.getSessionInfo(type)
|
||||
log.info("准备检查私信", check_session_pages + "页")
|
||||
for (const index of infiniteNumber()) {
|
||||
for (const Session of MySession.data) {
|
||||
const { sender_uid, session_ts, timestamp, unread_count, talker_id, msg_seqno } = Session;
|
||||
@@ -53,7 +54,7 @@ async function isMe() {
|
||||
await delay(update_session_wait);
|
||||
}
|
||||
}
|
||||
if (MySession.has_more && index < 16) {
|
||||
if (MySession.has_more && index < check_session_pages) {
|
||||
await delay(get_session_wait);
|
||||
MySession = await bili.getSessionInfo(type, session_t)
|
||||
} else {
|
||||
|
||||
+13
-8
@@ -110,14 +110,19 @@ class Monitor extends Searcher {
|
||||
continue
|
||||
}
|
||||
} else if (Lottery.uid[0]) {
|
||||
const followerNum = await bili.getUserInfo(Lottery.uid[0]);
|
||||
if (followerNum < 0) {
|
||||
return 51
|
||||
}
|
||||
if (followerNum < config.minfollower) {
|
||||
log.info('过滤', `粉丝数(${followerNum})小于指定数量`)
|
||||
await delay(filter_wait)
|
||||
continue
|
||||
const { minfollower } = config
|
||||
if (minfollower > 0) {
|
||||
const followerNum = await bili.getUserInfo(Lottery.uid[0]);
|
||||
if (followerNum < 0) {
|
||||
return 51
|
||||
}
|
||||
if (followerNum < minfollower) {
|
||||
log.info('过滤', `粉丝数(${followerNum})小于指定数量`)
|
||||
await delay(filter_wait)
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
log.info('过滤', "不过滤粉丝数")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-5
@@ -237,8 +237,6 @@ class Searcher {
|
||||
const results = await pre
|
||||
, { origin_dynamic_id } = cur;
|
||||
|
||||
log.info('获取动态', `查看源动态(${origin_dynamic_id})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(origin_dynamic_id)
|
||||
|
||||
if (card) {
|
||||
@@ -246,6 +244,11 @@ class Searcher {
|
||||
|
||||
const { is_liked } = parseDynamicCard(card)
|
||||
|
||||
log.info('获取动态', `查看源动态(${origin_dynamic_id})是否点赞 (${length--})`)
|
||||
if (is_liked) {
|
||||
log.info('获取动态', `动态(${origin_dynamic_id})已转发过`)
|
||||
}
|
||||
|
||||
return [...results, {
|
||||
lottery_info_type: 'uid',
|
||||
create_time: cur.origin_create_time,
|
||||
@@ -359,7 +362,6 @@ class Searcher {
|
||||
/**遍历某专栏中的dyids */
|
||||
for (const dyid of dyids_set) {
|
||||
if (dyid.length === utils.dyid_length) {
|
||||
log.info('获取动态', `查看专栏中所提及动态(${dyid})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(dyid)
|
||||
|
||||
@@ -369,6 +371,7 @@ class Searcher {
|
||||
const parsed_card = parseDynamicCard(card)
|
||||
, { is_liked } = parsed_card;
|
||||
|
||||
log.info('获取动态', `查看专栏中所提及动态(${dyid})是否点赞 (${length--})`)
|
||||
if (is_liked) {
|
||||
log.info('获取动态', `动态(${dyid})已转发过`)
|
||||
_weight += 1;
|
||||
@@ -439,8 +442,6 @@ class Searcher {
|
||||
const results = await pre
|
||||
, { dyid } = cur;
|
||||
|
||||
log.info('获取动态', `查看动态(${dyid})是否点赞 (${length--})`)
|
||||
|
||||
const card = await bili.getOneDynamicByDyid(dyid)
|
||||
|
||||
if (card) {
|
||||
@@ -448,6 +449,11 @@ class Searcher {
|
||||
|
||||
const { is_liked } = parseDynamicCard(card)
|
||||
|
||||
log.info('获取动态', `查看动态(${dyid})是否点赞 (${length--})`)
|
||||
if (is_liked) {
|
||||
log.info('获取动态', `动态(${dyid})已转发过`)
|
||||
}
|
||||
|
||||
cur.is_liked = is_liked
|
||||
|
||||
return [...results, cur]
|
||||
|
||||
@@ -269,6 +269,11 @@ const config = {
|
||||
"中奖|获得|填写|写上|提供|收货地址|支付宝账号|码|大会员"
|
||||
],
|
||||
|
||||
/**
|
||||
* - 获取私信页数
|
||||
*/
|
||||
check_session_pages: 16,
|
||||
|
||||
/**
|
||||
* - 清理白名单uid或dyid
|
||||
* - 英文逗号分隔 如: 1,2,3
|
||||
@@ -340,6 +345,7 @@ const config = {
|
||||
* @param {string} n
|
||||
*/
|
||||
updata(n) {
|
||||
this.init()
|
||||
this.setObject(this.raw_config()[`config_${n}`])
|
||||
},
|
||||
|
||||
|
||||
+23
-19
@@ -8,32 +8,36 @@ const utils = require("../utils");
|
||||
* @returns
|
||||
*/
|
||||
async function randomDynamic(num) {
|
||||
const { create_dy_type, dy_contents, random_dynamic_wait } = config;
|
||||
let dynamics = []
|
||||
const
|
||||
{ create_dy_type, dy_contents, random_dynamic_wait } = config,
|
||||
hasShareVideo = create_dy_type === -1 || create_dy_type === 1,
|
||||
hasRandomCreate = create_dy_type === -1 || create_dy_type === 0 || typeof create_dy_type === 'undefined';
|
||||
|
||||
if (create_dy_type === -1 || create_dy_type === 0 || typeof create_dy_type === 'undefined') {
|
||||
if (hasShareVideo) {
|
||||
dynamics = await bili.getTopRcmd()
|
||||
for (let index = 0; dynamics.length < num; index++) {
|
||||
dynamics.push(...await bili.getTopRcmd())
|
||||
}
|
||||
}
|
||||
|
||||
if (hasRandomCreate) {
|
||||
for (let index = 0; index < num; index++) {
|
||||
await bili.createDynamic(utils.getRandomOne(dy_contents));
|
||||
await utils.delay(random_dynamic_wait);
|
||||
dynamics.push(utils.getRandomOne(dy_contents))
|
||||
}
|
||||
}
|
||||
|
||||
if (create_dy_type === -1 || create_dy_type === 1) {
|
||||
let videos = await bili.getTopRcmd()
|
||||
for (let index = 0; videos.length < num; index++) {
|
||||
videos.push(...await bili.getTopRcmd())
|
||||
}
|
||||
|
||||
await utils.try_for_each(videos, async ([uid, aid]) => {
|
||||
if (num--) {
|
||||
await bili.shareVideo(uid, aid)
|
||||
await utils.delay(random_dynamic_wait)
|
||||
return false
|
||||
await utils.try_for_each(
|
||||
utils.shuffle(dynamics).slice(0, num),
|
||||
async (dynamic) => {
|
||||
await utils.delay(random_dynamic_wait)
|
||||
if (dynamic instanceof Array && dynamic.length === 2 && typeof dynamic[0] === "number") {
|
||||
return await bili.shareVideo(...dynamic)
|
||||
} else {
|
||||
return true
|
||||
return await bili.createDynamic(dynamic)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
module.exports = { randomDynamic }
|
||||
+4
-2
@@ -10,8 +10,10 @@ const { log } = utils;
|
||||
async function createRandomDynamic(num) {
|
||||
if (config.create_dy) {
|
||||
log.info('随机动态', `准备创建${num}条随机动态`);
|
||||
const Dynamic = await Searcher.checkAllDynamic(global_var.get("myUID"), 1);
|
||||
if ((Dynamic.allModifyDynamicResArray[0] || { type: 0 }).type === 1) {
|
||||
const
|
||||
{ allModifyDynamicResArray } = await Searcher.checkAllDynamic(global_var.get("myUID"), 1),
|
||||
{ type, orig_type } = allModifyDynamicResArray[0] || {};
|
||||
if (type === 1 && orig_type !== 8) {
|
||||
await randomDynamic(num)
|
||||
} else {
|
||||
log.info('随机动态', '已有非抽奖动态故无需创建');
|
||||
|
||||
+9
-1
@@ -748,6 +748,9 @@ const bili_client = {
|
||||
} else if (res.code === 1101004) {
|
||||
log.warn('转发动态', '该动态不能转发分享');
|
||||
return 0;
|
||||
} else if (res.code === 2201116) {
|
||||
log.warn('转发动态', '请求数据发生错误,请刷新或稍后重试');
|
||||
return 0;
|
||||
} else {
|
||||
log.error('转发动态', `转发动态失败\n${responseText}`);
|
||||
return 1;
|
||||
@@ -760,7 +763,7 @@ const bili_client = {
|
||||
* @property {number} img_height
|
||||
* 发布一条动态
|
||||
* @param { string | Picture[] } content
|
||||
* @return {Promise<void>}
|
||||
* @return {Promise<boolean>} isError true
|
||||
*/
|
||||
async createDynamic(content) {
|
||||
let
|
||||
@@ -790,8 +793,10 @@ const bili_client = {
|
||||
});
|
||||
if (/^{"code":0/.test(responseText)) {
|
||||
log.info('发布动态', `成功创建一条随机内容的动态\n${JSON.stringify(content)}\n`);
|
||||
return false
|
||||
} else {
|
||||
log.error('发布动态', `发布动态失败\n${JSON.stringify(content)}\n${responseText}`);
|
||||
return true
|
||||
}
|
||||
},
|
||||
/**
|
||||
@@ -820,6 +825,7 @@ const bili_client = {
|
||||
* 分享视频
|
||||
* @param {number} uid
|
||||
* @param {number} aid
|
||||
* @return {boolean} isError true
|
||||
*/
|
||||
async shareVideo(uid, aid) {
|
||||
const responseText = await post({
|
||||
@@ -836,8 +842,10 @@ const bili_client = {
|
||||
});
|
||||
if (/^{"code":0/.test(responseText)) {
|
||||
log.info('转发视频', `成功转发视频(av${aid})`);
|
||||
return false
|
||||
} else {
|
||||
log.error('转发视频', `转发失败\n${responseText}`);
|
||||
return true
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -283,6 +283,11 @@ module.exports = Object.freeze({
|
||||
"中奖|获得|填写|写上|提供|收货地址|支付宝账号|码|大会员"
|
||||
],
|
||||
|
||||
/**
|
||||
* - 获取私信页数
|
||||
*/
|
||||
check_session_pages: 16,
|
||||
|
||||
/**
|
||||
* - 清理白名单uid或dyid
|
||||
* - 英文逗号分隔 如: 1,2,3
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lottery-auto-script",
|
||||
"version": "2.3.4",
|
||||
"version": "2.3.6",
|
||||
"description": "自动参与B站动态抽奖",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user