MCPcopy Index your code
hub / github.com/StirlingMouse/MLM

github.com/StirlingMouse/MLM @v0.4.9

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.9 ↗ · + Follow
772 symbols 1,518 edges 76 files 1 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MLM - Myanonamouse Library Manager

MLM is both an auto downloader and a library organizer. Both parts are optional so either can be replaced with e.g. RSS or booktree if you prefer. And even if you use both, you can still add torrents manually and have them organized, and/or use booktree for collections or files that are not from MaM.

This allows you to automatically download for example bookmarks and have them hardlinked into an organized library folder for e.g. ABS. It also follows a list of preferred formats so that if you first download the mp3 version of a book and then later download an m4b, the mp3 will be automatically removed from your library and optionally moved to a different category or tagged in qBittorrent.

The auto downloader can both use configured searches similar to RSS, and Goodreads lists as input. It keeps track of your unsat slots and will by default always leave at least 10 open. It also keeps track of your library and avoids downloading e.g. an mp3 torrent if you already have the m4b.

The library organizer will only link one audio file type and one ebook file type per torrent. So e.g. an audiobook torrent with both m4b and pdf files will have both linked, but an ebook torrent with both and epub and mobi will only have the epub linked.

Limitations:

  • At the moment MLM only works with qbittorrent
  • MLM works with torrents, meaning collections (multiple books in a single torrents) will be treated as one book (however if you link these with booktree, MLM will not touch those files)
  • MLM works with torrents from MaM, meaning files not via a torrent from here can not be handled (however if you link these with booktree, MLM will not touch those files)

It is available as both a docker container and a Windows application. See the docs for install and configuration instructions: https://stirlingmouse.github.io/MLM/introduction.html

Extension points exported contracts — how you extend this code

Page (Interface)
(no doc) [14 implementers]
server/src/web/mod.rs
DatabaseExt (Interface)
(no doc) [1 implementers]
mlm_db/src/lib.rs
Key (Interface)
(no doc) [11 implementers]
server/src/web/tables.rs
Sortable (Interface)
(no doc) [5 implementers]
server/src/web/tables.rs
HidableColumns (Interface)
(no doc) [4 implementers]
server/src/web/tables.rs
Size (Interface)
(no doc) [2 implementers]
server/src/web/tables.rs

Core symbols most depended-on inside this repo

as_ref
called by 113
mlm_db/src/v09.rs
cmp
called by 70
mlm_db/src/impls/series.rs
as_str
called by 54
mlm_db/src/impls.rs
rw_async
called by 44
mlm_db/src/lib.rs
contains
called by 42
mlm_db/src/impls/series.rs
all
called by 33
mlm_db/src/impls/language.rs
create_default_torrent
called by 29
server/src/config_impl.rs
bytes
called by 27
mlm_db/src/v03.rs

Shape

Class 243
Function 243
Method 215
Enum 65
Interface 6

Languages

Rust99%
TypeScript1%

Modules by API surface

server/src/config_impl.rs65 symbols
server/src/web/tables.rs35 symbols
server/src/web/mod.rs32 symbols
server/src/config.rs32 symbols
server/src/linker.rs25 symbols
mlm_mam/src/enums.rs22 symbols
mlm_db/src/v03.rs21 symbols
server/src/lists/notion.rs20 symbols
server/src/audiobookshelf.rs20 symbols
server/src/web/pages/torrents.rs19 symbols
mlm_mam/src/api.rs18 symbols
mlm_db/src/impls/series.rs17 symbols

For agents

$ claude mcp add MLM \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact