From 21117c297c27164f51202f3aa5bc0a2219858a75 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Sat, 3 Apr 2021 20:13:27 -0300 Subject: [PATCH] fix(all): General Bots now can show Office documents on projector. --- packages/kb.gbapp/services/KBService.ts | 26 ++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/kb.gbapp/services/KBService.ts b/packages/kb.gbapp/services/KBService.ts index c0935592d..8f4c679cc 100644 --- a/packages/kb.gbapp/services/KBService.ts +++ b/packages/kb.gbapp/services/KBService.ts @@ -45,6 +45,7 @@ const walkPromise = require('walk-promise'); const { SearchService } = require('azure-search-client'); const Excel = require('exceljs'); const getSlug = require('speakingurl'); +import { GBServer } from '../../../src/app'; import { GBDialogStep, GBLog, @@ -503,8 +504,24 @@ export class KBService implements IGBKBService { public async sendAnswer(min: GBMinInstance, channel: string, step: GBDialogStep, answer: GuaribasAnswer) { if (answer.content.endsWith('.mp4')) { await this.playVideo(min, min.conversationalService, step, answer, channel); + } else if ( + answer.content.endsWith('.ppt') || + answer.content.endsWith('.pptx') || + answer.content.endsWith('.doc') || + answer.content.endsWith('.docx') || + answer.content.endsWith('.xls') || + answer.content.endsWith('.xlsx') + + ) { + const doc = urlJoin(GBServer.globals.publicAddress, 'kb', `${min.instance.botId}.gbai`, + `${min.instance.botId}.gbkb`, 'assets', answer.content) + const url = `http://view.officeapps.live.com/op/view.aspx?src=${doc}`; + await this.playUrl(min, min.conversationalService, step, url, channel); } else if (answer.content.endsWith('.pdf')) { - await this.playUrl(min, min.conversationalService, step, answer, channel); + + const url = urlJoin('kb', `${min.instance.botId}.gbai`, + `${min.instance.botId}.gbkb`, 'assets', answer.content); + await this.playUrl(min, min.conversationalService, step, url, channel); } else if (answer.format === '.md') { await this.playMarkdown(min, answer, channel, step, min.conversationalService); } else if (answer.content.endsWith('.ogg') && process.env.AUDIO_DISABLED !== 'true') { @@ -721,16 +738,15 @@ export class KBService implements IGBKBService { min, conversationalService: IGBConversationalService, step: GBDialogStep, - answer: GuaribasAnswer, + url: string, channel: string ) { if (channel === 'whatsapp') { - await min.conversationalService.sendFile(min, step, null, answer.content, ''); + await min.conversationalService.sendFile(min, step, null, url, ''); } else { await conversationalService.sendEvent(min, step, 'play', { playerType: 'url', - data: urlJoin('kb',`${min.instance.botId}.gbai`, - `${min.instance.botId}.gbkb`, 'assets', answer.content) + data: url }); } }