mirror of
https://github.com/electron-vite/electron-vite-vue
synced 2025-04-25 14:12:43 +08:00
49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { clog } from "../tools";
|
|
import login from "../login";
|
|
|
|
export async function getLink(options) {
|
|
const log = clog(options)
|
|
log('开始', { ident: 'gpt-link', ...options })
|
|
const [page, browser] = await login.chatgpt({ ...options, changeUS: false })
|
|
|
|
// await page.waitForTimeout(500)
|
|
|
|
await page.waitForSelector('body > div.absolute.inset-0', { timeout: 0 })
|
|
await page.evaluate(() => {
|
|
const $mark = document.querySelector("body > div.absolute.inset-0")
|
|
if ($mark) $mark.hidden = true
|
|
document.body.style.pointerEvents = 'all'
|
|
})
|
|
|
|
log('隐藏欢迎页面')
|
|
|
|
await page.waitForSelector('.gold-new-button', { visible: true })
|
|
log('等待升级plus按钮出现')
|
|
await page.waitForTimeout(500)
|
|
|
|
await page.evaluate(() => {
|
|
const $mark = document.querySelector("body > div.absolute.inset-0")
|
|
if ($mark) $mark.remove()
|
|
})
|
|
|
|
log('开始点击升级plus按钮')
|
|
await page.click('.gold-new-button')
|
|
|
|
const [response] = await Promise.all([
|
|
page.waitForNavigation({ waitUntil: 'domcontentloaded', timeout: 0 }),
|
|
page.evaluate((selector, searchText) => {
|
|
const elements = Array.from(document.querySelectorAll(selector));
|
|
const target = elements.find(el => el.textContent.trim() === searchText);
|
|
target && target.click()
|
|
}, 'button', 'Upgrade plan')
|
|
])
|
|
|
|
if (response.ok()) {
|
|
const url = response._request._frame._url
|
|
log('获取链接成功', { result: url, type: 'success' })
|
|
browser.close()
|
|
return url
|
|
}
|
|
browser.close()
|
|
}
|