Skip to content

Commit 57cb132

Browse files
committed
fix: LiveBiliDynamic mention user
1 parent cf73848 commit 57cb132

File tree

8 files changed

+21
-16
lines changed

8 files changed

+21
-16
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "yz-yuki-plugin",
3-
"version": "2.0.6-6",
3+
"version": "2.0.6-7",
44
"description": "优纪插件,yunzaijs 关于 微博推送、B站推送 等功能的拓展插件",
55
"author": "snowtafir",
66
"type": "module",

src/apps/weibo.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Messages, EventType } from 'yunzaijs';
2-
import { WeiboQuery } from '@src/models/weibo/weibo.query';
3-
import { WeiboTask } from '@src/models/weibo/weibo.task';
2+
import { WeiboQuery } from '@src/models/weibo/weibo.main.query';
3+
import { WeiboTask } from '@src/models/weibo/weibo.main.task';
44
import Config from '@src/utils/config';
55
import { _paths } from '@src/utils/paths';
6-
import { WeiboGetWebData } from '@src/models/weibo/weibo.get.web.data';
6+
import { WeiboGetWebData } from '@src/models/weibo/weibo.main.get.web.data';
77

88
declare const logger: any;
99

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import path from 'path';
55
import { _paths } from '@src/utils/paths';
66
import * as apps from '@src/apps/index';
77
import { BiliTask } from '@src/models/bilibili/bilibili.main.task';
8-
import { WeiboTask } from '@src/models/weibo/weibo.task';
8+
import { WeiboTask } from '@src/models/weibo/weibo.main.task';
99
declare const logger: any;
1010
type RulesType = {
1111
reg: RegExp | string;

src/models/bilibili/bilibili.main.task.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ export class BiliTask {
4343
let biliConfigData = await Config.getUserConfig('bilibili', 'config');
4444
let biliPushData = await Config.getUserConfig('bilibili', 'push');
4545
let interval: number = biliConfigData?.interval || 7200;
46+
logger.debug(`当前B站功能配置:${JSON.stringify(biliConfigData)}`);
4647
const uidMap: Map<any, Map<string, any>> = new Map(); // 存放group 和 private 对应所属 uid 与推送信息的映射
4748
const dynamicList = {}; // 存放获取的所有动态,键为 uid,值为动态数组
4849

@@ -207,10 +208,13 @@ export class BiliTask {
207208
}
208209
if (sended) return; // 如果已经发送过,则直接返回
209210

210-
let liveAtAll: boolean = biliConfigData.liveAtAll === true ? true : false; // 直播动态是否@全体成员,默认false
211+
let liveAtAll: boolean = !!biliConfigData.liveAtAll === true ? true : false; // 直播动态是否@全体成员,默认false
211212
let liveAtAllCD: number = biliConfigData.liveAtAllCD || 1800; // 直播动态@全体成员 冷却时间CD,默认 30 分钟
212213
let liveAtAllMark: number | string | null = await Redis.get(`${markKey}${chatId}:liveAtAllMark`); // 直播动态@全体成员标记,默认 0
213-
let liveAtAllGroupList = new Set(Array.isArray(biliConfigData.liveAtAllGroupList) ? biliConfigData.liveAtAllGroupList : []); // 直播动态@全体成员的群组列表,默认空数组,为空则不进行@全体成员操作
214+
// 直播动态@全体成员的群组列表,默认空数组,为空则不进行@全体成员操作
215+
let liveAtAllGroupList = new Set(
216+
Array.isArray(biliConfigData?.liveAtAllGroupList) ? Array.from(biliConfigData.liveAtAllGroupList).map(item => String(item)) : []
217+
);
214218

215219
if (!!biliConfigData.pushMsgMode) {
216220
const { data, uid } = await BiliQuery.formatDynamicData(pushDynamicData); // 处理动态数据
@@ -250,7 +254,7 @@ export class BiliTask {
250254

251255
global?.logger?.mark('优纪插件:B站动态执行推送');
252256

253-
if (liveAtAll && liveAtAllMark && extentData?.type === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(chatId)) {
257+
if (liveAtAll && !liveAtAllMark && extentData?.type === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(String(chatId))) {
254258
try {
255259
await this.sendMessage(chatId, bot_id, chatType, Segment.at('all'));
256260
await Redis.set(`${markKey}${chatId}:liveAtAllMark`, 1, { EX: liveAtAllCD }); // 设置直播动态@全体成员标记为 1
@@ -285,9 +289,9 @@ export class BiliTask {
285289
}
286290

287291
let mergeTextPic: boolean = !!biliConfigData.mergeTextPic === false ? false : true; // 是否合并文本和图片,默认为 true
288-
if (mergeTextPic) {
292+
if (mergeTextPic === true) {
289293
const mergeMsg = [...dynamicMsg.msg, ...dynamicMsg.pics];
290-
if (liveAtAll && liveAtAllMark && dynamicMsg.dynamicType === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(chatId)) {
294+
if (liveAtAll && !liveAtAllMark && dynamicMsg.dynamicType === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(String(chatId))) {
291295
try {
292296
await this.sendMessage(chatId, bot_id, chatType, Segment.at('all'));
293297
await Redis.set(`${markKey}${chatId}:liveAtAllMark`, 1, { EX: liveAtAllCD }); // 设置直播动态@全体成员标记为 1
@@ -298,7 +302,7 @@ export class BiliTask {
298302
}
299303
await this.sendMessage(chatId, bot_id, chatType, mergeMsg);
300304
} else {
301-
if (liveAtAll && liveAtAllMark && dynamicMsg.dynamicType === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(chatId)) {
305+
if (liveAtAll && !liveAtAllMark && dynamicMsg.dynamicType === 'DYNAMIC_TYPE_LIVE_RCMD' && liveAtAllGroupList.has(String(chatId))) {
302306
try {
303307
await this.sendMessage(chatId, bot_id, chatType, Segment.at('all'));
304308
await Redis.set(`${markKey}${chatId}:liveAtAllMark`, 1, { EX: liveAtAllCD }); // 设置直播动态@全体成员标记为 1
File renamed without changes.

src/models/weibo/weibo.get.web.data.ts renamed to src/models/weibo/weibo.main.get.web.data.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import axios from 'axios';
22
import { EventType } from 'yunzaijs';
3-
import { WeiboApi } from '@src/models/weibo/weibo.api';
4-
import { WeiboQuery } from '@src/models/weibo/weibo.query';
3+
import { WeiboApi } from '@src/models/weibo/weibo.main.api';
4+
import { WeiboQuery } from '@src/models/weibo/weibo.main.query';
55

66
declare const logger: any;
77

src/models/weibo/weibo.query.ts renamed to src/models/weibo/weibo.main.query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import moment from 'moment';
22
import fetch from 'node-fetch';
3-
import { WeiboApi } from '@src/models/weibo/weibo.api';
3+
import { WeiboApi } from '@src/models/weibo/weibo.main.api';
44
import { Segment } from 'yunzaijs';
55
import { JSDOM } from 'jsdom';
66

src/models/weibo/weibo.task.ts renamed to src/models/weibo/weibo.main.task.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { MainProps } from '@src/components/dynamic/MainPage';
44
import Config from '@src/utils/config';
55
import { renderPage } from '@src/utils/image';
66
import { ScreenshotOptions } from '@src/utils/puppeteer.render';
7-
import { WeiboGetWebData } from '@src/models/weibo/weibo.get.web.data';
8-
import { WeiboQuery } from '@src/models/weibo/weibo.query';
7+
import { WeiboGetWebData } from '@src/models/weibo/weibo.main.get.web.data';
8+
import { WeiboQuery } from '@src/models/weibo/weibo.main.query';
99

1010
declare const logger: any;
1111

@@ -24,6 +24,7 @@ export class WeiboTask {
2424
let weiboConfigData = await Config.getUserConfig('weibo', 'config');
2525
let weiboPushData = await Config.getUserConfig('weibo', 'push');
2626
let interval: number = weiboConfigData.interval || 7200; // 推送间隔时间,单位为秒,默认2小时
27+
logger.debug(`当前微博功能配置:${JSON.stringify(weiboConfigData)}`);
2728
const uidMap: Map<any, Map<string, any>> = new Map(); // 存放group 和 private 对应所属 uid 与推送信息的映射
2829
const dynamicList = {}; // 存放获取的所有动态,键为 uid,值为动态数组
2930

0 commit comments

Comments
 (0)