diff --git a/adapters/lark/src/bot.ts b/adapters/lark/src/bot.ts index bd39f80f..b17cf271 100644 --- a/adapters/lark/src/bot.ts +++ b/adapters/lark/src/bot.ts @@ -95,6 +95,11 @@ export class LarkBot extends Bot { return Utils.decodeUser(data.data) } + async getGuildList(after?: string) { + const { data: guilds } = await this.internal.getCurrentUserGuilds({ page_token: after }) + return { data: guilds.items.map(Utils.decodeGuild), next: guilds.page_token } + } + async getGuildMemberList(guildId: string, after?: string) { const { data: users } = await this.internal.getGuildMembers(guildId, { page_token: after }) const data = users.items.map(v => ({ user: { id: v.member_id, name: v.name }, name: v.name })) diff --git a/adapters/lark/src/types/guild.ts b/adapters/lark/src/types/guild.ts index 5c92dd19..62c21db7 100644 --- a/adapters/lark/src/types/guild.ts +++ b/adapters/lark/src/types/guild.ts @@ -17,6 +17,7 @@ declare module '.' { edit_permission: string owner_id_type: string owner_id: string + chat_id: string chat_mode: string chat_type: string chat_tag: string diff --git a/adapters/lark/src/utils.ts b/adapters/lark/src/utils.ts index e1b6b433..29cf6a66 100644 --- a/adapters/lark/src/utils.ts +++ b/adapters/lark/src/utils.ts @@ -3,6 +3,7 @@ import { Message, User } from '@satorijs/protocol' import { h, Session, trimSlash } from '@satorijs/satori' import { FeishuBot, LarkBot } from './bot' import { AllEvents, Events, Lark, Message as LarkMessage, MessageContentType, MessageType } from './types' +import { Guild } from '@satorijs/protocol' export type Sender = | { @@ -146,6 +147,14 @@ export function extractIdType(id: string): Lark.ReceiveIdType { return 'user_id' } +export function decodeGuild(guild: Lark.Guild): Guild { + return { + id: guild.chat_id, + name: guild.name, + avatar: guild.avatar, + } +} + export function decodeUser(user: Lark.User): User { return { id: user.open_id,