diff --git a/index.html b/index.html index 4e5e039..6f9d045 100644 --- a/index.html +++ b/index.html @@ -22,11 +22,13 @@
+

diff --git a/main.js b/main.js index 532be06..d7521d0 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,5 @@ const {app, BrowserWindow, ipcMain} = require('electron') +const {_android: android} = require('playwright'); const startBookWithNumbers = require('./src/appointment') const path = require("path"); @@ -17,6 +18,7 @@ const createWindow = () => { ipcMain.on('start-book', (event, startNumber, endNumber, selectedStore) => { startBook(startNumber, endNumber, selectedStore) }) + ipcMain.handle('scan-devices', scanDevices) win.webContents.openDevTools(); } @@ -40,5 +42,12 @@ function startBook(startNumber, endNumber, selectedStore) { }) } +async function scanDevices() { + let deviceList = await android.devices() + return deviceList.map((item) => { + return [item.model(), item.serial()] + }) +} + diff --git a/preload.js b/preload.js index ea17cd0..23f5dd9 100644 --- a/preload.js +++ b/preload.js @@ -1,6 +1,6 @@ - const {contextBridge, ipcRenderer} = require('electron') contextBridge.exposeInMainWorld('appointment', { - startBook: (startNumber, endNumber, selectedStore) => ipcRenderer.send('start-book', startNumber, endNumber, selectedStore) -}) + startBook: (startNumber, endNumber, selectedStore) => ipcRenderer.send('start-book', startNumber, endNumber, selectedStore), + scanDevices: () => ipcRenderer.invoke('scan-devices') +}) \ No newline at end of file diff --git a/renderer.js b/renderer.js index 0fba8dc..c944f8c 100644 --- a/renderer.js +++ b/renderer.js @@ -3,6 +3,18 @@ let endNumber = 0; let selectedStore = 'faubourg'; window.addEventListener('load', () => { + window.appointment.scanDevices().then((deviceList) => { + // Make the list + let listElement = document.getElementById('device_list'); + for (i = 0; i < deviceList.length; ++i) { + // Create an item for each one + let listItem = document.createElement('li'); + // Add the item text + listItem.innerHTML = deviceList[i].join(" : "); + // Add listItem to the listElement + listElement.appendChild(listItem); + } + }) document.getElementById("start_book_btn").addEventListener('click', () => { window.appointment.startBook(startNumber, endNumber, selectedStore) }) diff --git a/src/appointment.js b/src/appointment.js index 710fe34..d71f6e8 100644 --- a/src/appointment.js +++ b/src/appointment.js @@ -35,8 +35,8 @@ async function needToBook(contact, mongoManager) { } async function startBook(contactPojo, device, selectedStore) { - console.log(`Model: ${device.model()}`); - console.log(`Serial: ${device.serial()}`); + console.log(`型号: ${device.model()}`); + console.log(`序列号: ${device.serial()}`); if (await needToBook(contactPojo, mongoManager)) { let commandor = new CommandorPage(contactPojo, device, mongoManager, selectedStore); //read contacts form excel diff --git a/src/workers/CommandorPage.js b/src/workers/CommandorPage.js index e1cddb7..ae08482 100644 --- a/src/workers/CommandorPage.js +++ b/src/workers/CommandorPage.js @@ -196,10 +196,12 @@ class CommandorPage { async chooseStore(page) { try { if (!page.isClosed()) { - await page.locator(PREFER_STORE).focus() - await delay(1000) - await page.click(PREFER_STORE); - await page.selectOption(PREFER_STORE, this.selectedStore); + if (selectedStore !== "random") { + await page.locator(PREFER_STORE).focus() + await delay(1000) + await page.click(PREFER_STORE); + await page.selectOption(PREFER_STORE, this.selectedStore); + } } } catch (e) { console.log(e);