# =============================================================================
# 抖音多账号自动回复系统 - 完整 Python 依赖
# 安装: pip install -r requirements.txt
# 环境: Python 3.10 ~ 3.11
# =============================================================================
#
# 【推荐】一键安装与 Web 部署:
#
#   Linux/宝塔（自动探测 Python，兼容 pyporject_evn / 系统 Python）:
#     chmod +x install.sh start_web.sh
#     ./install.sh --diagnose          # 查看本机哪些 Python 可用
#     ./install.sh                     # 自动选择可用 Python 安装
#     AUTO_BUILD_PYTHON=1 ./install.sh # 无可用 Python 时自动编译 3.11
#     ./start_web.sh
#
#   Windows:
#     install.bat           # 安装 + 构建前端
#     start_web.bat         # 单端口 Web 访问
#
# pip 安装完成后，还需在服务器执行（install.sh 已包含）:
#
#   1) Playwright 浏览器（扫码登录需要）
#      python -m playwright install chromium
#      python -m playwright install-deps          # 仅 Linux
#
#   2) IM 签名 Node 依赖（发送私信 a_bogus 必需，需系统已装 Node.js 18+）
#      cd rpa_engine/douyin_im/static && npm install
#
#   3) 前端构建（生产 Web 访问）
#      cd ../../frontend && npm install && npm run build
#
#   4) 环境变量（生产务必设置，见项目根 .env.example）
#      KEFU_SECRET_KEY=随机长字符串
#      KEFU_ADMIN_PASSWORD=强密码
#      PLAYWRIGHT_BROWSERS_PATH=/path/to/playwright-browsers
#
# 宝塔 Python 项目管理器启动命令:
#   /www/wwwroot/douyin/backend/.venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8000
# 工作目录: /www/wwwroot/douyin/backend
# 运行用户: www（与 chown -R www:www 一致）
# =============================================================================

# --- Web 框架 / ASGI ---
fastapi==0.111.0
starlette==0.37.2
uvicorn==0.30.1
httptools==0.8.0
watchfiles==1.2.0
websockets==12.0
python-multipart==0.0.9

# --- 数据校验 / 配置 ---
pydantic==2.7.4
pydantic_core==2.18.4
annotated-types==0.7.0
typing_extensions==4.15.0
email-validator==2.3.0
dnspython==2.8.0
python-dotenv==1.2.2

# --- 数据库 ---
SQLAlchemy==2.0.30
aiosqlite==0.20.0
# MySQL / PostgreSQL 可选驱动（使用对应数据库类型时需安装）
asyncmy==0.2.9
asyncpg==0.29.0
greenlet==3.0.3

# --- HTTP 客户端 ---
httpx==0.27.0
httpcore==1.0.9
h11==0.16.0
requests==2.34.2
urllib3==2.7.0
certifi==2026.5.20
charset-normalizer==3.4.7
idna==3.18
sniffio==1.3.1
anyio==4.13.0

# --- 鉴权 / 密码 ---
python-jose==3.3.0
passlib==1.7.4
bcrypt==4.0.1
cryptography==49.0.0
cffi==2.0.0
pycparser==3.0
ecdsa==0.19.2
pyasn1==0.6.3
rsa==4.9.1

# --- 图片处理（卡片 favicon 转换 / 私信图片尺寸）---
Pillow==10.4.0

# --- 浏览器自动化（登录 / 采集凭证）---
playwright==1.44.0
pyee==11.1.0
# 无图形界面的 Linux 服务器跑有头浏览器需要虚拟显示（还需系统安装 Xvfb）：
#   Debian/Ubuntu: apt install -y xvfb
#   CentOS/Rocky : yum install -y xorg-x11-server-Xvfb
pyvirtualdisplay==3.0

# --- 抖音 IM（Protobuf / 签名 / WebSocket）---
protobuf==5.27.1
protobuf3-to-dict==0.1.5
six==1.17.0
PyExecJS==1.5.1
websocket-client==1.9.0

# --- FastAPI CLI / 工具（随 fastapi 安装，显式锁定避免缺包）---
fastapi-cli==0.0.24
typer==0.26.7
click==8.4.1
shellingham==1.5.4
rich==15.0.0
rich-toolkit==0.20.1
Pygments==2.20.0
markdown-it-py==4.2.0
mdurl==0.1.2
Jinja2==3.1.6
MarkupSafe==3.0.3
annotated-doc==0.0.4
orjson==3.11.9
ujson==5.12.1
PyYAML==6.0.3
colorama==0.4.6

# =============================================================================
# [npm] IM 签名 jsrsasign（在 rpa_engine/douyin_im/static/package.json）
#   jsrsasign@^11.1.0
#
# [npm] 前端（在 frontend/package.json）
#   vue, ant-design-vue, axios, pinia, vue-router, vite
# =============================================================================
