移除文件管理与文件分享,接口范围收敛到订阅与用户管理
- 删除 /personal/files、uploadFile、private/**、compress、delete 与对应服务实现,
连同压缩线程池、TAR 打包与 PersonalArchiveTest
- 删除 /personal/share、extendShareTime、cancelShare 与 /GetFile/{path},
以及 ShareFile 实体、ShareFileMapper、PublicService.GetFile、每天四点的
checkShareCode 定时任务和分享码失败黑名单
- CustomBean 去掉 ShareFile 的 Native 反射登记
- 同步收敛 PersonalServiceTest、PublicServiceTest、PersonalControllerTest、
PublicControllerTest、LocalServiceTest 与三个画廊测试
- 文档同步,并附上 /login 方案 docs/login-command-plan.md
测试:mvn -o test 410 项通过
This commit is contained in:
+12
-18
@@ -6,8 +6,8 @@
|
||||
──────────────────────────────────────────────────────────────────────────────
|
||||
名称: LionWebsite
|
||||
技术栈: Spring Boot 4.1.1, Java 21 字节码(生产 JDK 25), Maven, SQLite, MyBatis 4, Netty 4.2
|
||||
定位: 个人/私有 Web 应用,兼具 E-Hentai 画廊下载管理、个人文件服务、
|
||||
代理订阅管理等功能。
|
||||
定位: 个人/私有 Web 应用,兼具 E-Hentai 画廊下载管理、代理订阅
|
||||
管理等功能。
|
||||
运行端口: 8888
|
||||
数据库: 双 SQLite 数据库 — LionWebsite.db (主库) + cache.db (缓存库)
|
||||
构建目标: 当前以 JVM/JAR 运行;保留 GraalVM Native Image 配置但尚未在 JDK 25 完成原生验证
|
||||
@@ -29,8 +29,8 @@ src/main/java/com/lion/lionwebsite/
|
||||
├── Controller/
|
||||
│ ├── GalleryManageController.java 画廊任务 CRUD、收藏、图片在线缓存 /GalleryManage
|
||||
│ ├── QueryController.java E-Hentai 搜索代理 /query
|
||||
│ ├── PublicController.java 根路由、IP、订阅、文件分享、验证 /、/ip、/sub/、/GetFile/、/validate
|
||||
│ ├── PersonalController.java 个人文件管理 /personal/
|
||||
│ ├── PublicController.java 根路由、IP、订阅、验证 /、/ip、/sub/、/validate
|
||||
│ ├── PersonalController.java 个人管理 (订阅更新/最后更新时间/IP/留言) /personal/
|
||||
│ ├── SubController.java 订阅绑定管理 /personal/subBind/
|
||||
│ └── UserController.java 用户管理 /personal/user
|
||||
│
|
||||
@@ -41,8 +41,8 @@ src/main/java/com/lion/lionwebsite/
|
||||
│ ├── PushService.java Telegram Bot 通知 (admin 告警)
|
||||
│ ├── QueryService.java E-Hentai 搜索 + 缩略图代理缓存 (转 AVIF)
|
||||
│ ├── LocalServiceImpl.java 定时任务 (连接检测/额度重置/Cookie验证/订阅更新/缩略图清理)
|
||||
│ ├── PublicServiceImpl.java IP 记录、分享码文件获取、授权码修改
|
||||
│ ├── PersonalServiceImpl.java 文件管理 (浏览/上传/下载/分享/压缩/删除/TAR打包)
|
||||
│ ├── PublicServiceImpl.java IP 记录、授权码修改、身份查询
|
||||
│ ├── PersonalServiceImpl.java 订阅最后更新时间、家里 IP、留言转发
|
||||
│ ├── SubService.java 代理订阅绑定/重置/查询/更新记录
|
||||
│ ├── CollectService.java 画廊收藏/取消收藏
|
||||
│ └── UserServiceImpl.java 用户 CRUD + 授权码管理
|
||||
@@ -52,7 +52,6 @@ src/main/java/com/lion/lionwebsite/
|
||||
│ │ ├── GalleryMapper.java gallery 表 CRUD
|
||||
│ │ ├── UserMapper.java user 表 CRUD
|
||||
│ │ ├── CollectMapper.java collect 表 CRUD
|
||||
│ │ ├── ShareFileMapper.java ShareFile 表 CRUD
|
||||
│ │ ├── CustomConfigurationMapper.java 配置键值对读写
|
||||
│ │ └── SubMapper.java 订阅绑定 & 更新记录
|
||||
│ └── cache/ 缓存库 Mapper
|
||||
@@ -66,7 +65,6 @@ src/main/java/com/lion/lionwebsite/
|
||||
│ ├── GidToKey.java 画廊 GID → MPV Key 映射
|
||||
│ ├── ImageKeyCache.java 图片 key 缓存 (gid, page, imgkey)
|
||||
│ ├── CustomConfiguration.java 配置键常量定义
|
||||
│ ├── ShareFile.java 文件分享 (ShareCode, FilePath, ExpireTime)
|
||||
│ ├── SubBind.java 订阅绑定 (key, user)
|
||||
│ ├── SubUpdateRecord.java 订阅更新记录 (ip, UA, time, location)
|
||||
│ └── PageNameCache.java 页面名缓存 (gid, page, pageName)
|
||||
@@ -115,13 +113,11 @@ src/main/java/com/lion/lionwebsite/
|
||||
- 支持图片在线预览: 缓存 MPV key → 按需下载单页 → 转为 AVIF 格式
|
||||
- 画廊收藏/取消收藏
|
||||
|
||||
2. 个人文件服务
|
||||
- 文件浏览器: 按路径浏览文件/文件夹,显示大小、分享状态
|
||||
- 上传: MultipartFile 上传到指定路径
|
||||
- 下载: 支持 HTTP Range 断点续传
|
||||
- 分享: 生成 8 位随机分享码,设置过期时间,可延长/取消
|
||||
- 压缩: 异步 TAR 打包目录
|
||||
- 删除文件/文件夹
|
||||
2. 个人管理服务
|
||||
- 手动触发订阅更新,返回最近更新时间与已记录的家庭 IP
|
||||
- 管理员留言经 PushService 转发到 Telegram
|
||||
|
||||
(文件浏览/上传/下载/分享/压缩/删除已在 td-20260921-a1b2c3 中整体下线)
|
||||
|
||||
3. E-Hentai 搜索代理
|
||||
- 代理搜索 exhentai.org,返回格式化结果 (含缩略图 URL)
|
||||
@@ -141,7 +137,6 @@ src/main/java/com/lion/lionwebsite/
|
||||
- 每 30 分钟: 检测存储节点连接,断开则自动重连
|
||||
- 每周一 4:00: 重置每周下载额度
|
||||
- 每天 0:00: 验证 E-Hentai Cookie 有效性
|
||||
- 每天 4:00: 清理过期分享码
|
||||
- 每 24 小时: 更新代理订阅配置文件
|
||||
- 每周一 4:00: 清理缩略图缓存 (保留最近 10000 个)
|
||||
|
||||
@@ -151,13 +146,12 @@ src/main/java/com/lion/lionwebsite/
|
||||
- /personal 和 /remote 路径限 AuthCode="alone" 用户
|
||||
- HumanInterceptor 拒绝无 User-Agent 请求
|
||||
- AdaptorFilter 记录所有请求日志 (IP/路径/UA/时间)
|
||||
- 分享码失败黑名单 (连续失败则屏蔽)
|
||||
|
||||
六、依赖
|
||||
──────────────────────────────────────────────────────────────────────────────
|
||||
spring-boot-starter-webmvc, spring-boot-starter-websocket, mybatis-spring-boot-starter 4.1
|
||||
jsoup (HTML 解析), hutool-all (工具集), sqlite-jdbc (数据库)
|
||||
httpclient5 (HTTP 请求), commons-compress (TAR 打包)
|
||||
httpclient5 (HTTP 请求)
|
||||
commons-io, commons-lang3, netty-all (TCP 通信)
|
||||
java-telegram-bot-api (Telegram Bot), graalvm native-maven-plugin (AOT)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user