Skip to content

goodnightzsj/pt-invite-watcher

Repository files navigation

PT Invite Watcher

长期运行的 PT 站点“开放注册 / 可用邀请数 / 连通性”监控服务(默认 NexusPHP/M-Team),站点列表来源于 MoviePilot 或手动配置,Cookie 优先从 CookieCloud 获取并支持回退。

✨ 功能特性

  • 多源站点管理
    • MoviePilot:自动拉取 MP 认证站点,无需重复配置。
    • 手动添加:支持手动添加 MP 不支持的站点。
    • CookieCloud:自动同步 Cookie,失败回退到本地配置。
  • 全方位监控
    • 开放注册:检测 signup.php 或注册页关键字。
    • 邀请名额:解析首页/用户中心/邀请页,智能判断等级权限与名额数量。
    • 连通性:实时检测站点能否访问。
  • 现代 Web UI
    • 响应式设计:完美支持桌面端与移动端(Mobile Card View)。
    • 实时日志:WebSocket 实时推送扫描日志,支持按分类/站点/关键字过滤。
    • 暗色模式:自动跟随系统或手动切换。
    • 数据大屏:直观展示各站点状态概览。
  • 通知触达
    • Telegram Bot
    • 企业微信(应用消息)

🚀 快速开始

1. Docker 部署 (推荐)

方式 A:Docker Compose (推荐)

docker-compose.yml:

services:
  pt-invite-watcher:
    image: helloworldz1024/pt-invite-watcher:latest
    container_name: pt-invite-watcher
    restart: unless-stopped
    ports:
      - "8003:8080"
    volumes:
      - ./data:/data
    environment:
      # 数据库路径(必填)
      PTIW_DB_PATH: "/data/ptiw.db"
      # 可选:初始化配置(也可启动后在 WebUI 配置)
      MP_BASE_URL: "http://moviepilot:3001"
      COOKIECLOUD_BASE_URL: "http://cookiecloud:8088"

启动:

docker compose up -d

访问:http://localhost:8003

方式 B:Docker Run

docker run -d \
  --name pt-invite-watcher \
  --restart always \
  -p 8003:8080 \
  -v "$(pwd)/data:/data" \
  -e PTIW_DB_PATH="/data/ptiw.db" \
  -e MP_BASE_URL="http://moviepilot:3001" \
  -e COOKIECLOUD_BASE_URL="http://cookiecloud:8088" \
  helloworldz1024/pt-invite-watcher:latest

2. 本地开发运行

依赖:Python 3.10+, Node.js 18+

  1. 后端启动:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    python3 -m pt_invite_watcher run
  2. 前端构建:

    cd webui
    npm install
    npm run build

    说明:后端实际提供的是 pt_invite_watcher/webui_dist(Vite build 产物)。如果你修改了 webui/src,需要重新执行 build,否则可能看到旧 UI 行为(后端启动时会尝试提示 build 可能过期)。

🛠️ 配置说明

所有配置均可在 Web UI (/config) 中可视化管理,也可以通过环境变量预设。

核心环境变量

变量名 说明 默认值
PTIW_DB_PATH SQLite 数据库路径 ./data/ptiw.db
PTIW_SCAN_INTERVAL_SECONDS 扫描间隔 (秒) 600
PTIW_DISABLE_SCHEDULER 禁用后台定时扫描(仅手动触发) 0
PTIW_DISABLE_LEADER_LOCK 禁用定时扫描 Leader 锁(多进程共享同一 DB 时可能重复扫描) 0
PTIW_WEB_AUTH_USERNAME Web UI 认证用户名 (无)
PTIW_WEB_AUTH_PASSWORD Web UI 认证密码 (无)
PTIW_DISABLE_AUTH 强制禁用 Web UI 认证(用于临时绕过 BasicAuth) 0
MP_BASE_URL MoviePilot 地址 -
COOKIECLOUD_BASE_URL CookieCloud 地址 -

📱 移动端支持

  • 项目对移动端进行了深度适配。
  • 日志页面自动切换为卡片视图,方便在手机上查看详细日志。
  • 导航栏自动切换为底部 Dock 栏。

⚠️ 免责声明

本项目仅用于“状态监控与通知”,不包含任何绕过验证、突破安全机制、自动抢注或获取邀请码的功能。请遵守各站点规则。

About

依赖mp、cookie cloud检测站点是否开邀

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors