From b900d25c38417259fa5808d71a4db2eb81e06d6b Mon Sep 17 00:00:00 2001 From: Seijo Cecilia Date: Mon, 2 Sep 2024 16:11:07 +0800 Subject: [PATCH] feat: other file-like messages --- src/laana-v0.1.2/utils/message.ts | 52 ++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/src/laana-v0.1.2/utils/message.ts b/src/laana-v0.1.2/utils/message.ts index a3367904..2ed105f2 100644 --- a/src/laana-v0.1.2/utils/message.ts +++ b/src/laana-v0.1.2/utils/message.ts @@ -150,9 +150,32 @@ export class LaanaMessageUtils { return { elements, fileCacheIds }; }, - file: () => { throw 'Unimplemented'; }, + file: async msgContent => { + const cacheId = await this.laana.utils.file.resolveCacheIdFromLaanaFile(msgContent.file!); + return { + elements: [ + await this.core.apis.FileApi.createValidSendFileElement( + this.laana.utils.file.toLocalPath(cacheId), + msgContent.name, + ), + ], + fileCacheIds: [cacheId], + }; + }, - singleImage: () => { throw 'Unimplemented'; }, + singleImage: async msgContent => { + const cacheId = await this.laana.utils.file.resolveCacheIdFromLaanaFile(msgContent.image!); + return { + elements: [ + await this.core.apis.FileApi.createValidSendPicElement( + this.laana.utils.file.toLocalPath(cacheId), + msgContent.displayText, // TODO: make display text optional + // TODO: add 'sub type' field + ) + ], + fileCacheIds: [cacheId], + }; + }, marketFace: async msgContent => ({ elements: [{ @@ -167,9 +190,30 @@ export class LaanaMessageUtils { fileCacheIds: [], }), - video: () => { throw 'Unimplemented'; }, + video: async msgContent => { + const cacheId = await this.laana.utils.file.resolveCacheIdFromLaanaFile(msgContent); + return { + elements: [ + await this.core.apis.FileApi.createValidSendVideoElement( + this.laana.utils.file.toLocalPath(cacheId), + // TODO: add file name and thumb path + ), + ], + fileCacheIds: [cacheId], + }; + }, - voice: () => { throw 'Unimplemented'; }, + voice: async msgContent => { + const cacheId = await this.laana.utils.file.resolveCacheIdFromLaanaFile(msgContent); + return { + elements: [ + await this.core.apis.FileApi.createValidSendPttElement( + this.laana.utils.file.toLocalPath(cacheId), + ) + ], + fileCacheIds: [cacheId], + }; + }, musicCard: () => { throw 'Unimplemented'; }, };