代码中只监控了香港和日本低价服务器,如果要监控其他的自行修改


const puppeteer = require('puppeteer');
const notify = require('./sendNotify.js');
let axios = require('axios');

const title = "获取Akile "; 

(async () => {
    const browser = await puppeteer.launch({ 
        headless: true,
        args: ['--no-sandbox'] 
    });
    const page = await browser.newPage();

    // 设置请求头
    await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36');
    
    // 导航到目标 URL
    await page.goto('https://api.akile.io');

    // 等待特定的元素加载(根据页面内容调整选择器)
    await page.waitForSelector('body');

    try{
        // 模拟请求
        const response = await page.evaluate(async () => {
            const res = await fetch('https://api.akile.io/api/v1/store/GetVpsStoreV2', {
                method: 'GET',
                headers: {
                    'Accept': '*/*',
                    'Accept-Encoding': 'gzip, deflate, br',
                    'Connection': 'keep-alive'
                }
            });
            return res.json();
        });


        const japanVpsInfo = response.data.areas.find(item => item.area_name === '日本').nodes;
        const hkVpsInfo = response.data.areas.find(item => item.area_name === '中国香港').nodes;
        const japanStockPlans = japanVpsInfo.flatMap(node => {
            // 确保 node.plans 是一个有效的数组
            if (!Array.isArray(node.plans)) {
                return []; // 如果不是数组,返回空数组
            }

            return node.plans
                .filter(plan => 
                    plan && // 确保 plan 不为 null
                    plan.stock > 0 && 
                    plan.price_datas && // 确保 price_datas 存在
                    plan.price_datas.some(priceData => priceData.price < 1300)
                )
                .map(plan => {
                    const priceData = plan.price_datas.find(priceData => priceData.price < 1300);
                    const price = priceData ? priceData.price : null; // 确保 priceData 不为 null
                    return {
                        node_name: node.group_name,
                        plan_name: plan.plan_name,
                        price: price,
                        stock:plan.stock
                    };
                });
        });

        const hkStockPlans = hkVpsInfo.flatMap(node => {
            // 确保 node.plans 是一个有效的数组
            if (!Array.isArray(node.plans)) {
                return []; // 如果不是数组,返回空数组
            }

            return node.plans
                .filter(plan => 
                    plan && // 确保 plan 不为 null
                    plan.stock > 0 && 
                    plan.price_datas && // 确保 price_datas 存在
                    plan.price_datas.some(priceData => priceData.price < 600)
                )
                .map(plan => {
                    const priceData = plan.price_datas.find(priceData => priceData.price < 600);
                    const price = priceData ? priceData.price : null; // 确保 priceData 不为 null
                    return {
                        node_name: node.node_name,
                        plan_name: plan.plan_name,
                        price: price,
                        stock:plan.stock
                    };
                });
        });
        console.log(japanStockPlans);
        console.log(hkStockPlans);
        // 如果 stockPlans 不是空数组,发送 GET 请求
        if (japanStockPlans.length > 0) {
            
            const content = JSON.stringify(japanStockPlans); // 将内容转为字符串

            axios.get(`http://192.168.0.190:5700/send_group_msg?group_id=464885769&message=${encodeURIComponent(title+"JP库存")}%0D${encodeURIComponent(content)}`)
                .then(response => {
                    console.log('消息发送成功:', response.data);
                })
                .catch(error => {
                    console.error('发送消息时出错:', error);
                });
        }else{
            notify.sendNotify(title + "库存成功,没有JP13元以下库存", '');
        }
        if (hkStockPlans.length > 0) {
            
            const content = JSON.stringify(hkStockPlans); // 将内容转为字符串

            axios.get(`http://192.168.0.190:5700/send_group_msg?group_id=464885769&message=${encodeURIComponent(title+"HK库存")}%0D${encodeURIComponent(content)}`)
                .then(response => {
                    console.log('消息发送成功:', response.data);
                })
                .catch(error => {
                    console.error('发送消息时出错:', error);
                });
        }else{
            notify.sendNotify(title + "库存成功,没有HK6元以下库存", '');
        }
        
        
    }catch (error) {
        console.log("调用api发生错误"+error)
        notify.sendNotify(title + "接口调用失败,请检查", '');
    }

    await browser.close();
})();

给我去玩异度之刃3