How manuel-alcocer/amularr works
amularr bridges Prowlarr and Sonarr/Radarr to aMule: searches become Torznab magnet results, which the qBittorrent-compatible API turns back into ed2k downloads. The bridge reports queue progress and completion, then *arr apps import completed files from aMule’s Incoming directory. A background wanted-item searcher helps surface new episodes and movies in RSS feeds. The graph includes the runtime entry point and EC protocol layer; unsampled modules and wiring are included only where the README or SOURCE INDEX supports them.
Main entry points: qbittorrent.py qBittorrent API · httpd.py HTTP server · cli.py Service startup · torznab.py Torznab API
Components 16
HTTP runtime
- Service startup
amularr/cli.py - HTTP server
amularr/httpd.py - HTTP responses
amularr/web.py
Search and indexer
- Torznab API
amularr/torznab.py - Search service
amularr/search.py - Wanted searches
amularr/wanted.py
Download bridge
- qBittorrent API
amularr/qbittorrent.py - Download state
amularr/state.py
aMule protocol
- EC client
amularr/ec/client.py - Packet encoding
amularr/ec/tag.py - EC constants
amularr/ec/codes.py
Shared services
- Configuration
amularr/config.py
Other components
- Prowlarr
- Sonarr / Radarr
- aMule core
- Incoming files
Connections 29
- Prowlarr → HTTP server: sends Torznab requests
README.md - Sonarr / Radarr → HTTP server: sends qBittorrent requests
README.md - HTTP server → Torznab API: routes indexer requests
amularr/httpd.py - HTTP server → qBittorrent API: routes download requests
amularr/httpd.py - HTTP server → HTTP responses: uses responses
amularr/httpd.py - Service startup → Configuration: loads settings
amularr/cli.py - Service startup → HTTP server: starts server
amularr/cli.py - Torznab API → Search service: runs searches
amularr/torznab.py - Wanted searches → Search service: searches wanted titles
amularr/wanted.py - Wanted searches → Torznab API: builds search queries
amularr/wanted.py - Wanted searches → Sonarr / Radarr: fetches wanted items
amularr/wanted.py - Search service → EC client: runs aMule searches
amularr/search.py - Torznab API → qBittorrent API: provides magnets
README.md - qBittorrent API → EC client: queues and manages downloads
README.md - qBittorrent API → Download state: tracks downloads
amularr/qbittorrent.py - qBittorrent API → Incoming files: checks completed files
README.md - Sonarr / Radarr → Incoming files: imports completed files
README.md - Sonarr / Radarr → HTTP server: deletes imported entries
README.md - EC client → Packet encoding: encodes EC packets
amularr/ec/client.py - EC client → EC constants: uses protocol constants
amularr/ec/client.py - Packet encoding → EC constants: uses tag constants
amularr/ec/tag.py - aMule core → EC client: serves EC requests
README.md - Service startup → Search service: creates search service
amularr/cli.py - Service startup → qBittorrent API: creates API facade
amularr/cli.py - Service startup → Torznab API: creates indexer facade
amularr/cli.py - Service startup → Download state: loads persistent state
amularr/cli.py - Torznab API → HTTP responses: returns API responses
amularr/torznab.py - qBittorrent API → HTTP responses: returns API responses
amularr/qbittorrent.py - Configuration → EC constants: maps search types
amularr/config.py