|0.2.1||Aug 29, 2020|
|0.2.0||Aug 12, 2020|
|0.1.5||Oct 3, 2019|
|0.1.2||Sep 30, 2019|
#33 in #fuse
110 downloads per month
FUSE driver for your weeb needs.
This is a basic implementation of FUSE driver utilising MangaDex undocumented API. Manga information, chapters and individual pages are cached in memory so repeated requests don't accidently DDOS the server.
mangadex-fs consists of 2 binaries, the client part
mangadex-fsc and the daemon part
cargo install mangadex-fs(or clone this repo),
cargo run --release --bin mangadex-fsc -- --help) on how to use,
- please don't abuse MangaDex server, use with consideration,
- have fun reading.
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
You need to have FUSE installed, and its kernel module loaded:
Tested on Artix Linux, but should work on any Linux.
This version doesn't support any sort of API throttling/debouncing. For now.
Since fetching only the chapter page image size no longer works (
curl -I image_urlreturns
405), every time your system issues a
ls) on a chapter directory, every image gets fetched in its entirety. You can imagine it can take some time. Also MangaDex servers get buried in requests.
So if you're calling
treeon the mountpoint directory, you are basically asking for an IP ban.
readdircan also happen if you're using some fancy command line shells (
fishfor example), even if you are not in the chapter directory, so be wary of this.
You can enable logging by setting
RUST_LOGenvironment variable. More here.
If you encounter a
socket error: Address already in use (os error 98), it means the socket file is still present in the runtime directory, you can remove it with
You can place a configuration file in
$XDG_CONFIG_HOME/mangadex-fs/config.toml. It can be only provided with the socket file path and mountpoint for now, so it's mostly useless:
mountpoint = "/home/urmom/Manga/" socket = "/run/user/1000/mangadex-fs/mangadex-fsd.sock"
API responses of resources (manga, chapters, pages) are cached, and there is no command for fetching updates currently. Searches, follows, mdlist are NOT cached.
cd <mountpoint>/<manga>/<chapter> feh --image-bg "black" -Z -. -d -S filename --version-sort
creates a good reader. Obviously you need to have
Your code is a dumpster fire
I bet! This is my first time using Rust for something more complicated than Hello world. If you have any guidelines or want to contribute go ahead, any help would be appreciated. With all these mutexes flying around I have no idea what I'm doing.