diff --git a/.env b/.env index 1ce191f7..9cc93cf6 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ #支持多账户,使用逗号分隔每个账户,密码中有特殊字符可能会导致识别失败 USERNAMES=hahaha2,hahaha1,ha1,ha2,DrKBoogieWoogie,lsp,lsb #888存在问题 PASSWORDS="BfdSGt}F4!5pLHt,BfdSGt}F4!5pLHt,iTs9Wx4+3Eavkhk,W$RhQUVn5E?BBBq,]\"w%2Qd%M8Z6-SS,HU5B6Ee]kRB%Qj',uYE)46Ej8phu$#u" # 密码外面要加上双引号,密码内部如果有双引号需要加上转义字符 反斜杠 \ -WEBSITE=https://linux.do +WEBSITE=https://linux.do -# 需要阅读的网站,支持后面那些:https://meta.discourse.org, https://meta.appinn.net/, https://community.openai.com/ +# 需要阅读的网站,支持后面那些:https://meta.discourse.org, https://meta.appinn.net, https://community.openai.com ENVIRONMENT=production diff --git a/bypasscf.js b/bypasscf.js index 0d927843..a3928e2f 100644 --- a/bypasscf.js +++ b/bypasscf.js @@ -185,32 +185,35 @@ async function launchBrowserForUser(username, password) { } async function login(page, username, password) { // 使用XPath查询找到包含"登录"或"login"文本的按钮 - let loginButton; - await page.evaluate(() => { - let loginButton = Array.from(document.querySelectorAll("button")).find( - (button) => - button.textContent.includes("登录") || - button.textContent.includes("login") - ); - // 如果没有找到,尝试根据类名查找 - if (!loginButton) { - loginButton = document.querySelector(".login-button"); - } - if (loginButton) { - loginButton.click(); - console.log("Login button clicked."); - } else { - console.log("Login button not found."); - } - }); - if (!loginButton) { + let loginButtonFound = await page.evaluate(() => { + let loginButton = Array.from(document.querySelectorAll("button")).find( + (button) => + button.textContent.includes("登录") || + button.textContent.includes("login") + ); // 注意loginButton 变量在外部作用域中是无法被 page.evaluate 内部的代码直接修改的。page.evaluate 的代码是在浏览器环境中执行的,这意味着它们无法直接影响 Node.js 环境中的变量 + // 如果没有找到,尝试根据类名查找 + if (!loginButton) { + loginButton = document.querySelector(".login-button"); + } + if (loginButton) { + loginButton.click(); + console.log("Login button clicked."); + return true; // 返回true表示找到了按钮并点击了 + } else { + console.log("Login button not found."); + return false; // 返回false表示没有找到按钮 + } + }); + if (!loginButtonFound) { if (loginUrl == "https://meta.appinn.net") { await page.goto("https://meta.appinn.net/t/topic/52006", { waitUntil: "domcontentloaded", }); await page.click(".discourse-reactions-reaction-button"); } else { - await page.goto(`${loginUrl}/t/topic/1`, { waitUntil: "domcontentloaded" }); + await page.goto(`${loginUrl}/t/topic/1`, { + waitUntil: "domcontentloaded", + }); await page.click(".discourse-reactions-reaction-button"); } }