├── .dockerignore ├── .github └── workflows │ ├── app-release.yml │ ├── docker-release.yml │ ├── lint-and-test.yml │ └── pypi-release.yml ├── .gitignore ├── Dockerfile ├── Dockerfile.dev ├── LICENSE ├── README.md ├── bump-version ├── docker-compose.yaml ├── docker_start ├── pyproject.toml ├── src └── fertilizer │ ├── __init__.py │ ├── api.py │ ├── args.py │ ├── clients │ ├── deluge.py │ ├── qbittorrent.py │ ├── torrent_client.py │ └── transmission.py │ ├── config.json │ ├── config.py │ ├── config_validator.py │ ├── errors.py │ ├── filesystem.py │ ├── injection.py │ ├── main.py │ ├── parser.py │ ├── progress.py │ ├── scanner.py │ ├── torrent.py │ ├── trackers.py │ ├── utils.py │ └── webserver.py ├── tests ├── __init__.py ├── clients │ ├── test_deluge.py │ ├── test_qbittorrent.py │ └── test_transmission.py ├── conftest.py ├── helpers.py ├── support │ ├── __init__.py │ ├── config.json │ ├── deluge_matchers.py │ └── files │ │ ├── README │ │ ├── broken.torrent │ │ ├── broken_name.torrent │ │ ├── foo.txt │ │ ├── no_info.torrent │ │ ├── no_source.torrent │ │ ├── ops_announce.torrent │ │ ├── ops_source.torrent │ │ ├── qbit_ops.fastresume │ │ ├── qbit_ops.torrent │ │ ├── red_announce.torrent │ │ └── red_source.torrent ├── test_api.py ├── test_args.py ├── test_config.py ├── test_config_validator.py ├── test_filesystem.py ├── test_injection.py ├── test_parser.py ├── test_scanner.py ├── test_torrent.py ├── test_trackers.py ├── test_utils.py └── test_webserver.py └── uv.lock /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/app-release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.github/workflows/app-release.yml -------------------------------------------------------------------------------- /.github/workflows/docker-release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.github/workflows/docker-release.yml -------------------------------------------------------------------------------- /.github/workflows/lint-and-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.github/workflows/lint-and-test.yml -------------------------------------------------------------------------------- /.github/workflows/pypi-release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.github/workflows/pypi-release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/Dockerfile -------------------------------------------------------------------------------- /Dockerfile.dev: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/Dockerfile.dev -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/README.md -------------------------------------------------------------------------------- /bump-version: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/bump-version -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /docker_start: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/docker_start -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/pyproject.toml -------------------------------------------------------------------------------- /src/fertilizer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/fertilizer/api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/api.py -------------------------------------------------------------------------------- /src/fertilizer/args.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/args.py -------------------------------------------------------------------------------- /src/fertilizer/clients/deluge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/clients/deluge.py -------------------------------------------------------------------------------- /src/fertilizer/clients/qbittorrent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/clients/qbittorrent.py -------------------------------------------------------------------------------- /src/fertilizer/clients/torrent_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/clients/torrent_client.py -------------------------------------------------------------------------------- /src/fertilizer/clients/transmission.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/clients/transmission.py -------------------------------------------------------------------------------- /src/fertilizer/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/config.json -------------------------------------------------------------------------------- /src/fertilizer/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/config.py -------------------------------------------------------------------------------- /src/fertilizer/config_validator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/config_validator.py -------------------------------------------------------------------------------- /src/fertilizer/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/errors.py -------------------------------------------------------------------------------- /src/fertilizer/filesystem.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/filesystem.py -------------------------------------------------------------------------------- /src/fertilizer/injection.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/injection.py -------------------------------------------------------------------------------- /src/fertilizer/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/main.py -------------------------------------------------------------------------------- /src/fertilizer/parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/parser.py -------------------------------------------------------------------------------- /src/fertilizer/progress.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/progress.py -------------------------------------------------------------------------------- /src/fertilizer/scanner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/scanner.py -------------------------------------------------------------------------------- /src/fertilizer/torrent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/torrent.py -------------------------------------------------------------------------------- /src/fertilizer/trackers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/trackers.py -------------------------------------------------------------------------------- /src/fertilizer/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/utils.py -------------------------------------------------------------------------------- /src/fertilizer/webserver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/src/fertilizer/webserver.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/clients/test_deluge.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/clients/test_deluge.py -------------------------------------------------------------------------------- /tests/clients/test_qbittorrent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/clients/test_qbittorrent.py -------------------------------------------------------------------------------- /tests/clients/test_transmission.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/clients/test_transmission.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/helpers.py -------------------------------------------------------------------------------- /tests/support/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/support/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/config.json -------------------------------------------------------------------------------- /tests/support/deluge_matchers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/deluge_matchers.py -------------------------------------------------------------------------------- /tests/support/files/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/README -------------------------------------------------------------------------------- /tests/support/files/broken.torrent: -------------------------------------------------------------------------------- 1 | dead 2 | -------------------------------------------------------------------------------- /tests/support/files/broken_name.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/broken_name.torrent -------------------------------------------------------------------------------- /tests/support/files/foo.txt: -------------------------------------------------------------------------------- 1 | bar 2 | -------------------------------------------------------------------------------- /tests/support/files/no_info.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/no_info.torrent -------------------------------------------------------------------------------- /tests/support/files/no_source.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/no_source.torrent -------------------------------------------------------------------------------- /tests/support/files/ops_announce.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/ops_announce.torrent -------------------------------------------------------------------------------- /tests/support/files/ops_source.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/ops_source.torrent -------------------------------------------------------------------------------- /tests/support/files/qbit_ops.fastresume: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/qbit_ops.fastresume -------------------------------------------------------------------------------- /tests/support/files/qbit_ops.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/qbit_ops.torrent -------------------------------------------------------------------------------- /tests/support/files/red_announce.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/red_announce.torrent -------------------------------------------------------------------------------- /tests/support/files/red_source.torrent: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/support/files/red_source.torrent -------------------------------------------------------------------------------- /tests/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_api.py -------------------------------------------------------------------------------- /tests/test_args.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_args.py -------------------------------------------------------------------------------- /tests/test_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_config.py -------------------------------------------------------------------------------- /tests/test_config_validator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_config_validator.py -------------------------------------------------------------------------------- /tests/test_filesystem.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_filesystem.py -------------------------------------------------------------------------------- /tests/test_injection.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_injection.py -------------------------------------------------------------------------------- /tests/test_parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_parser.py -------------------------------------------------------------------------------- /tests/test_scanner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_scanner.py -------------------------------------------------------------------------------- /tests/test_torrent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_torrent.py -------------------------------------------------------------------------------- /tests/test_trackers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_trackers.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /tests/test_webserver.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/tests/test_webserver.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moleculekayak/fertilizer/HEAD/uv.lock --------------------------------------------------------------------------------