add support for random store
This commit is contained in:
@@ -22,11 +22,13 @@
|
||||
<div class="col-md-4">
|
||||
<label name="store" for="store_selector">目标商店</label>
|
||||
<select name="store_list" id="store_selector">
|
||||
<option value="random">随机</option>
|
||||
<option value="faubourg">Hermès Faubourg Saint-Honoré</option>
|
||||
<option value="georgev">Hermès George V</option>
|
||||
<option value="sevres">Hermès Sèvres</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="device_list"/>
|
||||
<br/>
|
||||
<button id="start_book_btn">开始约会
|
||||
</button>
|
||||
|
||||
@@ -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()]
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -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')
|
||||
})
|
||||
+12
@@ -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)
|
||||
})
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -196,11 +196,13 @@ class CommandorPage {
|
||||
async chooseStore(page) {
|
||||
try {
|
||||
if (!page.isClosed()) {
|
||||
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);
|
||||
this.isTerminated = true;
|
||||
|
||||
Reference in New Issue
Block a user