mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-19 12:09:15 +00:00
[FIX] Get QR code directly from canvas element (fix #26)
This commit is contained in:
5
package-lock.json
generated
5
package-lock.json
generated
@@ -168,6 +168,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||||
},
|
},
|
||||||
|
"jsqr": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-wKcQS9QC2VHGk7aphWCp1RrFyC0CM6fMgC5prZZ2KV/Lk6OKNoCod9IR6bao+yx3KPY0gZFC5dc+h+KFzCI0Wg=="
|
||||||
|
},
|
||||||
"mime": {
|
"mime": {
|
||||||
"version": "2.4.4",
|
"version": "2.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/pedroslopez/whatsapp-web.js#readme",
|
"homepage": "https://github.com/pedroslopez/whatsapp-web.js#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"jsqr": "^1.2.0",
|
||||||
"moduleraid": "git+https://github.com/pixeldesu/moduleRaid.git",
|
"moduleraid": "git+https://github.com/pixeldesu/moduleRaid.git",
|
||||||
"puppeteer": "^1.20.0"
|
"puppeteer": "^1.20.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
const EventEmitter = require('events');
|
const EventEmitter = require('events');
|
||||||
const puppeteer = require('puppeteer');
|
const puppeteer = require('puppeteer');
|
||||||
const moduleRaid = require('moduleraid/moduleraid');
|
const moduleRaid = require('moduleraid/moduleraid');
|
||||||
|
const jsQR = require('jsqr');
|
||||||
|
|
||||||
const Util = require('./util/Util');
|
const Util = require('./util/Util');
|
||||||
const { WhatsWebURL, UserAgent, DefaultOptions, Events, WAState } = require('./util/Constants');
|
const { WhatsWebURL, UserAgent, DefaultOptions, Events, WAState } = require('./util/Constants');
|
||||||
const { ExposeStore, LoadUtils } = require('./util/Injected');
|
const { ExposeStore, LoadUtils } = require('./util/Injected');
|
||||||
const ChatFactory = require('./factories/ChatFactory');
|
const ChatFactory = require('./factories/ChatFactory');
|
||||||
const Chat = require('./structures/Chat');
|
|
||||||
const Message = require('./structures/Message');
|
const Message = require('./structures/Message');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,12 +65,11 @@ class Client extends EventEmitter {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Wait for QR Code
|
// Wait for QR Code
|
||||||
const QR_CONTAINER_SELECTOR = '._2d3Jz';
|
const QR_CANVAS_SELECTOR = 'canvas';
|
||||||
const QR_VALUE_SELECTOR = '._1pw2F';
|
await page.waitForSelector(QR_CANVAS_SELECTOR);
|
||||||
|
const qrImgData = await page.$eval(QR_CANVAS_SELECTOR, canvas => [].slice.call(canvas.getContext('2d').getImageData(0,0,264,264).data));
|
||||||
await page.waitForSelector(QR_CONTAINER_SELECTOR);
|
const qr = jsQR(qrImgData, 264, 264).data;
|
||||||
|
|
||||||
const qr = await page.$eval(QR_VALUE_SELECTOR, node => node.getAttribute('data-ref'));
|
|
||||||
this.emit(Events.QR_RECEIVED, qr);
|
this.emit(Events.QR_RECEIVED, qr);
|
||||||
|
|
||||||
// Wait for code scan
|
// Wait for code scan
|
||||||
|
|||||||
Reference in New Issue
Block a user