@@ -5,7 +5,26 @@ import StealthPlugin from "puppeteer-extra-plugin-stealth";
5
5
import dotenv from "dotenv" ;
6
6
import { fileURLToPath } from "url" ;
7
7
import { dirname , join } from "path" ;
8
+ import TelegramBot from "node-telegram-bot-api" ;
9
+
8
10
dotenv . config ( ) ;
11
+ const token = process . env . TELEGRAM_BOT_TOKEN ;
12
+ const chatId = process . env . TELEGRAM_CHAT_ID ;
13
+
14
+ if ( token && chatId ) {
15
+ bot = new TelegramBot ( token ) ;
16
+ }
17
+ function sendToTelegram ( message ) {
18
+ bot
19
+ . sendMessage ( chatId , message )
20
+ . then ( ( ) => {
21
+ console . log ( "Telegram message sent successfully" ) ;
22
+ } )
23
+ . catch ( ( error ) => {
24
+ console . error ( "Error sending Telegram message:" , error ) ;
25
+ } ) ;
26
+ }
27
+
9
28
// 读取以分钟为单位的运行时间限制
10
29
const runTimeLimitMinutes = process . env . RUN_TIME_LIMIT_MINUTES || 15 ;
11
30
@@ -79,6 +98,9 @@ function delayClick(time) {
79
98
} catch ( error ) {
80
99
// 错误处理逻辑
81
100
console . error ( "发生错误:" , error ) ;
101
+ if ( token && chatId ) {
102
+ sendToTelegram ( `发生错误:${ error . message } ` ) ;
103
+ }
82
104
}
83
105
} ) ( ) ;
84
106
async function launchBrowserForUser ( username , password ) {
@@ -196,7 +218,7 @@ async function launchBrowserForUser(username, password) {
196
218
} ) ;
197
219
}
198
220
} catch ( err ) {
199
- console . log ( err ) ;
221
+ throw new Error ( err ) ;
200
222
}
201
223
}
202
224
async function login ( page , username , password ) {
@@ -246,7 +268,7 @@ async function login(page, username, password) {
246
268
// 等待密码输入框加载
247
269
await page . waitForSelector ( "#login-account-password" ) ;
248
270
// 模拟人类在输入用户名后的短暂停顿
249
- delayClick ; // 清空输入框并输入密码
271
+ // delayClick; // 清空输入框并输入密码
250
272
await page . click ( "#login-account-password" , { clickCount : 3 } ) ;
251
273
await page . type ( "#login-account-password" , password , {
252
274
delay : 100 ,
@@ -265,11 +287,10 @@ async function login(page, username, password) {
265
287
page . click ( "#login-button" ) , // 点击登录按钮触发跳转
266
288
] ) ; //注意如果登录失败,这里会一直等待跳转,导致脚本执行失败 这点四个月之前你就发现了结果今天又遇到(有个用户遇到了https://linux.do/t/topic/169209/82),但是你没有在这个报错你提示我8.5
267
289
} catch ( error ) {
268
- console . error (
269
- " Navigation timed out in login.请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义), 此外GitHub action似乎不能识别特殊字符,不能登录的话建议改密码" , ' 失败用户:' , username ,
270
- error
290
+ throw new Error (
291
+ ` Navigation timed out in login.请检查用户名密码是否正确(注意密码中是否有特殊字符,需要外面加上双引号指明这是字符串,如果密码里面有双引号则需要转义), 此外GitHub action似乎不能识别特殊字符,不能登录的话建议改密码, 失败用户:, ${ username } ,错误信息: ,
292
+ ${ error } `
271
293
) ;
272
- throw new Error ( "Navigation timed out in login." ) ;
273
294
}
274
295
await delayClick ( 1000 ) ;
275
296
}
0 commit comments