This commit is contained in:
idranme 2024-09-23 23:34:52 +08:00
parent 277e418cf3
commit 3dc9940ac9
No known key found for this signature in database
GPG Key ID: 926F7B5B668E495F
4 changed files with 48 additions and 38 deletions

View File

@ -293,7 +293,7 @@ export class NTQQGroupApi extends Service {
cmdCB: (payload, result) => payload.fileInfo.reqId === result
}
)
return data.fileInfo.item
return data.fileInfo
}
async publishGroupBulletin(groupCode: string, req: PublishGroupBulletinReq) {

View File

@ -1,11 +1,11 @@
import { BaseAction, Schema } from '../BaseAction'
import { ActionName } from '../types'
import { OB11GroupFile, OB11GroupFileFolder } from '@/onebot11/types'
import { OnGroupFileInfoUpdateParams } from '@/ntqqapi/types'
interface Payload {
group_id: string | number
group_id: number | string
folder_id: string
file_count: string | number
}
interface Response {
@ -17,19 +17,27 @@ export class GetGroupFilesByFolder extends BaseAction<Payload, Response> {
actionName = ActionName.GoCQHTTP_GetGroupFilesByFolder
payloadSchema = Schema.object({
group_id: Schema.union([Number, String]).required(),
folder_id: Schema.string().required(),
file_count: Schema.union([Number, String]).default(50)
folder_id: Schema.string().required()
})
async _handle(payload: Payload) {
const data = await this.ctx.ntGroupApi.getGroupFileList(payload.group_id.toString(), {
const groupId = payload.group_id.toString()
const data: OnGroupFileInfoUpdateParams['item'] = []
let nextIndex: number | undefined
while (nextIndex !== 0) {
const res = await this.ctx.ntGroupApi.getGroupFileList(groupId, {
sortType: 1,
fileCount: +payload.file_count,
startIndex: 0,
fileCount: 100,
startIndex: nextIndex ?? 0,
sortOrder: 2,
showOnlinedocFolder: 0,
folderId: payload.folder_id
})
data.push(...res.item)
nextIndex = res.nextIndex
}
return {
files: data.filter(item => item.fileInfo)
.map(item => {

View File

@ -1,10 +1,10 @@
import { BaseAction, Schema } from '../BaseAction'
import { ActionName } from '../types'
import { OB11GroupFile, OB11GroupFileFolder } from '../../types'
import { OnGroupFileInfoUpdateParams } from '@/ntqqapi/types'
interface Payload {
group_id: string | number
file_count: string | number
group_id: number | string
}
interface Response {
@ -15,18 +15,26 @@ interface Response {
export class GetGroupRootFiles extends BaseAction<Payload, Response> {
actionName = ActionName.GoCQHTTP_GetGroupRootFiles
payloadSchema = Schema.object({
group_id: Schema.union([Number, String]).required(),
file_count: Schema.union([Number, String]).default(50),
group_id: Schema.union([Number, String]).required()
})
async _handle(payload: Payload) {
const data = await this.ctx.ntGroupApi.getGroupFileList(payload.group_id.toString(), {
const groupId = payload.group_id.toString()
const data: OnGroupFileInfoUpdateParams['item'] = []
let nextIndex: number | undefined
while (nextIndex !== 0) {
const res = await this.ctx.ntGroupApi.getGroupFileList(groupId, {
sortType: 1,
fileCount: +payload.file_count,
startIndex: 0,
fileCount: 100,
startIndex: nextIndex ?? 0,
sortOrder: 2,
showOnlinedocFolder: 0,
})
data.push(...res.item)
nextIndex = res.nextIndex
}
return {
files: data.filter(item => item.fileInfo)
.map(item => {

View File

@ -109,25 +109,19 @@ export namespace OB11Entities {
let name: string | undefined
if (element.textElement.atType == AtType.atAll) {
qq = 'all'
} else {
const { atNtUid, atUid, content } = element.textElement
if (atUid && atUid !== '0') {
qq = atUid
} else {
qq = await ctx.ntUserApi.getUinByUid(atNtUid)
}
else {
const { atNtUid, content } = element.textElement
let atQQ = element.textElement.atUid
if (!atQQ || atQQ === '0') {
const atMember = await ctx.ntGroupApi.getGroupMember(msg.peerUin, atNtUid)
if (atMember) {
atQQ = atMember.uin
}
}
if (atQQ) {
qq = atQQ
name = content.replace('@', '')
}
}
messageSegment = {
type: OB11MessageDataType.at,
data: {
qq: qq!,
qq,
name
}
}