//每个周一打开
// 本地chrome执行文件路径
const puppeteer = require('puppeteer');

//复制"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
// /Users/changhui.wy/.cache/puppeteer/chrome/mac_arm-119.0.6045.105/chrome-mac-arm64/Google Chrome for Testing.app  --remote-debugging-port=9222

async function start() {
    // const browser = await puppeteer.launch({
    //     defaultViewport: null,
    //     ignoreDefaultArgs: ["--enable-automation"],
    //     args: [
    //         '--disable-web-security',
    //         '--start-maximized'
    //     ],
    //     // devtools: true,
    //     ignoreHTTPSErrors: true,
    //     userDataDir: '/Users/changhui.wy/chrome_dir',
    //     headless: false, // 表示是否在前台显示浏览器窗口,默认为true表示不显示,在后台操作
    // });
    const browser = await puppeteer.connect({ browserURL: 'http://localhost:9222',args: [
                '--disable-web-security',
                '--start-maximized'
            ],userDataDir: '/Users/changhui.wy/chrome_dir' });
    const pages = await browser.pages();
    var page  =  pages[0]
    await page.setViewport({ width: 1920, height: 1080 });
    await page.goto('https://zh.z-library.se/');
    var bookbutton = "a.book-loading"
    await page.waitForSelector(bookbutton, { timeout: 0 });
    const urls = await page.$$eval('a.book-loading', links => {
        return links.map(link => link.href);
    });
    for (i = 0; i < urls.length; i++){
        const option = {waitUntil: 'domcontentloaded',}
        var option1 = { timeout: 0 }
        await page.goto(urls[i],{ waitUntil: 'networkidle2'});
        await page.setViewport({ width: 1920, height: 1080 })
        const downloadlinks = await page.$$eval('a.addDownloadedBook[data-book_id]', elements => {
            return elements.filter(element => {
                // 检查每个元素的子元素是否包含 "epub" 字符串
                suffix =  element.textContent.toLowerCase().trim();
                return suffix.includes('epub')|| suffix.includes("pdf")||suffix.includes("mobi");
            }).map(element => element.href); 
        });
        console.log(downloadlinks)
        const text = await page.$$eval('h1', elements => {
            return elements.map(element => {
                // 检查每个元素的子元素是否包含 "epub" 字符串
                return element.textContent.toLowerCase().trim();
            })
        });
        console.log(`text:${text},downloadlinks:${downloadlinks}`)
    }
}
start()