Skip to content

Latest commit

 

History

History
59 lines (44 loc) · 3.05 KB

Structure.md

File metadata and controls

59 lines (44 loc) · 3.05 KB

EhRust Structure 项目结构说明

Introduction 介绍

EhRust is a Rust library for connecting to and interacting with the E-Hentai and ExHentai (hereinafter referred to as EH) websites.

EhRust是一个Rust库,用于向 E-Hentai 与 ExHentai(以下简称EH)网站进行连接与交互。

This library encapsulates functions that request API and page content from EH to help you quickly construct URLs and send requests.Also, web parsing helps you quickly process and package key information in EH pages.

这个库封装了请求来自 EH 的 API 和页面内容的函数,能够帮助你快速构建 URL 并发送请求。并且,网页解析功能能够帮助你快速处理并打包 EH 页面中的关键信息。

Structure 项目结构

Library / 库 libeh

  • Client / 客户端
    • Authentication / 认证
      • Serialization and Deserialization / 序列化与反序列化
      • Environment Variables / 环境变量读取
    • HTTP Client / HTTP 客户端(EhClient::try_new:超时、gzip、状态码检查、协议错误识别)
    • Configuration / 客户端配置
      • Environment Variables / 环境变量读取
      • Serialization and Deserialization / 序列化与反序列化
        • JSON Format / 格式
        • YAML Format / 格式
        • TOML Format / 格式
    • Proxy / 代理配置(HTTP/HTTPS/SOCKS5)
    • Error / 统一错误类型(thiserror)
  • Data Transfer Object / 数据传输对象(搜索结果/画廊详情/评论/预览/收藏夹/api.php)
    • Image Page / 图片页解析(/s/… 的图片地址、showkey、换源参数、原图链接;api.php showpage 已接线)
  • Tag Manager / 标签管理器(EhTagTranslation 数据结构)
  • URL Builder / URL 生成器(搜索 + 画廊,含严格/宽松双模式解析)
  • Utils / 工具(正则、scraper 辅助、serde 反序列化器)

Command Line Tool / 命令行工具 ehrust

  • search 子命令(含 --dry-run 离线调试)
  • gallery 子命令(详情页摘要)
  • 配置合并:环境变量 → YAML → 命令行参数
  • gallerytorrents / archiver 子命令(待实现)

Extra / 站点能力(0.2.0 新增)

  • 图片批量下载器(client::downloader:并发 + Range 断点续传 + 进度回调)

  • 种子列表解析(dto::torrent,自动剥离 ?p= 私钥)

  • 账密登录(EhClient::login,双域 Cookie 补写)

  • 收藏夹读取 / 添加 / 批量移动删除

  • 搜索分页迭代器(client::pagination::SearchPager)

  • 按操作分级超时(页面 30s / API 15s)

Quality Gates / 质量门禁

  • cargo fmt --check
  • cargo clippy -D warnings
  • cargo test(离线夹具测试;网络测试 #[ignore] + EH_NETWORK_TESTS=1)
  • cargo doc -D warnings(rustdoc 告警视为错误)
  • CI(GitHub Actions / Gitea Actions 双份配置)