Skip to content

Commit

Permalink
feat(kook): add all supported events, fix koishijs/koishi#1131
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Jul 2, 2023
1 parent 96de466 commit 8771afc
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 9 deletions.
14 changes: 5 additions & 9 deletions adapters/kook/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { KookBot } from './bot'
import * as Kook from './types'
import * as Kook from './utils'

export { Kook }

Expand All @@ -11,14 +11,10 @@ export * from './utils'

export default KookBot

declare global {
namespace Satori {
interface Session {
kook?: Kook.Payload & Kook.Internal
}
declare module '@satorijs/core' {
interface Events extends Kook.Events {}

interface Events {
'kook/message-btn-click': {}
}
interface Session {
kook?: Kook.Payload & Kook.Internal
}
}
35 changes: 35 additions & 0 deletions adapters/kook/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,41 @@ export interface Internal {
hasPermission(permissions: number, permission: Permissions): boolean
}

export interface Events {
'kook/updated-message'(input: any): void
'kook/updated-private-message'(input: any): void
'kook/deleted-message'(input: any): void
'kook/deleted-private-message'(input: any): void
'kook/added-reaction'(input: any): void
'kook/private-added-reaction'(input: any): void
'kook/deleted-reaction'(input: any): void
'kook/private-deleted-reaction'(input: any): void
'kook/updated-channel'(input: any): void
'kook/deleted-channel'(input: any): void
'kook/pinned-message'(input: any): void
'kook/unpinned-message'(input: any): void
'kook/joined-guild'(input: any): void
'kook/exited-guild'(input: any): void
'kook/updated-guild'(input: any): void
'kook/deleted-guild'(input: any): void
'kook/self-joined-guild'(input: any): void
'kook/self-exited-guild'(input: any): void
'kook/update-guild-member'(input: any): void
'kook/guild-member-online'(input: any): void
'kook/guild-member-offline'(input: any): void
'kook/added-role'(input: any): void
'kook/deleted-role'(input: any): void
'kook/updated-role'(input: any): void
'kook/added-block-list'(input: any): void
'kook/deleted-block-list'(input: any): void
'kook/added-emoji'(input: any): void
'kook/updated-emoji'(input: any): void
'kook/joined-channel'(input: any): void
'kook/exited-channel'(input: any): void
'kook/user-updated'(input: any): void
'kook/message-btn-click'(input: any): void
}

export class Internal {
constructor(private http: Quester) {}

Expand Down
3 changes: 3 additions & 0 deletions adapters/kook/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Bot, defineProperty, h, hyphenate, isNullable, Session, Universal } from '@satorijs/satori'
import * as Kook from './types'

export * from './types'

export const adaptGroup = (data: Kook.Guild): Universal.Guild => ({
guildId: data.id,
guildName: data.name,
Expand Down Expand Up @@ -142,6 +144,7 @@ export function adaptSession(bot: Bot, input: any) {
defineProperty(session, 'kook', Object.assign(Object.create(bot.internal), input))
if (input.type === Kook.Type.system) {
const { type, body } = input.extra as Kook.Notice
bot.ctx.emit('kook/' + type.replace(/_/g, '-') as any, input.body)
switch (type) {
case 'updated_message':
case 'updated_private_message':
Expand Down

0 comments on commit 8771afc

Please sign in to comment.