Wenshushu Enhanced CLI Tool - A feature-rich command-line tool for file sharing
Project description
文叔叔完整版工具 (Wenshushu Enhanced CLI Tool)
一个功能完整的文叔叔命令行工具,整合了断点续传、多文件下载、目录上传、用户登录、取件码、代理支持等所有功能。
环境管理
该项目支持两种依赖管理方式:现代化的 uv 和传统的 pip。
方式一:使用 uv(推荐)
uv 是新一代的 Python 包管理器,提供更快的包安装和更好的依赖解析。
安装 uv
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Linux/MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh
使用 uv 管理项目
# 同步依赖(自动创建虚拟环境并安装依赖)
uv sync
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Unix/Linux/macOS
source .venv/bin/activate
# 运行项目
python wss.py -h
# 添加新的依赖
uv add package_name
# 移除依赖
uv remove package_name
# 显示当前依赖
uv pip list
方式二:使用 pip(传统方式)
创建虚拟环境(推荐)
# 创建虚拟环境(conda也可)
python -m venv venv
# 激活虚拟环境
# Windows
venv\Scripts\activate
# Unix/Linux/macOS
source venv/bin/activate
安装依赖
# 从 requirements.txt 安装(如果存在)
pip install -r requirements.txt
# 或手动安装核心依赖
pip install requests base58 pycryptodomex
# 生成 requirements.txt
pip freeze > requirements.txt
项目依赖说明
根据 pyproject.toml 文件,项目的核心依赖包括:
- requests (>=2.32.4) - HTTP 请求库,用于与文叔叔 API 通信
- base58 (>=2.1.1) - Base58 编码库,用于数据编码
- pycryptodomex (>=3.23.0) - 加密库,用于 DES 加密算法
项目要求 Python 版本 >= 3.13。
wss.py 脚本功能详解
wss.py 是项目的主要脚本文件,集成了所有功能模块。以下是详细的功能说明:
核心功能概览
- 文件上传 - 支持单文件和目录上传
- 文件下载 - 支持单线程和多线程下载,包含断点续传
- 用户管理 - 多账户登录、切换和管理
- 取件码 - 自定义或随机生成取件码
- 代理支持 - HTTP/HTTPS/SOCKS 代理
- 多语言 - 中文/英文界面切换
- 断点续传 - 支持下载中断后继续
命令行参数详解
基本命令结构
python wss.py <命令> [目标] [选项]
主要命令
| 命令 | 别名 | 说明 | 示例 |
|---|---|---|---|
upload |
u |
上传文件或目录 | python wss.py u file.txt |
download |
d |
下载文件 | python wss.py d "链接" |
login |
- | 账户登录管理 | python wss.py login |
unlogin |
- | 退出当前账户 | python wss.py unlogin |
功能选项
| 选项 | 简写 | 说明 | 示例 |
|---|---|---|---|
--help |
-h |
显示双语帮助信息 | python wss.py -h |
--en |
-e |
使用英文界面 | python wss.py u file.txt -e |
--login |
-l |
使用已登录账户 | python wss.py u file.txt -l |
--continue |
-c |
启用断点续传(仅下载) | python wss.py d "链接" -c |
--threads |
-t |
设置下载线程数(1-16) | python wss.py d "链接" -t 8 |
--key |
-k |
设置4位取件码 | python wss.py u file.txt -k 1234 |
--randomkey |
-r |
随机生成取件码 | python wss.py u file.txt -r |
--proxy |
-p |
设置代理服务器 | python wss.py u file.txt -p http://proxy |
详细功能说明
1. 文件上传功能
基本上传
# 上传单个文件
python wss.py upload file.txt
python wss.py u file.txt # 使用别名
# 上传目录(自动压缩为 tar.gz)
python wss.py upload ./folder
python wss.py u ./folder
高级上传选项
# 设置自定义取件码
python wss.py u file.txt -k 1234
# 随机生成取件码
python wss.py u file.txt -r
# 使用已登录账户上传(更大存储空间)
python wss.py u file.txt -l
# 通过代理上传
python wss.py u file.txt -p http://127.0.0.1:8080
# 英文界面上传
python wss.py u file.txt -e
# 组合多个选项
python wss.py u file.txt -l -r -p http://proxy -e
上传功能特性
- 目录压缩:自动将目录压缩为 tar.gz 格式
- 智能检测:自动检测文件是否可以秒传
- 分块上传:大文件自动分块并行上传
- 进度显示:实时显示上传进度和速度
- 中断处理:支持 Ctrl+C 优雅中断
2. 文件下载功能
基本下载
# 单线程下载
python wss.py download "https://www.wenshushu.cn/f/xxxxxxxx"
python wss.py d "链接" # 使用别名
# 多线程下载(1-16线程)
python wss.py d "链接" -t 4 # 4线程
python wss.py d "链接" -t 8 # 8线程
断点续传
# 启用断点续传
python wss.py d "链接" -c
# 多线程断点续传
python wss.py d "链接" -t 4 -c
下载功能特性
- 多线程下载:IDM 风格的多连接并行下载
- 智能适配:自动适配 Range 和非 Range 服务器
- 断点续传:支持单线程和多线程断点续传
- 连接状态:实时显示每个线程的下载状态
- 故障转移:多线程失败时自动回退到单线程
- 文件完整性:下载完成后验证文件大小
3. 用户管理系统
登录管理
# 交互式登录管理界面
python wss.py login
# 直接使用 TOKEN 登录
python wss.py login "30Bxxxxxxxxxxxxxxxxxxxxxxxx"
# 退出当前账户
python wss.py unlogin
多用户功能
- 自动保存:登录成功后自动保存用户信息
- 多账户支持:可保存多个不同用户的 TOKEN
- 快速切换:登录时可从已保存账户中选择
- 信息展示:显示用户名、手机号、最后登录时间
- 智能管理:自动更新登录时间,检测无效 TOKEN
TOKEN 获取方法
- 访问 https://www.wenshushu.cn 并登录
- 按 F12 打开开发者工具
- 切换到 Network(网络)标签
- 刷新页面或进行任意操作
- 找到请求的 Request Headers
- 复制 X-TOKEN 字段(通常以 30 或 31 开头)
4. 代理支持
# HTTP 代理
python wss.py u file.txt -p http://127.0.0.1:8080
# HTTPS 代理
python wss.py d "链接" -p https://proxy.example.com:3128
# SOCKS 代理
python wss.py u file.txt -p socks5://127.0.0.1:1080
5. 多语言支持
# 中文界面(默认)
python wss.py u file.txt
# 英文界面
python wss.py u file.txt -e
python wss.py d "链接" --en
使用示例集合
日常使用场景
# 快速上传并生成随机取件码
python wss.py u document.pdf -r
# 大文件多线程高速下载
python wss.py d "链接" -t 8 -c
# 使用代理和账户上传重要文件
python wss.py u important.zip -l -k 2024 -p http://proxy
# 英文界面批量下载
python wss.py d "链接1" -e -t 4 -c
python wss.py d "链接2" -e -t 4 -c
文件结构说明
wenshushu/
├── wss.py # 主程序(完整功能版本)
├── pyproject.toml # 项目配置和依赖管理
├── uv.lock # uv 锁定文件
├── README.md # 项目说明文档
├── back/ # 历史版本和分离功能版本
│ ├── wss_origin.py # 原始基础版本
│ ├── wss_continue.py # 断点续传版本
│ ├── wss_dir.py # 压缩目录上传版本
│ ├── wss_login.py # 用户登录版本
│ └── wss_multi.py # 多文件下载版本
├── token.txt # 当前登录用户 token(自动生成)
├── user_tokens.json # 多用户 token 存储(自动生成)
高级功能详解
1. 智能下载系统
- 服务器检测:自动检测服务器是否支持 Range 请求
- 动态分块:根据文件大小和线程数智能分配下载块
- 连接池管理:每个线程使用独立的 HTTP 连接
- 断点续传:支持多线程下载的精确断点续传
2. 多用户 TOKEN 管理
- 安全存储:TOKEN 和用户信息安全存储在本地
- 自动验证:启动时自动验证 TOKEN 有效性
- 批量管理:支持管理多个账户,快速切换
3. 目录处理系统
- 自动压缩:目录自动压缩为 tar.gz 格式
- 压缩优化:显示压缩时间和文件大小
- 临时文件清理:上传完成后自动清理临时文件
4. 中断处理机制
- 优雅中断:第一次 Ctrl+C 优雅退出并保存状态
- 强制退出:第二次 Ctrl+C 强制退出
- 状态保存:断点续传信息自动保存
故障排除
常见问题解决
-
TOKEN 无效
# 清理无效 token 并重新登录 python wss.py unlogin python wss.py login
-
下载失败
# 尝试单线程下载 python wss.py d "链接" -t 1 # 启用断点续传 python wss.py d "链接" -c
-
网络问题
# 使用代理 python wss.py d "链接" -p http://proxy:port
-
权限问题
# 使用已登录账户 python wss.py u file.txt -l
版本更新日志
- v5.0.0 - 多用户支持和命令优化
- 新增命令别名:
u(upload),d(download) - 多用户 token 管理系统
- 增强的登录管理界面
- 默认匿名登录,按需用户登录
- 退出确认机制
- 新增命令别名:
- v4.0.0 - 新参数结构,优化用户体验
- v3.0.0 - 完整整合版本,包含所有功能
- v2.0.0 - 分离功能版本
- v1.0.0 - 基础版本
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wssf-5.0.6.tar.gz
(48.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
wssf-5.0.6-py3-none-any.whl
(26.1 kB
view details)
File details
Details for the file wssf-5.0.6.tar.gz.
File metadata
- Download URL: wssf-5.0.6.tar.gz
- Upload date:
- Size: 48.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7b65b2132454cd18de35daae3e45a513eaf6037a8f1dd5dc6651bf59d8eaaff
|
|
| MD5 |
d32100c5c3042eda6552af5cf2a2e1c2
|
|
| BLAKE2b-256 |
bb9365e08f76fc4f340e2b528152d4e9ff184b9cc35a75991084af5aa3bc8c1f
|
File details
Details for the file wssf-5.0.6-py3-none-any.whl.
File metadata
- Download URL: wssf-5.0.6-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00da5f85a8495ea20ff70c6d40c731b9e9889a287c778460630aefb56d9b793d
|
|
| MD5 |
5686a6df62afe9287e390bce7164c470
|
|
| BLAKE2b-256 |
0d771b07bd2104bb2c17350c854c3d9f56cb54b3af04e52942ed2367be0c128a
|