add scheduler btn

This commit is contained in:
2023-01-31 09:46:47 +01:00
parent 183b4fc68b
commit 957aba82e1
4 changed files with 61 additions and 22 deletions
+18 -1
View File
@@ -1,6 +1,6 @@
const {app, BrowserWindow, ipcMain} = require('electron')
const {_android: android} = require('playwright');
const startBookWithNumbers = require('./src/appointment')
const {startBookWithNumbers, scheduleBookWithNumbers} = require('./src/appointment')
const path = require("path");
const homedir = require('os').homedir();
const loadIniFile = require('read-ini-file')
@@ -22,6 +22,9 @@ const createWindow = () => {
ipcMain.on('start-book', (event, startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) => {
startBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBeep)
})
ipcMain.on('schedule-book', (event, startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) => {
scheduleBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBeep)
})
ipcMain.on('clearAllBrowsers', (event) => {
clearAllBrowsers()
})
@@ -83,6 +86,20 @@ function startBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBee
})
}
function scheduleBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) {
console.log("scheduleBook: " + startNumber);
console.log("endNumber: " + endNumber);
console.log("selectedStore: " + selectedStore);
console.log("audioAnalyse: " + audioAnalyse);
//load config.ini file
let config = loadIniFile.sync(configFilePath);
console.log(config);
let contactExcelFilePath = config.DEFAULT.contact_list_file;
scheduleBookWithNumbers(startNumber, endNumber, selectedStore, contactExcelFilePath, audioAnalyse, alertBeep).then(() => {
console.log("stop")
})
}
async function scanDevices() {
exec("adb devices ", (error, stdout, stderr) => {
if (error) {
+7
View File
@@ -2,6 +2,13 @@ const {contextBridge, ipcRenderer} = require('electron')
contextBridge.exposeInMainWorld('appointment', {
startBook: (startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) => ipcRenderer.send('start-book', startNumber, endNumber, selectedStore, audioAnalyse, alertBeep),
scheduleBook: (startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) => ipcRenderer.send('schedule-book', startNumber, endNumber, selectedStore, audioAnalyse, alertBeep),
clearAllBrowsers: () => ipcRenderer.send('clearAllBrowsers'),
scanDevices: () => ipcRenderer.invoke('scan-devices')
})
// contextBridge.exposeInMainWorld('appointment', {
// startBook: (startNumber, endNumber, selectedStore, audioAnalyse, alertBeep) => ipcRenderer.send('schedule-book', startNumber, endNumber, selectedStore, audioAnalyse, alertBeep),
// clearAllBrowsers: () => ipcRenderer.send('clearAllBrowsers'),
// scanDevices: () => ipcRenderer.invoke('scan-devices')
// })
+6
View File
@@ -24,6 +24,12 @@ window.addEventListener('load', () => {
window.appointment.startBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBeep);
})
document.getElementById("scheduler_book_btn").addEventListener('click', () => {
let audioAnalyse = document.getElementById("audio_analyse").checked;
let alertBeep = document.getElementById("alert_beep").checked;
window.appointment.scheduleBook(startNumber, endNumber, selectedStore, audioAnalyse, alertBeep);
})
document.getElementById("clear_all_browsers").addEventListener('click', () => {
window.appointment.clearAllBrowsers();
})
+11 -2
View File
@@ -3,6 +3,7 @@ const ExcelUtil = require("./excel/ExcelUtil");
const CommandorPage = require("./workers/CommandorPage");
const {MongoManager, formatDate} = require("./workers/mongo_manager");
const alert = require('alert');
const schedule = require("node-schedule");
const mongoManager = new MongoManager();
const SEVEN_DAYS_IN_S = 3600 * 24 * 7;
@@ -132,6 +133,14 @@ async function startWithList(contacts, device, selectedStore, audioAnalyse, aler
}, Promise.resolve());
}
async function scheduleBookWithNumbers(startNumber, endNumber, selectedStore, pathToExcelFile = '/Users/lpan/Desktop/contact_all.xlsx', audioAnalyse = false, alertBeep = false) {
console.log("scheduleBookWithNumbers() called")
schedule.scheduleJob('45 9 * * *', function () {
console.log("start startBookWithNumbers")
startBookWithNumbers(startNumber, endNumber, selectedStore, pathToExcelFile, audioAnalyse = false, alertBeep = false)
})
}
async function startBookWithNumbers(startNumber, endNumber, selectedStore, pathToExcelFile = '/Users/lpan/Desktop/contact_all.xlsx', audioAnalyse = false, alertBeep = false) {
let allContactList = excelUtil.readContacts(pathToExcelFile);
let contactList;
@@ -145,7 +154,7 @@ async function startBookWithNumbers(startNumber, endNumber, selectedStore, pathT
return
}
mongoManager.connect().then(r => {
filterAlreadyBookedContacts(contactList).then((listToBook)=>{
filterAlreadyBookedContacts(contactList).then((listToBook) => {
filterAlreadyAccepteddContacts(listToBook).then(notAcceptedContacts => {
filterBlacklistedContacts(notAcceptedContacts).then(listWithoutBlackContact => {
console.log("number of contacts to book:" + listWithoutBlackContact.length)
@@ -168,4 +177,4 @@ async function startBookWithNumbers(startNumber, endNumber, selectedStore, pathT
});
}
module.exports = startBookWithNumbers
module.exports = {startBookWithNumbers, scheduleBookWithNumbers}