12下一页
返回列表 发布新帖

[玩法教程] 青龙面板:123云盘社区签到

980 11
发表于 2026-3-6 09:55:39 | 查看全部 阅读模式 IP:–四川–成都

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、前置准备
===========
1. 确保青龙面板已正常运行 (版本建议 2.10+)
2. 确保已安装 Python3 依赖管理功能
3. 登录 pan1.me 网站并获取有效 Cookie

二、获取 Cookie 步骤
===================
1. 浏览器登录 https://pan1.me
2. 按 F12 打开开发者工具 → 切换到 Network (网络) 标签
3. 在页面上找到并点击"签到"按钮
4. 在 Network 列表中找到名为 my-sign.htm 的请求
5. 点击该请求 → Headers → 找到 Request Headers 中的 Cookie 字段
6. 复制完整 Cookie 字符串 (包含 bbs_token 和 bbs_sid)
   示例格式: bbs_token=xxx; bbs_sid=yyy; _clck=zzz

三、青龙面板部署步骤
===================

步骤1: 上传脚本
--------------
1. 进入青龙面板 → 脚本管理
2. 点击右上角"+"号 → 新建脚本
3. 文件名填写: pan1_sign.py
4. 将本脚本完整内容粘贴进去
5. 点击保存

步骤2: 安装依赖
--------------
1. 进入青龙面板 → 依赖管理 → Python3
2. 点击"新建依赖"
3. 依赖名称填写: requests
4. 点击确定,等待安装完成 (显示已安装即可)

步骤3: 配置环境变量
------------------
- 青龙面板内配置 (推荐):
1. 进入青龙面板 → 环境变量
2. 点击"新建环境变量"
3. 名称: PAN1_COOKIE
4. 值: 刚才复制的完整 Cookie 字符串
5. 点击确定

步骤4: 创建定时任务
-----------------
1. 进入青龙面板 → 定时任务
2. 点击"新建任务"
3. 任务名称: pan1.me签到
4. 命令: task pan1_sign.py
5. 定时规则: 0 9 * * *  (每天上午9点执行)
   其他可选规则:
   - 0 */6 * * *  (每6小时执行一次)
   - 0 8,20 * * * (每天8点和20点执行)
6. 点击确定

四、测试运行
===========
1. 在定时任务列表中找到刚创建的 pan1.me签到
2. 点击"运行"按钮 (▶️图标)
3. 立即查看运行日志:
   - 方式1: 点击任务右侧"日志"按钮
   - 方式2: 进入日志管理 → 找到 pan1_sign 开头的日志文件
4. 观察日志输出:
   - 看到 ✅ [SUCCESS] 表示签到成功
   - 看到 ❌ [ERROR] 表示失败,根据提示排查

五、常见故障排查
===============

问题1: ModuleNotFoundError: No module named 'requests'
解决: 回到步骤2,确认 requests 依赖已正确安装
     或手动执行: pip3 install requests

问题2: 未找到 Cookie,请设置环境变量 PAN1_COOKIE
解决: 回到步骤3,检查环境变量名称是否完全匹配 (区分大小写)
     检查 Cookie 值是否包含多余空格或换行

问题3: HTTP 错误: 403 或 401
解决: Cookie 已过期,重新登录 pan1.me 获取最新 Cookie
     检查 Cookie 字符串是否完整 (特别是 bbs_token 字段)

问题4: 连接错误 / 超时
解决: 检查容器网络是否能访问外网: curl -I https://pan1.me
     检查是否开启代理/VPN导致连接异常

问题5: 今日已签到,无需重复操作
解决: 这是正常状态,表示签到成功但今日已签过
     建议调整定时规则为每天只执行一次

六、高级配置 (可选)
=================

多账号支持:
如需签到多个账号,修改环境变量为 JSON 格式:
PAN1_COOKIE=[{"name":"账号1","cookie":"xxx"},{"name":"账号2","cookie":"yyy"}]

对接推送通知:
如需微信/钉钉推送结果,在青龙面板配置好通知设置后,
脚本会自动通过 sendNotify.js 发送通知 (无需修改代码)

日志保留策略:
默认保留最近7天日志,可在青龙面板系统设置中调整

七、更新维护
===========
Cookie 有效期通常为 7-30 天,建议:
1. 每周检查一次日志,确认 Cookie 未过期
2. 设置日历提醒,每月更新一次 Cookie
3. 如脚本运行失败且日志显示 403,立即更新 Cookie

