#fuse #api #ipc

bin+lib mangadex-fs

MangaDex API 的 FUSE 驱动程序

15 个版本

0.2.1 2020年8月29日
0.2.0 2020年8月12日
0.1.5 2019年10月3日
0.1.2 2019年9月30日

#1040 in 文件系统

每月下载量 39

MIT 许可证

190KB
4K SLoC

mangadex-fs crates.io

满足你的 weeb 需求的 FUSE 驱动程序。

这是利用 MangaDex 未公开 API 的 FUSE 驱动程序的基本实现。漫画信息、章节和单页在内存中缓存,以避免重复请求意外地 DDoS 服务器。


用法

mangadex-fs 包含 2 个二进制文件,客户端部分 mangadex-fsc 和守护进程部分 mangadex-fsd

  1. cargo install mangadex-fs (或克隆此仓库),
  2. 查看 mangadex-fsc --help / mangadex-fsd --help (或 cargo run --release --bin mangadex-fsc -- --help) 了解如何使用,
  3. 不要滥用 MangaDex 服务器,谨慎使用,
  4. 享受阅读的乐趣。

简例

urmom@gay ~> mkdir ~/Manga
urmom@gay ~> mangadex-fsd ~/Manga
urmom@gay ~> mangadex-fsc login -u <username> -p <password>
OK
urmom@gay ~> mangadex-fsc search --author "Dowman Sayman" --include anthology supernatural
 4261 Nickelodeon │ Dowman Sayman │ Not followed    │ 2 mo ago
20563 Melancholia │ Dowman Sayman │ Not followed    │ 2 mo ago
OK
urmom@gay ~> mangadex-fsc manga add 20563
Manga Melancholia has been added.
OK

注意

  • 您需要安装 FUSE 并加载其内核模块modprobe fuse

  • Artix Linux 上进行了测试,但应该适用于任何 Linux。

  • 此版本不支持任何类型的 API 限速/去抖。目前如此。

  • 由于获取章节页面图像大小的方法不再有效(curl -I image_url 返回 405),每次您的系统对章节目录发出 readdir 调用(基本上是 ls)时,都会完整地获取每个图像。你可以想象这需要一些时间。此外,MangaDex 服务器被请求淹没。

    所以如果你在挂载点目录上调用 tree,你基本上是在请求被 IP 封禁。

    readdir 也可能发生在您使用某些花哨的命令行外壳时(例如 fish),即使您不在章节目录中,因此要小心。

  • 您可以通过设置 RUST_LOG 环境变量来启用日志记录。更多信息 在这里

  • 如果您遇到 socket error: Address already in use (os error 98) 错误,意味着套接字文件仍然存在于运行时目录中,您可以使用以下命令将其删除:rm $XDG_RUNTIME_DIR/mangadex-fs/mangadex-fsd.sock

  • 您可以将配置文件放置在 $XDG_CONFIG_HOME/mangadex-fs/config.toml。目前它只能提供套接字文件路径和挂载点,所以它基本上没什么用。

mountpoint = "/home/urmom/Manga/"
socket = "/run/user/1000/mangadex-fs/mangadex-fsd.sock"
  • 资源(漫画、章节、页面)的API响应被缓存,目前没有获取更新的命令。搜索、关注、mdlist 不会被 缓存。

  • cd <mountpoint>/<manga>/<chapter>
    feh --image-bg "black" -Z -. -d -S filename --version-sort
    

    创建了一个好的阅读器。显然您需要安装 feh

  • 您的代码一团糟

    我敢打赌!这是我第一次使用Rust编写比 Hello world 更复杂的程序。如果您有任何指南或想贡献力量,请继续,任何帮助都将受到欢迎。在这众多的互斥锁中,我毫无头绪。

依赖项

~17–31MB
~486K SLoC