亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡

知新坊 教程归档 121

近期许多飞牛社区自动签到脚本失效,应该是飞牛社区加强了安全机制,我之前发布过的签到脚本也不行了,经过研究在我之前的代码中修复了这个问题,只要动态获取sign参数,就能够有效解决签到失败的问题。

✅ 我在详细的介绍一下使用流程。

安装青龙面板

1️⃣ 打开fnOS自带应用中心下载青龙面板

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第1张图片-资源分享

2️⃣ 然后打开青龙按照提示进行安装设置账号密码

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第2张图片-资源分享

安装Nodejs依赖环境

1️⃣ 修改node镜像源地址

菜单栏 -> 系统设置 -> 依赖设置 找到 Node 软件包镜像源 更换成国内npm镜像源即可(不修改走的是默认官方源,很慢很慢)

# 国内npm镜像源https://registry.npmmirror.com

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第3张图片-资源分享

2️⃣ 分别安装 axios cheerio 这俩依赖环境,已经安装过的朋友直接跳过此步骤

菜单栏 -> 依赖管理 -> NodeJs -> 创建依赖

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第4张图片-资源分享

安装 axios

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第5张图片-资源分享

安装 cheerio

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第6张图片-资源分享

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第7张图片-资源分享

3️⃣ 创建脚本

脚本管理 -> 左上角(+号)

类型: 空文件 文件名: 随意***.js(后缀是js) 比如我的文件名是: feiniu.js

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第8张图片-资源分享

然后把下面的代码复制进去,记得要替换里面的Cookie 值

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第9张图片-资源分享

如果复制代码有问题,公众号回复: 飞牛 获取网盘下载地址

const axios = require('axios');
const cheerio = require('cheerio');
const notify = require('./sendNotify');

// 直接使用完整的Cookie字符串
const fullCookieString = '替换你的Cookie值全复制进去';

// 获取动态的sign参数
async function getzhixinfang() {
    try {
        const response = await axios.get('https://club.fnnas.com/plugin.php?id=zqlj_sign', {
            headers: {
                'Cookie': fullCookieString
            }
        });

        const $ = cheerio.load(response.data);
        const signLink = $('a.btna').attr('href');
        
        if (!signLink) {
            throw new Error('无法找到签到链接');
        }

        // 从链接中提取sign参数
        const signMatch = signLink.match(/sign=([a-f0-9]+)/);
        if (signMatch && signMatch[1]) {
            return signMatch[1];
        } else {
            throw new Error('无法从签到链接中提取sign参数');
        }
    } catch (error) {
        console.error('获取动态sign参数失败:', error);
        await notify.sendNotify('飞牛论坛', `获取动态sign参数失败: ${error.message}`);
        throw error;
    }
}

// 签到请求
async function signIn() {
    try {
        // 先获取动态sign
        const zhixinfang = await getzhixinfang();
        const signUrl = `https://club.fnnas.com/plugin.php?id=zqlj_sign&sign=${zhixinfang}`;

        const response = await axios.get(signUrl, {
            headers: {
                'Cookie': fullCookieString
            }
        });

        if (response.data.includes('恭喜您,打卡成功!')) {
            console.log('打卡成功');
            await getSignInInfo();
        } else if (response.data.includes('您今天已经打过卡了,请勿重复操作!')) {
            console.log('已经打过卡了');
            await notify.sendNotify('飞牛论坛', '您今天已经打过卡了');
        } else {
            console.log('打卡失败, cookies可能已经过期或站点更新.');
            await notify.sendNotify('飞牛论坛', '打卡失败, cookies可能已经过期或站点更新.');
        }
    } catch (error) {
        console.error('签到请求失败:', error);
        await notify.sendNotify('飞牛论坛', `签到请求失败: ${error.message}`);
    }
}

// 获取打卡信息(保持不变)
async function getSignInInfo() {
    try {
        const response = await axios.get('https://club.fnnas.com/plugin.php?id=zqlj_sign', {
            headers: {
                'Cookie': fullCookieString
            }
        });

        const $ = cheerio.load(response.data);
        const content = [];

        const patterns = [
            { name: '最近打卡', selector: 'li:contains("最近打卡")' },
            { name: '本月打卡', selector: 'li:contains("本月打卡")' },
            { name: '连续打卡', selector: 'li:contains("连续打卡")' },
            { name: '累计打卡', selector: 'li:contains("累计打卡")' },
            { name: '累计奖励', selector: 'li:contains("累计奖励")' },
            { name: '最近奖励', selector: 'li:contains("最近奖励")' },
            { name: '当前打卡等级', selector: 'li:contains("当前打卡等级")' }
        ];

        patterns.forEach(pattern => {
            const element = $(pattern.selector).text();
            if (element) {
                content.push(`${pattern.name}: ${element.replace(/.*:/, '').trim()}`);
            }
        });

        const message = content.join('\n');
        console.log(message);
        await notify.sendNotify('飞牛论坛打卡信息', message);

    } catch (error) {
        console.error('获取打卡信息失败:', error);
        await notify.sendNotify('飞牛论坛', `获取打卡信息失败: ${error.message}`);
    }
}

// 执行签到
signIn();

4️⃣ 获取 cookie

去飞牛社区打卡页面获取cookie,F12打开开发者模式,然后找到 Network(网络) 点击后找到 plugin.php?id=zqlj_sign 然后刷新一下页面获取 cook ie,全部复制到上面的的代码中

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第10张图片-资源分享

添加定时任务

看图就好很简单 命令/脚本

task 你的脚本名称.js

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第11张图片-资源分享

比如我设置的就是每天中午12点签到

然后点击试运行后查看日志就能看到结果哦!

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第12张图片-资源分享

通知消息配置

签到通知我直接调用的青龙配置文件,点击左边菜单栏 配置文件 (config.sh),比如我设置的是QQ邮箱,找到SMTP,设置一下就行,其他Server酱、Push Plus都可以直接在里面配置。

亲测可用!飞牛社区最新签到脚本,青龙面板稳定打卡-第13张图片-资源分享


关注公众号

标签: fnOS 飞牛 青龙面板

上一篇服务器宝塔部署RustDesk教程:公网低延迟远控不是梦!

下一篇当前分类已是最新一篇