All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for more sites
- same as 2.4.0
- Some issues with Python3.8 compatibility
- Moved build system from woodpecker-ci to gitea actions
- Updated some dependencies
- Updated the docker image
- Switched from formatter/linter
black
toruff
- Switches typing from
pyright
tomypy
- Added TypedDicts for type checkers and type annotation
- Fixed some typos in the README
- Switched from pylint/pylama/isort/autoflake to ruff
- Switched from mypy to pyright and added strict type checking
- Updated the api template
- Metadata is now added to each chapter. Schema standard: https://anansi-project.github.io/docs/comicinfo/schemas/v2.0
- Added
xmltodict
as a package requirement - Cache now also saves the manga title
- New tests
- More typo annotations for function, compatible with python3.8
- File format checker if you use the MangaDLP class directly
- API template typos
- Some useless type annotations
- Simplified the chapter info generation
- Updated the license year
- Updated the API template
- Updated the API detection and removed it from the MangaDLP class
- Script now doesn't exit if multiple mangas were requested and one had an error
- First version of the chapter cache (very basic functionality)
- Fixed all exception re-raises to include the original stack trace
- Simplified chapter download loop
- Fixed manga titles on non english language
- Fixed title & filename fixing to not use
ascii
butuft8
- Fallback title to english of none was found in requested language
- More debug logs
- More tests
- Now uses the first found alt-title. Before it was the last
- Removed
sys.exit
in the api
- Set a timeout of 10 seconds for the api requests
--name-format
and--name-format-none
flags to add a custom naming scheme for the downloaded files. See docs: https://manga-dlp.ivn.sh/download/- More debug log messages
- More tests for the custom naming scheme
- More type hints
- Make
--format
aclick.Choice
option - In the
--format
option the leading dot is now invalid.--format .cbz
->--format cbz
- Changed empty values from the api from None to an empty string
- Minor code readability improvements
- Log level is now fixed and should not default to 0
- Docker schedule should now work again
- Integrate logging logs to loguru via custom sink
- Simplify docker shell scripts
--warn
and--loglevel
flags
- Remove
--lean
and--verbose
flags and remove custom log levels
- Changed logging format to ISO 8601
- Small logging corrections
- Option to run custom hooks before and after each chapter/manga download
- Tests for the new hooks
- Docs for the new hooks
- Tests for mkdocs generation
- Verbose and Debug logging now have a space as a seperator between log level-name and log-level
- APIs now have an attribute with their name (for the hooks) -
api.api_name
- Docs moved to Cloudflare pages (generated with mkdocs)
- Image publishing with
hatch
on pypi should now work again - The schedule fixer for the new
.sh
schedule should now work correctly
- More CI tests:
pylint
,pylama
andautoflake
- New function in
get_release_notes.sh
to get the latest version - Docstrings for
MangaDLP
and the api moduleMangadex
- CI workflow is now faster and runs natively on arm64 (before it was buildx/emulation)
Pylint
/pylama
code improvements- Version management is now done with
hatch
(in__about__.py
)
- The
--read
option now filters empty lines, so it will not generate an error anymore - An error which was caused by the interactive input method when you did not specify a chapter or to list them
- Some typos
- Options to configure the default schedule in the docker container via environment variables
- Section the the docker README.md for the new environment variables
autoflake
test injustfile
- Some more things which get logged
- BREAKING: renamed the default schedule from
daily
todaily.sh
. Don't forget to fix your bind-mounts to overwrite the default schedule - Added the
.sh
suffix to the s6 init scripts for better compatibility - Adjusted the new logging implementation. It shows now more info about the module the log is from, and some other improvements
- Removed some unused files
logger.py
for all log related settings and functions
- Logging of output. The script now uses the
logging
library
- Timeouts in tests, due to api limitations. Now added a wait time between tests
- Pytest path
--lean
flag for less output- justfile for setting up a dev environment and testing the code
- asdf for version management
- Dev requirements in contrib/requirements_dev.txt
README
in contrib
- Handling of verbosity and logging. Now there are 4 types of verbosity:
normal
,lean
,verbose
anddebug
- CI/CD pipeline for testing and releases
- Coverage testing now also done with
tox
- Default verbosity of docker container is now
--lean
- Reorganised pyproject.toml
- Interactive input
- tox version testing
- New pre-release tests
- Build info's with hatch
- Pypi build with hatch
- Pypi section in
README.md
- Snyk test results
in
README.md
- Moved code from
manga-dlp.py
toinput.py
for uniformity - The default entrypoint is now
mangadlp.input:main
- Docker labels are now working
- Global variables are now fully uppercase
- Some errors with static types
- bump2version config for releases
- More tests with:
mypy
andisort
- New issue templates
- Release workflow now is based on configuration files
- Switched from
setup.py
topyproject.toml
README.md
now has sorted badges- Imports are now sorted with
isort
- Static types are now checked with
mypy
- Release note generation is now simplified
- Image names now have a suffix, as some comic readers have problems with no suffix [fixes issue #2]
--format
section in the README
- Docker container now works again
- Fixed cron in docker container
- Docker container scheduling is now more practical
- Error-chapters and skipped-chapters list are now shown again
- The Interactive input version now matches
--version
- Ability to list chapters with interactive input
- Replace
exit()
withsys.exit()
- Renamed class methods to not look like dunder methods
- Script execution moved from
os.system()
tosubprocess.call()
- List chapters when none were specified
- Typos
- Ability to download whole volumes
- Moved processing of list with links to input.py
- Updated README for volume and chapter selection
- Progress bar on verbose output
- Sonarqube link for CI
- A few typos
- Removed unnecessary escapes from file rename regex
- API template
- Updated docker baseimage
- Rewrote app.py to a class
- Detection of files. Now it will skip them again
- Ability to save the chapters as pdf (only on amd64/x86)
- New output formats: rar, zip
- Progress bar to show image download
- Interactive input if no command line flags are given
- Better KeyboardInterrupt handling
- Better error handling
- Removed duplicate code
- How the variables are used inside the script
- Variables have now the same name as in other scripts (mostly)
- Better retrying when a task fails
- Rewrote parts of script to be easier to maintain
- Moved the input script to the base folder
- Moved all arguments to a class
- Docker container creation
- Changed CI/CD Platform from Drone-CI to Woodpecker-CI
- Release title is now only the version
- Filenames on windows (ntfs). Removed double quote from file and folder names
- Better error handling on "KeyboardInterrupt"
- Release notes now fixed
- New test cases
- New test cases for more coverage
- Github release
- Updated docker baseimage
- Test cases now work again
- Sonarqube settings
- Coverage report in sonarqube
- Gitea release
- Restart failed api requests
- Added wait time for image gathering, as to stop api rate limiting from mangadex
- "--wait" options now works properly again
- Regex for removing illegal characters in the filenames now doesn't remove quotes
- Updated docker baseimage and fixed the mangadlp tag in it
- Update license for 2022
- Quick start section in README
- Preperation for pypi
- Support for new mangadex api
- Code is now formatted with black
- Now also supports just the uuid for managex (not a full link)