Skip to content

Commit

Permalink
fix(kook): fix edge case for quote attachment
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma committed Oct 18, 2022
1 parent fa89123 commit e79b630
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion adapters/kook/package.json
@@ -1,7 +1,7 @@
{
"name": "@satorijs/adapter-kook",
"description": "Kook (Kaiheila) Adapter for Satorijs",
"version": "3.3.4",
"version": "3.3.5",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
"files": [
Expand Down
14 changes: 7 additions & 7 deletions adapters/kook/src/sender.ts
Expand Up @@ -40,17 +40,17 @@ export class Sender {
}
}

private async transformUrl({ type, data }: segment) {
if (['file:', 'base64:', 'data:'].some(protocol => data.url.startsWith(protocol))) {
private async transformUrl({ type, attrs }: segment) {
if (['file:', 'base64:', 'data:'].some(protocol => attrs.url.startsWith(protocol))) {
const payload = new FormData()
const result = await this.bot.ctx.http.file(data.url)
payload.append('file', result.data, {
filename: data.file || result.filename,
const result = await this.bot.ctx.http.file(attrs.url)
payload.append('file', Buffer.from(result.data), {
filename: attrs.file || result.filename,
})
const { url } = await this.bot.request('POST', '/asset/create', payload, payload.getHeaders())
return url
} else if (!data.url.includes('kaiheila')) {
const res = await this.bot.ctx.http.get<internal.Readable>(data.url, {
} else if (!attrs.url.includes('kaiheila')) {
const res = await this.bot.ctx.http.get<internal.Readable>(attrs.url, {
headers: { accept: type + '/*' },
responseType: 'stream',
})
Expand Down
2 changes: 1 addition & 1 deletion adapters/kook/src/utils.ts
Expand Up @@ -54,7 +54,7 @@ function adaptMessage(base: Kook.MessageBase, meta: Kook.MessageMeta, session: M
.replace(/#channel:(\d+);/, (_, id) => segment.sharp(id).toString())
session.elements = segment.parse(session.content)
} else if (base.type === Kook.Type.image) {
const element = segment('image', { url: base.content, file: meta.attachments.name })
const element = segment('image', { url: base.content, file: meta.attachments?.name })
session.elements = [element]
session.content = element.toString()
} else if (base.type == Kook.Type.kmarkdown) {
Expand Down

0 comments on commit e79b630

Please sign in to comment.