diff --git a/src/common/utils/db.ts b/src/common/utils/db.ts index 01df04ff..a200089d 100644 --- a/src/common/utils/db.ts +++ b/src/common/utils/db.ts @@ -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); + } + ); + } } diff --git a/src/onebot11/event/notice/OB11GroupIncreaseEvent.ts b/src/onebot11/event/notice/OB11GroupIncreaseEvent.ts index 7e875d50..99f891e8 100644 --- a/src/onebot11/event/notice/OB11GroupIncreaseEvent.ts +++ b/src/onebot11/event/notice/OB11GroupIncreaseEvent.ts @@ -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)) } } diff --git a/src/onebot11/main.ts b/src/onebot11/main.ts index edcb114d..d135cffa 100644 --- a/src/onebot11/main.ts +++ b/src/onebot11/main.ts @@ -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).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') {