【技术支持】
如有问题,检查以下信息:
- 青龙面板版本
- Python 版本: python3 --version
- 依赖列表: pip3 list | grep requests
- 容器网络: curl -v https://pan1.me/?my-sign.htm



  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. 青龙面板签到脚本 - pan1.me 网盘签到
  5. 作者: 蓝小白
  6. 版本: v1.3
  7. 功能: 每日自动签到获取积分/奖励
  8. 环境变量: PAN1_COOKIE - 登录后的 Cookie 字符串
  9. 定时规则: 0 9 * * * (每天上午9点)

  10. 依赖安装: pip3 install requests brotli
  11. """

  12. import os
  13. import sys
  14. import json
  15. import gzip
  16. import brotli
  17. import requests
  18. from datetime import datetime
  19. from io import BytesIO

  20. # ==================== 配置区域 ====================
  21. SIGN_URL = "https://pan1.me/?my-sign.htm"
  22. HEADERS = {
  23.     "Accept": "application/json, text/javascript, */*; q=0.01",
  24.     "Accept-Language": "zh-CN,zh;q=0.9",
  25.     "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
  26.     "DNT": "1",
  27.     "Origin": "https://pan1.me",
  28.     "Referer": "https://pan1.me/",
  29.     "Sec-Ch-Ua": '"Not:A-Brand";v="99", "Chromium";v="145"',
  30.     "Sec-Ch-Ua-Mobile": "?0",
  31.     "Sec-Ch-Ua-Platform": '"Windows"',
  32.     "Sec-Fetch-Dest": "empty",
  33.     "Sec-Fetch-Mode": "cors",
  34.     "Sec-Fetch-Site": "same-origin",
  35.     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
  36.     "X-Requested-With": "XMLHttpRequest"
  37.     # 注意: 不设置 Accept-Encoding,让 requests 自动处理压缩
  38. }

  39. # ==================== 日志输出函数 ====================
  40. def log(message, level="INFO"):
  41.     """统一日志输出,带时间戳和级别"""
  42.     timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  43.     emoji_map = {
  44.         "INFO": "ℹ️",
  45.         "SUCCESS": "✅",
  46.         "WARNING": "⚠️",
  47.         "ERROR": "❌"
  48.     }
  49.     emoji = emoji_map.get(level, "ℹ️")
  50.     print(f"[{timestamp}] {emoji} {message}")

  51. # ==================== 核心签到函数 ====================
  52. def pan1_sign(cookie_str):
  53.     """执行 pan1.me 签到请求"""
  54.     headers = HEADERS.copy()
  55.     headers["Cookie"] = cookie_str
  56.    
  57.     try:
  58.         log("🚀 启动 pan1.me 签到任务")
  59.         
  60.         # 使用 requests 自动处理压缩 (需要 brotli 库)
  61.         response = requests.post(
  62.             url=SIGN_URL,
  63.             headers=headers,
  64.             data="",
  65.             timeout=30,
  66.             allow_redirects=False
  67.         )
  68.         
  69.         log(f"📡 HTTP 状态: {response.status_code}")
  70.         
  71.         if response.status_code != 200:
  72.             return {
  73.                 "success": False,
  74.                 "status": "请求失败",
  75.                 "message": f"HTTP 错误码: {response.status_code}",
  76.                 "raw": None
  77.             }
  78.         
  79.         # requests 自动解压后的文本
  80.         response_text = response.text
  81.         log(f"📄 响应内容: {response_text[:200]}")
  82.         
  83.         # 尝试解析 JSON
  84.         try:
  85.             result = json.loads(response_text)
  86.             code = result.get("code")
  87.             msg = result.get("message", "未知消息")
  88.             
  89.             if code == "1" or code == 1:
  90.                 return {"success": True, "status": "签到成功", "message": msg, "raw": result}
  91.             elif code == "-1" or code == -1:
  92.                 return {"success": True, "status": "今日已签", "message": msg, "raw": result}
  93.             else:
  94.                 return {"success": False, "status": "签到异常", "message": f"返回码: {code}, 消息: {msg}", "raw": result}
  95.                
  96.         except json.JSONDecodeError:
  97.             # 关键词匹配兜底
  98.             if "已经" in response_text or "已签" in response_text:
  99.                 return {"success": True, "status": "今日已签", "message": "检测到已签到", "raw": response_text[:100]}
  100.             elif "成功" in response_text:
  101.                 return {"success": True, "status": "签到成功", "message": "检测到成功", "raw": response_text[:100]}
  102.             else:
  103.                 return {"success": False, "status": "解析失败", "message": "无法解析响应", "raw": response_text[:200]}
  104.                
  105.     except requests.exceptions.Timeout:
  106.         return {"success": False, "status": "请求超时", "message": "连接超时(30s)", "raw": None}
  107.     except Exception as e:
  108.         return {"success": False, "status": "运行异常", "message": str(e), "raw": None}

  109. # ==================== 主函数 ====================
  110. def main():
  111.     """脚本入口"""
  112.     print("="*60)
  113.     log("🎯 pan1.me 网盘签到脚本 v1.3")
  114.     print("="*60)
  115.    
  116.     # 检查 brotli 库
  117.     try:
  118.         import brotli
  119.     except ImportError:
  120.         log("❌ 缺少 brotli 库,正在尝试安装...", "ERROR")
  121.         os.system("pip3 install brotli -q")
  122.         log("请重新运行脚本", "INFO")
  123.         sys.exit(1)
  124.    
  125.     cookie = os.environ.get("PAN1_COOKIE", "")
  126.    
  127.     if not cookie:
  128.         log("❌ 未配置环境变量 PAN1_COOKIE", "ERROR")
  129.         log("💡 获取方式: 浏览器F12 → Network → my-sign.htm → 复制Cookie", "ERROR")
  130.         sys.exit(1)
  131.    
  132.     if "bbs_token" not in cookie:
  133.         log("⚠️ Cookie 缺少 bbs_token 字段", "WARNING")
  134.    
  135.     start_time = datetime.now()
  136.     result = pan1_sign(cookie)
  137.     end_time = datetime.now()
  138.     duration = (end_time - start_time).total_seconds()
  139.    
  140.     print("-"*60)
  141.     if result["status"] == "今日已签":
  142.         log(f"⏰ {result['status']} | {result['message']}", "SUCCESS")
  143.     elif result["success"]:
  144.         log(f"🎉 {result['status']} | {result['message']}", "SUCCESS")
  145.     else:
  146.         log(f"💥 {result['status']} | {result['message']}", "ERROR")
  147.    
  148.     log(f"⏱️ 耗时: {duration:.2f}秒")
  149.     print("="*60)
  150.    
  151.     sys.exit(0)

  152. if __name__ == "__main__":
  153.     main()
复制代码






评论11

蓝小白楼主Lv.4 发表于 2026-3-10 09:55:19 | 查看全部 IP:–四川–成都
青龙非最新版本有安全风险,请各位务必拉取最新的镜像或者关注青龙官方的修复信息哈~
夏夏子Lv.7绿联NAS社区会员用户 发表于 2026-3-6 11:32:56 | 查看全部 IP:–广东–佛山–高明区
666
playokLv.4 发表于 2026-3-6 14:24:50 | 查看全部 IP:–贵州–遵义
已添加,把你的青龙脚本全部上交
蓝小白楼主Lv.4 发表于 2026-3-6 18:01:41 来自手机 | 查看全部 IP:–四川–成都
playok 发表于 2026-3-6 14:24
已添加,把你的青龙脚本全部上交

还没写呢😂搞了个绿联的,不知道行不行😁
蓝小白楼主Lv.4 发表于 2026-3-6 18:02:04 来自手机 | 查看全部 IP:–四川–成都
夏夏子 发表于 2026-3-6 11:32
666

999
playokLv.4 发表于 2026-3-6 20:04:44 | 查看全部 IP:美国 CloudFlare节点
蓝小白 发表于 2026-3-6 18:01
还没写呢😂搞了个绿联的,不知道行不行😁

可以签到成功,我试过了!
种田滴张老三Lv.1 发表于 2026-3-7 08:24:00 | 查看全部 IP:–贵州–遵义
playok 发表于 2026-3-6 14:24
已添加,把你的青龙脚本全部上交

青龙脚本也发出来吧
蓝小白楼主Lv.4 发表于 2026-3-9 09:15:14 | 查看全部 IP:–四川–成都

青龙不是面板吗?
潇潇雨歇Lv.4 发表于 2026-3-9 15:14:59 | 查看全部 IP:–广东–佛山–高明区
qd 框架更方便
蓝小白楼主Lv.4 发表于 2026-3-9 15:48:56 | 查看全部 IP:–四川–成都

等我学习下

评论

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表