Merge pull request #45 from po-lan/main

对 get_group_member_list 增强
This commit is contained in:
手瓜一十雪 2024-05-28 22:49:21 +08:00 committed by GitHub
commit e1f049229c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 17 deletions

View File

@ -484,27 +484,25 @@ class DBUtil extends DBUtilBase {
userId: number,
time: number
) {
if (ob11Config.GroupLocalTimeRecord[0] == -1 || ob11Config.GroupLocalTimeRecord.includes(groupId))
this.LURCache.set(groupId, userId, time)
this.LURCache.set(groupId, userId, time)
}
async insertJoinTime(
groupId: number,
userId: number,
time: number
) {
if (ob11Config.GroupLocalTimeRecord[0] == -1 || ob11Config.GroupLocalTimeRecord.includes(groupId)){
await this.createGroupInfoTimeTableIfNotExist(groupId);
this.db!.all(
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
[userId, time, time],
(err) => {
if (err)
logError(err),
Promise.reject(),
console.log("插入入群时间失败", userId, groupId);
}
);
}
await this.createGroupInfoTimeTableIfNotExist(groupId);
this.db!.all(
`INSERT OR REPLACE INTO "${groupId}" (user_id, last_sent_time, join_time) VALUES (?,?,?)`,
[userId, time, time],
(err) => {
if (err)
logError(err),
Promise.reject(),
console.log("插入入群时间失败", userId, groupId);
}
);
}
}

View File

@ -1,5 +1,6 @@
import { OB11GroupNoticeEvent } from './OB11GroupNoticeEvent';
import { dbUtil } from '@/common/utils/db';
import { ob11Config } from '@/onebot11/config';
type GroupIncreaseSubType = 'approve' | 'invite';
export class OB11GroupIncreaseEvent extends OB11GroupNoticeEvent {
@ -13,7 +14,8 @@ export class OB11GroupIncreaseEvent extends OB11GroupNoticeEvent {
this.user_id = userId;
this.sub_type = subType;
dbUtil.insertJoinTime(groupId, userId, Math.floor(Date.now() / 1000))
if((ob11Config.GroupLocalTimeRecord[0] == -1 || ob11Config.GroupLocalTimeRecord.includes(groupId)))
dbUtil.insertJoinTime(groupId, userId, Math.floor(Date.now() / 1000))
}
}

View File

@ -286,7 +286,8 @@ export class NapCatOnebot11 {
}
if (msg.post_type === 'message') {
logMessage(msg as OB11Message).then().catch(logError);
if (msg.message_type == 'group' && msg.group_id && (ob11Config.GroupLocalTimeRecord as Array<number>).find((item) => item == msg.group_id)) {
// 大概测试了一下10000个以内 includes 和 find 性能差距不大
if (msg.message_type == 'group' && msg.group_id && (ob11Config.GroupLocalTimeRecord[0] === -1 || ob11Config.GroupLocalTimeRecord.find(gid=>gid == msg.group_id))) {
dbUtil.insertLastSentTime(msg.group_id, msg.user_id, msg.time);
}
} else if (msg.post_type === 'notice') {