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);