mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
optimize
This commit is contained in:
@@ -111,7 +111,6 @@ export class NTQQGroupApi extends Service {
|
||||
'nodeIKernelGroupService/getSingleScreenNotifies',
|
||||
[{ doubt: false, startSeq: '', number: num }, null],
|
||||
{
|
||||
|
||||
cbCmd: ReceiveCmdS.GROUP_NOTIFY,
|
||||
afterFirstCmd: false,
|
||||
}
|
||||
@@ -220,17 +219,7 @@ export class NTQQGroupApi extends Service {
|
||||
}
|
||||
|
||||
async getGroupRemainAtTimes(groupCode: string) {
|
||||
return await invoke<
|
||||
GeneralCallResult & {
|
||||
atInfo: {
|
||||
canAtAll: boolean
|
||||
RemainAtAllCountForUin: number
|
||||
RemainAtAllCountForGroup: number
|
||||
atTimesMsg: string
|
||||
canNotAtAllMsg: ''
|
||||
}
|
||||
}
|
||||
>(NTMethod.GROUP_AT_ALL_REMAIN_COUNT, [{ groupCode }, null])
|
||||
return await invoke(NTMethod.GROUP_AT_ALL_REMAIN_COUNT, [{ groupCode }, null])
|
||||
}
|
||||
|
||||
async removeGroupEssence(groupCode: string, msgId: string) {
|
||||
@@ -335,4 +324,13 @@ export class NTQQGroupApi extends Service {
|
||||
}
|
||||
}, null])
|
||||
}
|
||||
|
||||
async getGroupHonorList(groupCode: string) {
|
||||
// 还缺点东西
|
||||
return await invoke('nodeIKernelGroupService/getGroupHonorList', [{
|
||||
req: {
|
||||
groupCode: [+groupCode]
|
||||
}
|
||||
}, null])
|
||||
}
|
||||
}
|
||||
|
@@ -11,16 +11,6 @@ declare module 'cordis' {
|
||||
}
|
||||
}
|
||||
|
||||
function generateMsgId() {
|
||||
const timestamp = Math.floor(Date.now() / 1000)
|
||||
const random = Math.floor(Math.random() * Math.pow(2, 32))
|
||||
const buffer = Buffer.alloc(8)
|
||||
buffer.writeUInt32BE(timestamp, 0)
|
||||
buffer.writeUInt32BE(random, 4)
|
||||
const msgId = BigInt('0x' + buffer.toString('hex')).toString()
|
||||
return msgId
|
||||
}
|
||||
|
||||
export class NTQQMsgApi extends Service {
|
||||
static inject = ['ntUserApi']
|
||||
|
||||
@@ -102,7 +92,7 @@ export class NTQQMsgApi extends Service {
|
||||
}
|
||||
|
||||
async sendMsg(peer: Peer, msgElements: SendMessageElement[], timeout = 10000) {
|
||||
const msgId = generateMsgId()
|
||||
const msgId = await this.generateMsgUniqueId(peer.chatType)
|
||||
peer.guildId = msgId
|
||||
const data = await invoke<{ msgList: RawMessage[] }>(
|
||||
'nodeIKernelMsgService/sendMsg',
|
||||
@@ -275,4 +265,8 @@ export class NTQQMsgApi extends Service {
|
||||
forceRefresh: true
|
||||
}, null])
|
||||
}
|
||||
|
||||
async generateMsgUniqueId(chatType: number) {
|
||||
return await invoke('nodeIKernelMsgService/generateMsgUniqueId', [{ chatType }])
|
||||
}
|
||||
}
|
||||
|
@@ -109,9 +109,9 @@ export class NTQQWebApi extends Service {
|
||||
}
|
||||
|
||||
//实现未缓存 考虑2h缓存
|
||||
async getGroupHonorInfo(groupCode: string, getType: WebHonorType) {
|
||||
const getDataInternal = async (Internal_groupCode: string, Internal_type: number) => {
|
||||
const url = 'https://qun.qq.com/interactive/honorlist?gc=' + Internal_groupCode + '&type=' + Internal_type.toString()
|
||||
async getGroupHonorInfo(groupCode: string, getType: string) {
|
||||
const getDataInternal = async (groupCode: string, type: number) => {
|
||||
const url = 'https://qun.qq.com/interactive/honorlist?gc=' + groupCode + '&type=' + type
|
||||
let resJson
|
||||
try {
|
||||
const res = await RequestUtil.HttpGetText(url, 'GET', '', { 'Cookie': cookieStr })
|
||||
@@ -119,7 +119,7 @@ export class NTQQWebApi extends Service {
|
||||
if (match) {
|
||||
resJson = JSON.parse(match[1].trim())
|
||||
}
|
||||
if (Internal_type === 1) {
|
||||
if (type === 1) {
|
||||
return resJson?.talkativeList
|
||||
} else {
|
||||
return resJson?.actorList
|
||||
|
@@ -7,7 +7,20 @@ import {
|
||||
import { GeneralCallResult } from './common'
|
||||
|
||||
export interface NodeIKernelGroupService {
|
||||
getGroupHonorList(req: { groupCode: number[] }): unknown
|
||||
getGroupHonorList(req: { groupCode: number[] }): Promise<{
|
||||
errCode: number
|
||||
errMsg: string
|
||||
groupMemberHonorList: {
|
||||
honorList: {
|
||||
groupCode: string
|
||||
id: number[]
|
||||
isGray: number
|
||||
}[]
|
||||
cacheTs: number
|
||||
honorInfos: unknown[]
|
||||
joinTime: number
|
||||
}
|
||||
}>
|
||||
|
||||
getUinByUids(uins: string[]): Promise<{
|
||||
errCode: number
|
||||
|
@@ -1,22 +1,19 @@
|
||||
import { WebHonorType } from '@/ntqqapi/api'
|
||||
import { ActionName } from '../types'
|
||||
import { BaseAction } from '../BaseAction'
|
||||
import { BaseAction, Schema } from '../BaseAction'
|
||||
|
||||
interface Payload {
|
||||
group_id: number
|
||||
type?: WebHonorType
|
||||
group_id: number | string
|
||||
type: 'talkative' | 'performer' | 'legend' | 'strong_newbie' | 'emotion' | 'all'
|
||||
}
|
||||
|
||||
export class GetGroupHonorInfo extends BaseAction<Payload, unknown> {
|
||||
actionName = ActionName.GetGroupHonorInfo
|
||||
payloadSchema = Schema.object({
|
||||
group_id: Schema.union([Number, String]).required(),
|
||||
type: Schema.union(['talkative', 'performer', 'legend', 'strong_newbie', 'emotion', 'all']).default('all')
|
||||
})
|
||||
|
||||
protected async _handle(payload: Payload) {
|
||||
if (!payload.group_id) {
|
||||
throw '缺少参数group_id'
|
||||
}
|
||||
if (!payload.type) {
|
||||
payload.type = WebHonorType.ALL
|
||||
}
|
||||
return await this.ctx.ntWebApi.getGroupHonorInfo(payload.group_id.toString(), payload.type)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user