iaunco 6 tahun lalu
induk
melakukan
eec8777c61
1 mengubah file dengan 31 tambahan dan 7 penghapusan
  1. 31 7
      index.js

+ 31 - 7
index.js

@@ -5,7 +5,7 @@ const fs = require('fs');
 //need: reply_info, sign
 //from url: https://testmis.ssti.net.cn/xswxcs/?reply_info=******&sign=******
 const info = [
-    ['reply_info', 'sign']
+    ['reply_info', 'sign'],
 ];
 
 let infoOK = [];
@@ -19,7 +19,7 @@ function getDate() {
 
 async function interval() {
     const browser = await puppeteer.launch({
-        // headless: false, // 是否隐藏窗口(默认true)
+        headless: false, // 是否隐藏窗口(默认true)
         // defaultViewport: {width: 800, height: 600} // 截图大小
     });
     let lastDay = null; // 记录上一秒的日期
@@ -35,7 +35,8 @@ async function interval() {
             // 日期变动,清空数组
             infoOK = [];
         }
-        if ((hour === 0 && min < 30 && sec < 30) || hour >= 16) {
+        console.log(hour, min, sec);
+        if ((hour === 0 && min < 30) ||(hour === 0 && min === 30 && sec <= 30) || hour >= 16) {
             return;
         }
         for (let i = 0, j = info.length; i < j; i++) {
@@ -47,7 +48,7 @@ async function interval() {
                     console.log(i, e);
                     setTimeout(function () {
                         infoOK[i] = false; // 出错,一分钟后重试
-                    }, 60000);
+                    }, 10000);
                     return;
                 }
             }
@@ -55,12 +56,21 @@ async function interval() {
     }, 1000);
 }
 
+function sleep(time) {
+    return new Promise(function (resolve) {
+        setTimeout(function () {
+            resolve();
+        }, time);
+    });
+}
+
 async function run(browser, replyInfo, sign) {
     return new Promise(async function (resolve, reject) {
         const page = await browser.newPage();
         try {
             await page.goto("https://testmis.ssti.net.cn/xswxcs/?reply_info=" + replyInfo + "&sign=" + sign);
         } catch (e) {
+            await page.close();
             reject(e);
             return;
         }
@@ -73,6 +83,7 @@ async function run(browser, replyInfo, sign) {
         try {
             await page.goto("https://testmis.ssti.net.cn/xswxcs/pages/Epidemic/EpidemicApply.aspx", {waitUntil: 'networkidle2'});
         } catch (e) {
+            await page.close();
             reject(e);
             return;
         }
@@ -91,15 +102,28 @@ async function run(browser, replyInfo, sign) {
         } catch (e) {
             // 捕捉可能的eval错误
         }
-        const name = await page.$eval("#div2 input", el => el.value);
+        let name;
+        try {
+            name = await page.$eval("#div2 input", el => el.value);
+        } catch (e) {
+            await page.close();
+            reject("Get Name Error");
+            return;
+        }
         console.log(name);
-        await page.click("#Apply_Epidemic");
+        try {
+            await page.click("#Apply_Epidemic");
+        } catch (e) {
+            await page.close();
+            reject("Submit Error");
+            return;
+        }
         try {
             await page.screenshot({path: "img/" + name + "-" + getDate() + '.png'});
         } catch (e) {
             // 捕捉可能的截图错误
         }
-
+        await sleep(2000);
         await page.close();
         resolve();
     });