update queue

This commit is contained in:
Kai Ton 2024-05-27 06:32:59 +00:00
parent 6ea0c8702c
commit 08deba1baa
3 changed files with 23 additions and 10 deletions

View File

@ -1,3 +1,6 @@
const robot = require('./robot/robot'); const robot = require('./robot/robot');
const queue = require('./queue/queue');
robot('hello', 'edu.vn') (async function start() {
await queue(robot('hello', 'spotify.com'))
}())

View File

@ -7,7 +7,7 @@ const CONNECT_RABBIT_STR = "amqp://rabbit:rabbit123@rabbitmq";
const QUEUE = "browser"; const QUEUE = "browser";
const QUEUE_NOTIFY = "browser-notify"; const QUEUE_NOTIFY = "browser-notify";
async function processMessage(channel, message) { async function processMessage(channel, message, processCallback) {
const timestamp = Date.now(); const timestamp = Date.now();
const response = JSON.parse(message.content.toString()); const response = JSON.parse(message.content.toString());
const socketioStart = io.connect(CONNECT_SOCKET_STR, { const socketioStart = io.connect(CONNECT_SOCKET_STR, {
@ -32,7 +32,11 @@ async function processMessage(channel, message) {
}, },
}).close(); }).close();
// TODO run script // TODO run script
// do something if (typeof processCallback === 'function') {
await processCallback()
} else {
throw new Error('processCallback is not function')
}
// !TODO // !TODO
const socketioEnd = io.connect(CONNECT_SOCKET_STR, { const socketioEnd = io.connect(CONNECT_SOCKET_STR, {
transports: ["websocket"], transports: ["websocket"],
@ -58,7 +62,7 @@ async function processMessage(channel, message) {
channel.ack(message); channel.ack(message);
} }
module.exports = async function() { module.exports = async function(processCallback) {
const conn = await amqplib.connect(CONNECT_RABBIT_STR); const conn = await amqplib.connect(CONNECT_RABBIT_STR);
const channelProcess = await conn.createChannel(); const channelProcess = await conn.createChannel();
@ -67,7 +71,7 @@ module.exports = async function() {
await channelProcess.prefetch(1); await channelProcess.prefetch(1);
await channelProcess.consume(QUEUE, await channelProcess.consume(QUEUE,
async (message) => { async (message) => {
await processMessage(channelProcess, message); await processMessage(channelProcess, message, processCallback);
}, },
{noAck: false} {noAck: false}
); );

View File

@ -7,10 +7,14 @@ const robotjs = require('robotjs')
const tesseract = require('tesseract.js') const tesseract = require('tesseract.js')
const jsdom = require('jsdom') const jsdom = require('jsdom')
const Jimp = require('jimp') const Jimp = require('jimp')
const CONFIG = {
SCALE_IMAGE: 1.5,
SCROLL_COUNT: 8,
}
module.exports = async function(keywordSearch, keywordToClick, scale = 1.5, fileScreenshot = 'screenshot.jpg', waitSearch = 2000) { module.exports = async function(keywordSearch, keywordToClick, scale = CONFIG.SCALE_IMAGE, fileScreenshot = 'screenshot.jpg', waitSearch = 2000) {
if(!scale) { if(!scale) {
scale = 1.5 scale = CONFIG.SCALE_IMAGE
} }
if(!fileScreenshot) { if(!fileScreenshot) {
@ -72,9 +76,11 @@ module.exports = async function(keywordSearch, keywordToClick, scale = 1.5, file
} }
} }
robotjs.keyTap('down') // scroll to 8 times
robotjs.keyTap('down') for (let i = 1; i < CONFIG.SCROLL_COUNT; i++) {
return rejToAgain(false) robotjs.keyTap('down')
}
rejToAgain(false)
}) })
} }