diff --git a/package.json b/package.json index 43c15e8b..044a0378 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "João Ferreira ", "Jorge Ramos ", "PH ", - "Dário Vieira " + "Dário Vieira ", + "Alan Perdomo " ], "engines": { "node": "=19.7.0" @@ -140,6 +141,7 @@ "puppeteer-extra": "3.3.4", "puppeteer-extra-plugin-stealth": "2.11.1", "qrcode": "1.5.1", + "qr-scanner": "^1.4.2", "qrcode-terminal": "0.12.0", "readline": "1.3.0", "reflect-metadata": "0.1.13", diff --git a/packages/basic.gblib/services/DialogKeywords.ts b/packages/basic.gblib/services/DialogKeywords.ts index d1e677b4..1221d230 100644 --- a/packages/basic.gblib/services/DialogKeywords.ts +++ b/packages/basic.gblib/services/DialogKeywords.ts @@ -59,6 +59,7 @@ import qrcode from 'qrcode'; import { json } from 'body-parser'; import { WebAutomationServices } from './WebAutomationServices.js'; import urljoin from 'url-join'; +import QrScanner from 'qr-scanner'; /** * Default check interval for user replay @@ -1002,6 +1003,13 @@ export class DialogKeywords { } result = phoneNumber; + } else if (kind === 'qr-scanner'){ + //https://github.com/GeneralBots/BotServer/issues/171 + GBLog.info(`BASIC (${min.botId}): Upload done for ${answer.filename}.`); + const handle = WebAutomationServices.cyrb53(this.min.botId + answer.filename); + GBServer.globals.files[handle] = answer; + QrScanner.scanImage(GBServer.globals.files[handle]).then(result => console.log(result)).catch(error => console.log(error || 'no QR code found.')); + } else if (kind === 'zipcode') { const extractEntity = (text: string) => { text = text.replace(/\-/gi, ''); diff --git a/packages/basic.gblib/services/KeywordsExpressions.ts b/packages/basic.gblib/services/KeywordsExpressions.ts index 1d4098fd..c58ca3a5 100644 --- a/packages/basic.gblib/services/KeywordsExpressions.ts +++ b/packages/basic.gblib/services/KeywordsExpressions.ts @@ -247,6 +247,13 @@ export class KeywordsExpressions { } ]; + keywords[i++] = [ + /^\s*hear (\w+) as\s*qrcode/gim, + ($0, $1) => { + return `${$1} = await dk.getHear({pid: pid, kind:"qrcode")}`; + } + ]; + keywords[i++] = [ /^\s*hear (\w+) as\s*language/gim, ($0, $1) => {