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

View File

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