# noMan **Repository Path**: xcOschina/no-man ## Basic Information - **Project Name**: noMan - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蓝奏云全自动上传 + 智能去重 + 链接映射工具 这是一个可直接运行的 Python 项目,提供以下能力: - 自动登录蓝奏云并缓存登录状态 - 扫描本地目录并批量上传文件 - 解析分享页获取真实下载链接 - 使用语义文件名匹配避免重复上传 - 自动生成 `link_map.json` 与 `link_map.db` ## 项目结构 ```text no-man/ src/lanzou_tool/ auth.py # 登录与会话管理 uploader.py # 上传与远端文件列表抓取 resolver.py # 分享链接转直链 matcher.py # 语义文件名匹配 workflow.py # 批处理编排主流程 storage.py # JSON + SQLite 双存储 cli.py # 命令行入口 sql/ schema.sql # 数据库建表脚本 scripts/ init_db.py # 数据库初始化脚本 docs/ DEPLOY.md # 部署教程 tests/ test_matcher.py test_storage.py test_workflow_mocked.py ``` ## 快速开始(Windows PowerShell) ```powershell cd "D:\Users\xuchen\IdeaProjects\no-man" py -m venv .venv .\.venv\Scripts\Activate.ps1 py -m pip install -r requirements.txt py -m playwright install chromium ``` 复制配置模板并填写账号密码: ```powershell Copy-Item .env.example .env notepad .env ``` 初始化数据库: ```powershell py scripts\init_db.py --db-file link_map.db --schema-file sql\schema.sql ``` 运行程序: ```powershell py -m src.lanzou_tool.cli --folder "D:\docs_to_upload" ``` 一键模式(自动刷新+清理,必要时回退到上传补建): ```powershell py -m src.lanzou_tool.cli --one-click ``` 或在 `.env` 中设置 `LANZOU_FOLDER` 后直接运行: ```powershell py -m src.lanzou_tool.cli ``` ## 输出产物 - `link_map.json`:完整映射文件(可读、可备份) - `link_map.db`:SQLite 数据库存档(可查询) - `lanzou_state.json`:登录状态缓存 ## 常用参数 ```text --folder 本地扫描目录(可选,未传则使用 LANZOU_FOLDER) --map-file JSON 映射文件路径(默认 link_map.json) --db-file SQLite 数据库路径(默认 link_map.db) --state-file 登录状态文件路径(默认 lanzou_state.json) --username 蓝奏账号(可用环境变量) --password 蓝奏密码(可用环境变量) --headless 无头模式运行浏览器 --match-threshold <0-100> 语义匹配阈值(默认 85) --dry-run 演练模式,不实际上传 --force-login 强制重新登录 --stop-on-error 任意文件上传失败时立即停止批处理 --refresh-links 刷新已有映射的分享链接与直链(不重新上传) --prune-remote-missing 配合 refresh 模式,远端不存在则删除本地映射 --one-click 一键执行:先刷新+清理,空映射时自动回退到上传补建 ``` 也可在 `.env` 设置:`LANZOU_STOP_ON_ERROR=1`、`LANZOU_REFRESH_LINKS=1`、`LANZOU_PRUNE_REMOTE_MISSING=1`。 ## 数据库脚本 - 建表脚本:`sql/schema.sql` - 初始化工具:`scripts/init_db.py` 可以直接在 PowerShell 中执行: ```powershell py scripts\init_db.py ``` ## 部署文档 完整部署教程见:`docs/DEPLOY.md` ## 测试 ```powershell py -m pytest -q ```