From 0d5931dde13cae5d55aeddd3ea4a83df6653e6b6 Mon Sep 17 00:00:00 2001 From: rodrigorodriguez Date: Mon, 6 Mar 2023 09:09:31 -0300 Subject: [PATCH] new(basic.gblib): #334 QRCODE new keyword introduced. --- packages/basic.gblib/services/DialogKeywords.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/basic.gblib/services/DialogKeywords.ts b/packages/basic.gblib/services/DialogKeywords.ts index 068121c6..79031051 100644 --- a/packages/basic.gblib/services/DialogKeywords.ts +++ b/packages/basic.gblib/services/DialogKeywords.ts @@ -1146,11 +1146,23 @@ public async setFilterTypes({ pid, types }) { await min.conversationalService.sendFile(min, null, mobile, url, caption); } } - +/** + * Generates a new QRCode. + * + * file = QRCODE "data" + * + */ public async getQRCode({ pid, text }) { + const { min, user } = await DialogKeywords.getProcessInfo(pid); const img = await qrcode.toDataURL(text); const data = img.replace(/^data:image\/\w+;base64,/, ''); const buf = Buffer.from(data, 'base64'); - return buf; + + const gbaiName = `${min.botId}.gbai`; + const localName = Path.join('work', gbaiName, 'cache', `qr${GBAdminService.getRndReadableIdentifier()}.png`); + Fs.writeFileSync(localName, buf, { encoding: null }); + const url = urlJoin(GBServer.globals.publicAddress, min.botId, 'cache', Path.basename(localName)); + + return {data: data, localName: localName, url: url}; } }