# Changelog
## v2.10.3
### Fix bugs
- Fixed `cover` command is not working if manga doesn't have covers for specified language
[#82](https://github.com/mansuf/mangadex-downloader/issues/82)
## v2.10.2
### Fix bugs
- Fixed `pdf-volume` and `cb7-volume` formats are not working after upgrading to v2.10.x
[#78](https://github.com/mansuf/mangadex-downloader/issues/78)
## v2.10.1
### Fix bugs
- Fixed `cbz` format are not working after upgrading to v2.10.0 [#74](https://github.com/mansuf/mangadex-downloader/issues/74)
## v2.10.0
### New features
- Added stacked progress bar layout (accessible from `--progress-bar-layout=stacked`) [#65](https://github.com/mansuf/mangadex-downloader/issues/65)
- Added `--volume-cover-language` to change volume cover locale [#66](https://github.com/mansuf/mangadex-downloader/issues/66)
- Added `--log-level` to change logging level [#65](https://github.com/mansuf/mangadex-downloader/issues/65)
### Fix bugs
- Fix inconsistent volume cover locale [#66](https://github.com/mansuf/mangadex-downloader/issues/66)
### Dependencies
- Bump [requests-doh](https://github.com/mansuf/requests-doh) to v0.3.1
### Deprecated
- `--no-progress-bar` is deprecated in favor of `--progress-bar-layout`. This option will be removed in v3.0.0
- `--verbose` is deprecated in favor of `--log-level`. This option will be removed in v3.0.0
## v2.9.1
### Fix bugs
- Fixed `--write-tachiyomi-info` is not working when system locale is set to other language (not English)
[#62](https://github.com/mansuf/mangadex-downloader/issues/62)
- Fixed `--write-tachiyomi-info` is not working when any single or volume formats is used
[#63](https://github.com/mansuf/mangadex-downloader/issues/63)
## v2.9.0
### New features
- Added ability to download covers manga [#60](https://github.com/mansuf/mangadex-downloader/issues/60)
### Fix bugs
- Fix error message is not showing when chapters with specified langauge is not found
- Fixed `--type` are not respecting full URL
### Dependencies
- Bump [Pillow](https://github.com/python-pillow/Pillow) to v9.5.0
- Bump [py7zr](https://github.com/miurahr/py7zr) to v0.20.4
- Bump [orjson](https://github.com/ijl/orjson) to v3.8.9
- Bump [lxml](https://github.com/lxml/lxml) to v4.9.2
### Deprecated
- Removed `--no-chapter-info` as it's deprecated from v2.6.0
## v2.8.3
- Fixed `--no-track` is not working in version 2.8.x [#56](https://github.com/mansuf/mangadex-downloader/issues/56)
## v2.8.2
### Fix bugs
- `download.db` are no longer exist when `--no-track` is used
- Fixed download tracker are not tracking chapters properly in `raw-single` and `raw-volume` formats
- Fixed duplicated results when using any commands (`random`, `library`, etc) or search with `--input-pos "*"` used
## v2.8.1
- Fixed "database is locked" when `--path` is set to network shared directory
[#52](https://github.com/mansuf/mangadex-downloader/issues/52)
- Fixed "image file is truncated (xx bytes not processed)" error when using any `pdf` formats
[#54](https://github.com/mansuf/mangadex-downloader/issues/54)
## v2.8.0
### New features
- Add ability to disable tracking downloads [#45](https://github.com/mansuf/mangadex-downloader/issues/45)
- Add ability to add custom DoH (DNS over HTTPS) provider
- Added support for legacy URL forums thread ([https://mangadex.org/threads/...](https://mangadex.org/threads/...))
### Fix bugs
- Fixed high CPU usage when downloading large chapters [#48](https://github.com/mansuf/mangadex-downloader/issues/48)
- Fixed download from forum threads are not working if the URL containing page (page-123) with post-id (post-123)
### Improvements
- File hash creation for download tracker are now asynchronous to improve performance
- Added more metadata (tags and authors) to any `epub` formats
### Dependencies
- Bump [requests-doh](https://github.com/mansuf/requests-doh) to v0.3.0
## v2.7.2
### Fix bugs
- Fixed download tracker are not tracking chapters properly [#51](https://github.com/mansuf/mangadex-downloader/issues/51)
## v2.7.1
### Fix bugs
- Fixed `--use-chapter-cover` is throwing error because of missing fonts (PyPI users only).
## v2.7.0
### Improvements
- Reworked creation chapter info (cover) [#44](https://github.com/mansuf/mangadex-downloader/issues/44)
### Dependecies
- [Pillow](https://pypi.org/project/pillow/) is now required dependecies (no longer optional)
## v2.6.2
### Fix bugs
- Fixed app is slowing down after downloading 100+ chapters
- Fixed files are automatically verified if previous download is not complete
- Fixed `--use-volume-cover` is not working if manga doesn't have "No volume" cover [#46](https://github.com/mansuf/mangadex-downloader/issues/46)
## v2.6.1
### Fix bugs
- Fixed resume download is not working properly
- Fixed download forum thread is not working when option `--input-pos "*"` is used
- Fixed `--replace` option is not working when using converted formats (cbz, pdf, epub, epub-volume, etc)
## v2.6.0
### New features
- Added ability to add more groups or users in `--group` option
- Added ability to set retries for failed HTTP requests (`--http-retries`)
- Added OAuth2 login support (`--login-method oauth2`)
- Added ability to download unread chapters (`--download-mode unread`, require authentication) [#39](https://github.com/mansuf/mangadex-downloader/issues/39)
- Added ability to add volume cover for volume formats [#41](https://github.com/mansuf/mangadex-downloader/issues/41)
- Added ability to download MangaDex URLs from forum thread ([https://forums.mangadex.org](https://forums.mangadex.org))
### Fix bugs
- Fixed download is not resuming when network error happened
- Fixed download is overflowing when trying to resume incomplete download
- Fixed various bugs in command-line options parser
### Improvements
- Rework how to download latest chapters on various formats. See commit [`865b7f5`](https://github.com/mansuf/mangadex-downloader/commit/865b7f5988a9cd92e21112ac8649a29299b5023f) for more info
### Dependecies
- Bump orjson to v3.8.3
- [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) are now required dependecies (no longer optional)
### Breaking changes
- Chapter info (cover) creation are be disabled by default. Use `--use-chapter-cover` to enable it.
### Deprecated
- Removed `--search-filter` and `-sf` option as it's deprecated from v2.4.0
- Format `tachiyomi` and `tachiyomi-zip` are now deprecated, please use `raw` and `cbz` with `--write-tachiyomi-info` instead
- `--no-chapter-info` are now deprecated in favor of `--use-chapter-cover` and will be removed in v2.9.0
## v2.5.4
### Fix bugs
- Fixed typo in filter error message
- Fixed `year` filter is not working
- Fixed validator for environment `MANGADEXDL_TAGS_BLACKLIST` is not respecting rate limit
- Fixed app is crashing due to backward compatibility for config
### Improvements
- Some optimizations
## v2.5.3
### Fix bugs
- Fixed option `--group` is not working due to duplicate chapters.
## v2.5.2
### Fix bugs
- Fixed options `--use-chapter-title` and `--no-group-name` is not working. [#37](https://github.com/mansuf/mangadex-downloader/issues/37)
- Fixed duplicate chapters. [#37](https://github.com/mansuf/mangadex-downloader/issues/37)
## v2.5.1
### Fix bugs
- Fixed chapters are often skipped [#36](https://github.com/mansuf/mangadex-downloader/issues/36)
- Fixed unhandled exception because of `MANGADEXDL_USER_BLACKLIST` filter
## v2.5.0
### Fix bugs
- Fixed input command if user entering a invalid input on first try
### Improvements
- Do not download cover and create folder if manga doesn't contain downloadable chapters (single language only)
- Do not show traceback errors when manga doesn't have downloadable chapters
### New features
- Added ability to block one or more tags
## v2.4.2
### Fix bugs
- Fixed `content_rating` filter is not working in `random` manga
## v2.4.1
### Fix bugs
- Removed unnecessary console output from `random` command
## v2.4.0
### New features
- Added filters on `random` manga
### Improvements
- Added new filters
- `author_or_artist`
### Fix bugs
- Fixed progress bar are not hidden when `--no-progress-bar` is used
### Dependecies
- Bump Pillow to v9.3.0
- Bump py7zr to v0.20.2
### Breaking changes
- `--search-filter` and `-sf` are no longer working as replaced with `--filter` and `-ft` option.
The `--search-filter` and `-sf` option will be removed in v2.6.0
## v2.3.0
### New features
- Added ability to disable progress bar
### Improvements
- When executing `login_cache:purge` cached auth tokens will be invalidated (not only purged)
- Update in bundled executable is now verify the file before proceed to install
## v2.2.0
### New features
- Added new environment variables
- `MANGADEXDL_USER_BLACKLIST`
- `MANGADEXDL_GROUP_BLACKLIST`
- Added new config
- `sort_by`
- Added `--sort-by`, Sorting download by `volume` or `chapter`
- Added ability to blacklist users and groups
## v2.1.0
### New features
- Add new environment variables
- `MANGADEXDL_ZIP_COMPRESSION_TYPE`
- `MANGADEXDL_ZIP_COMPRESSION_LEVEL`
- Added ability to download seasonal manga
### Fix bugs
- Fixed download file is incomplete when network error happened
## v2.0.4
### Fix bugs
- Fixed the app repeatedly download chapter images after error happened in one of MD@H node
## v2.0.3
### Fix bugs
- Fixed the app failed to download because of:
- manga has volume with leading zeros numbers (ex: `00`, `01`)
- manga has volume that is not numbers (ex: `3C63`, `xxx`)
- manga doesn't have cover
## v2.0.2
### Fix bugs
- Fixed `UnboundLocalError: local variable 'delay' referenced before assignment` when the app get rate limited
- Fixed download in any `single` formats is not working if there is no chapters want to download
- Fixed the app is leaving empty folders if chapters or volume already exists [#35](https://github.com/mansuf/mangadex-downloader/issues/35)
## v2.0.1
### Fix bugs
- Fixed downloader is keep restarting indefinitely if the server has a problem.
### Improvements
- Downloader now has a default timeout (15 seconds) to prevent infinite waiting
## v2.0.0
### New features
- Added ability to auto select prompt (list, library, followed-list command) [#29](https://github.com/mansuf/mangadex-downloader/issues/29)
- Added ability to disable creation of chapter info for any `single` and `volume` formats [#30](https://github.com/mansuf/mangadex-downloader/issues/30)
- Added new config
- `no_chapter_info`
- `no_group_name`
- Added new search filters
- `order[*]` [#32](https://github.com/mansuf/mangadex-downloader/issues/32)
- Added optional dependency [`orjson`](https://pypi.org/project/orjson/) for faster loading and dumping JSON object.
- Added EPUB support (`epub`, `epub-volume`, `epub-single`)
### Improvements
- Search filter `included_tags` and `excluded_tags` are now accepting keyword
### Fix bugs
- Fixed message `Chapter ... from group ... has no images` is not showing properly.
- Fixed batch download error handler is not working
- Fixed download is overflowing when `.temp` file is out of range
- Fixed memory slowly increased during download
- Fixed download with `raw-single` format is not working.
- Fixed error `OSError: broken data stream when reading image file` when downloading in any `pdf` formats.
- Fixed downloder is overflowing when server didn't support `Range` header
### Breaking changes
- Removed `--unsafe` and `-u` option (deprecated from v1.3.0)
- Removed `--no-verify` and `-nv` option
- Removed API references [notes](#notes-api-references-removal)
- Changed extension file for `tachiyomi-zip` format (from `.zip` to `.cbz`)
- [Pillow](https://pypi.org/project/pillow/) is no longer required when downloading in any `single` and `volume` format.
- All formats will download and convert in separated time (previously was download and convert in same time).
- `--range` option is disabled, because it's broken right now and needs to reworked
### Notes: API references removal
All public API is now become private API. Please do not use it for your python script.
Those can be changed without any notice.
## v1.7.2
### Fix bugs
- Fixed improper validation for `file:` command
- Fixed error `cannot save mode xxx` when downloading in any `pdf` format
## v1.7.1
### Fix bugs
- Fixed the app won't start [#28](https://github.com/mansuf/mangadex-downloader/issues/28).
- Fixed `-doh` or `--dns-over-https` option are not working.
## v1.7.0
### New features
- Added ability to download manga from scanlator group
- Added new search filter
- `group`
- Added new config
- `dns_over_https`
### Improvements
- Added delay to each failed HTTP(s) requests (Delay time formula: `attempt * 0.5`).
If `--delay-requests` is set, delay time will be used from `--delay-requests` instead.
- Simplified error message [[notes]](#notes-simplified-error-message)
### Dependencies
- Pinned `requests-doh` library version to 0.2.2
### Notes: Simplified error message
Error message has been simplified, no more showing usage on every error thrown.
Before
```shell
$ mangadex-dl "library:ayeeee lmao"
usage: mangadex-dl [-h] [--type {manga,list,chapter,legacy-manga,legacy-chapter}] [--path FOLDER] [--replace]
[--verbose] [--unsafe] [--search] [--search-filter SEARCH_FILTER] [--use-alt-details]
[--group GROUP_ID] [-lang LANGUAGE] [--list-languages] [--start-chapter CHAPTER]
[--end-chapter CHAPTER] [--no-oneshot-chapter] [--no-group-name] [--use-chapter-title]
[--range RANGE] [--start-page NUM_PAGE] [--end-page NUM_PAGE] [--use-compressed-image]
[--cover {original,512px,256px,none}] [--login] [--login-username USERNAME]
[--login-password PASSWORD] [--login-cache]
[--save-as {raw,raw-volume,raw-single,tachiyomi,tachiyomi-zip,pdf,pdf-volume,pdf-single,cbz,cbz-volume,cbz-single,cb7,cb7-volume,cb7-single}]
[--proxy SOCKS / HTTP Proxy] [--proxy-env] [--force-https] [--delay-requests TIME_IN_SECONDS]
[--dns-over-https PROVIDER] [--timeout TIME_IN_SECONDS] [-pipe] [--no-verify] [-v] [--update]
URL
mangadex-dl: error: ayeeee lmao are not valid status, choices are {reading, on_hold, plan_to_read, completed, dropped, re_reading}
```
After
```shell
$ mangadex-dl "library:ayeeee lmao"
Error: ayeee lmao are not valid status, choices are {dropped, completed, on_hold, plan_to_read, re_reading, reading}
```
## v1.6.2
### Fix bugs
- Fixed duplicate `ComicInfo.xml` in `cbz` format when app is in verifying files state [#27](https://github.com/mansuf/mangadex-downloader/pull/27).
## v1.6.1
### Improvements
- Added `ComicInfo.xml` for `cbz` format.
This file is useful for showing details of manga (if an reader support `ComicInfo.xml` file) [#26](https://github.com/mansuf/mangadex-downloader/pull/26).
## v1.6.0
### New features
- Added DNS-over-HTTPS support
- Added ability to set timeout for each HTTP(s) requests
## v1.5.0
### New features
- Added ability to throttle requests [#24](https://github.com/mansuf/mangadex-downloader/issues/24)
### Fix bugs
- Fixed error `Too many open files` in Unix-based systems when downloading manga in any `pdf` format
- Fixed false owner list name when executing command `list:`
- Fixed unproperly parsed `list` command
### Improvements
- Do not re-download cover manga when it already exist [#23](https://github.com/mansuf/mangadex-downloader/issues/23)
### Dependencies
- Bump py7zr to v0.20.0
## v1.4.0
### New features
- Added ability to choose and download random manga
### Fix bugs
- Fixed report system is not working if HTTP response is server error
- Fixed fail to parse authors and artists when fetching manga
## v1.3.0
### New features
- Added web URL location (`http`, `https`) support for batch download syntax
- Added new languages
- Azerbaijani
- Slovak
- Added search filters
- Added `--force-https` and `-fh` option, forcing you to download images in standard HTTPS port 443
- Added new configs
- `force_https`
- `path`
- Added ability to preview cover manga when searching manga
### Improvements
- Reduced time to preview list
### Fix bugs
- Fixed error `NameError: name 'exit' is not defined` in bundled executable
when executing command `login_cache` or `login_cache:show`
- Fixed mangadex-downloader won't start in Python 3.8
- Fixed config is not parsed properly
### Breaking changes
- Removed unsafe feature, `--unsafe` or `-u` option is still exist but it's doing nothing and will be removed in v2.0.0. See [b32dac4](https://github.com/mansuf/mangadex-downloader/commit/b32dac4739369a9a6e94650dab8ff9fe5c7bd143)
- Removed `--enable-legacy-sorting` option as it's deprecated since v1.1.0
### Notes: Unsafe feature removal
You may be wondering, why remove a feature that got added 2 months before ?
Okay that was my mistake,
because i was really naive to implement some restriction that makes user have a complicated process when downloading manga from MangaDex.
See [d3470ce](https://github.com/mansuf/mangadex-downloader/commit/d3470ce47e7475f604cdd8b30a12f249a2bbcb38),
but here's the thing, it's a downloader tool and it has nothing to do with content restrictions in a downloader tool.
## v1.2.1
### Fix bugs
- Fixed fail to get manga, lists, followed lists from user library (The error only happened if user is logged in from cache).
## v1.2.0
### New features
- Added ability to download manga in all languages
- Added cache authentication
- Added config
- Added new languages
- Kazakh
- Tamil
- Added support for `Other` language
- Added `--range` (or `-rg`) option, allow you to download specific chapters and pages.
### Fix bugs
- Fixed conflict `URL` argument with pipe input
- Fixed update is failing if user is logged in
- Fixed batch download throwing an error if location is pointed at folder
### Improvements
- Simplified chapter and volume name. For example: From `Volume. n Chapter. n` to `Vol. n Ch. n`
- Reduced requests fetching all chapters
- When batch downloading urls and error encountered. Do not stop immediately, instead ignore broken url
- Now you can search manga with empty keyword (`mangadex-dl -s`)
- Reduced startup time mangadex-downloader
- [`mangadex_downloader.format.utils.delete_file()`] Do not remove files when it doesn't exist
### Breaking changes
- MangaDex legacy urls are now deprecated
- [beautifoulsoup4](https://pypi.org/project/beautifulsoup4/) dependency was removed, because all of app works is depend on MangaDex API not MangaDex frontend website
- Erotica manga now cannot be downloaded without unsafe enabled
## v1.1.0
### New features
- Added aliases command line args
- Added `--version`, `-v` to print version
- Added ability to download list from user library
- Added ability to filter scanlation groups with user
- Added ability to download user followed list
- Added batch download with syntax `file:` to prevent conflict with reserved names in `URL` argument
### Fix bugs
- Fix missing fonts in Linux for any `volume` and `single` formats. If error occurred during creating chapter info or the text is really small. Please install Arial font or FreeSans font (from GNU FreeFont) [#20](https://github.com/mansuf/mangadex-downloader/pull/20) @bachhh
### Improvements
- Whenever the app in resuming download state, it will verify all downloaded images. Causing the app to perform faster when resuming download. **NOTE:** in v1.0.2 and lower, the app will open connection to MangaDex CDN to check if image from MangaDex CDN is same size as the downloaded one, which cause slow performance.
- Reduced fetching time before downloading a MangaDex list
- The app will not stop when server error happened. Instead, retry for 5 times. If still failed, the app will exit.
### Breaking changes
- `--enable-legacy-sorting` is now deprecated and does nothing. All images will be named with numbers leading zeros (ex: `001.jpg`)
- `pdf` format now will download the chapter first and then convert it.
## v1.0.2
### Fix bugs
- Fixed `--replace` is not working properly in `cbz` format
- Fixed `--enable-legacy-sorting` is not working properly in `cbz` format
- Fixed duplicate oneshot
### New features
- From now on, you can download mangas from user library (require authentication)
- Added new formats
- cb7 [#17](https://github.com/mansuf/mangadex-downloader/issues/17)
- cb7-volume [#17](https://github.com/mansuf/mangadex-downloader/issues/17)
- cb7-single [#17](https://github.com/mansuf/mangadex-downloader/issues/17)
## v1.0.1
### Fix bugs
- Fix page is starting from 2 when format cbz and pdf single is used
- Fix Random NoneType error while downloading [#19](https://github.com/mansuf/mangadex-downloader/pull/19)
## v1.0.0
### New features
- Legacy MangaDex url is now downloadable
- Added localization title and description for manga, with this you can choose different titles in different languages !
- Added pipe input
- Added ability to download all same chapters with different scanlation groups [#9](https://github.com/mansuf/mangadex-downloader/issues/9)
- Added ability to add chapter title to each chapters filename
- Added shortcut option for `--language`
- Added new formats
- raw
- raw-volume [#13](https://github.com/mansuf/mangadex-downloader/issues/13)
- raw-single
- pdf-volume [#13](https://github.com/mansuf/mangadex-downloader/issues/13)
- cbz-volume [#13](https://github.com/mansuf/mangadex-downloader/issues/13)
- Added search feature
- Added ability to login with email
- Added old technique sorting images [#10](https://github.com/mansuf/mangadex-downloader/issues/10)
- Now, each chapter filename has scanlation group name on it
### Fix bugs
- Fixed image is not finished downloading but marked as "finished" [#14](https://github.com/mansuf/mangadex-downloader/issues/14)
- Fixed duplicate scanlation groups [#11](https://github.com/mansuf/mangadex-downloader/issues/11)
- For Mac OS users, error like "OSError: cannot open resource" is should not be happened again. If you are getting this error again, please install Arial font (`arial.ttf`) in your OS. If still getting error, please report it to [issue tracker](https://github.com/mansuf/mangadex-downloader/issues)
### Improvements
- Reduced requests to MangaDex server (to reduce hit limits and provide faster downloading)
- Much better error handling
### Breaking changes
- mangadex-downloader now restrict downloading porn content by default, you can bypass it using `--unsafe` option. See [d3470ce](https://github.com/mansuf/mangadex-downloader/commit/d3470ce47e7475f604cdd8b30a12f249a2bbcb38) why i'm doing this. (**NOTE:** to clarify, you still can search porn manga in MangaDex by login and enable it in settings)
- [aiohttp](https://github.com/aio-libs/aiohttp) dependency was removed, because i don't have a plan to make mangadex-downloader asynchronous, also to reduce time to load the app.
- Changed default format from `tachiyomi` to `raw` format, see [6aa1c98](https://github.com/mansuf/mangadex-downloader/commit/6aa1c9801e5f7358d9a1ff2ac9eea88c0661bc08) why i'm doing this.
## v0.6.1
- Downloading manga with format `pdf-single` or `cbz-single` throwing error `The _imagingft C module is not installed` after updating to v0.6.x in bundled executable
- Download a list with different language is not working
## v0.6.0
- Added `pdf-single` save as format
- Added `cbz` (Comic Book Archive) save as format
- Added `cbz-single` save as format
- Now, you can download a list (`https://mangadex.org/list/...`) or a chapter (`https://mangadex.org/chapter/...`)
- Added `--type` option to override type MangaDex url
- Added `--start-page` option, start download chapter page from given page number
- Added `--end-page` option, stop download chapter page from give page number
## v0.5.2
- Fixed `--update` option is not working
- Fixed unhandled exception if `--start-chapter` is more than `--end-chapter`
- Optimized app
- Better error handling
## v0.5.1
- Fixed critical `ModuleNotFoundError` for those who installed from PyPI
## v0.5.0
```{note}
PyPI version is broken, the bug is already fixed in v0.5.1
```
- Fixed oneshot chapter is unproperly parsed
- Fix chapters are sometimes in string not in numbers [#7](https://github.com/mansuf/mangadex-downloader/issues/7)
- Fix `ConnectionError`
- Added `none` type in `--cover` option, if the value is `none` it will not download cover manga.
- Added save as format, available in 3 formats: `{tachiyomi, tachiyomi-zip, pdf}`. Default to `tachiyomi`
- Added PDF support
- Added Tachiyomi zipped support
- From now mangadex-downloader will no longer support Python 3.5, 3.6 and 3.7
## v0.4.2
- Fixed sometimes manga are failed to get volumes
- Fixed additional info manga are not appeared in Tachiyomi local
- Fixed uncomplete artists and authors in manga
- Fixed app still running when `--start-chapter` are more than `--end-chapter`
- Fixed app throwing error if one of chapters has no images
- Added auth handler. If login and logout is failed it will try again 5 times, if still failed it will exit (login) or ignored (logout)
- Added `--cover` option, select quality cover to download
- Changed license from The Unlicense to MIT License. From now the app will be released under MIT License.
## v0.4.1
- Fixed error if selected manga with different translated language has no chapters.
- Fixed sometimes manga are failed to get chapters.
- From now the app will fetch the chapters first before download the covers, writing details, etc.
## v0.4.0
- Added multi urls in a file support
- Added multi languages support
- Added update feature, **NOTE:** This feature highly experimental for compiled app
- Fix bug [#6](https://github.com/mansuf/mangadex-downloader/issues/6)
## v0.3.0
- A lot of bug fixes
- Added authentication support
- Reworked how download chapter images work
- Added `CTRL + C` handler
- Added [documentation](https://mangadex-downloader.readthedocs.io/en/latest/index.html)
- Added `--replace` option
For more detail about updates, see below.
- Fixed `--start-chapter` and `--end-chapter` malfunctioning #5 , thanks to @kegilbert !
- Added `--replace` option, replace manga if exist.
- Added KeyboardInterrupt (Ctrl+C) handler, so there are no messy outputs when `CTRL + C` is pressed. See example below.
Before
```shell
$ mangadex-dl "a96676e5-8ae2-425e-b549-7f15dd34a6d8"
[INFO] Fetching manga a96676e5-8ae2-425e-b549-7f15dd34a6d8
[INFO] Downloading cover manga Komi-san wa Komyushou Desu.
file_sizes: 55%|██████████████▏ | 1.51M/2.76M [00:00<00:00, 5.84MB/s]^CTraceback (most recent call last):
File ".../.local/bin/mangadex-dl", line 8, in
sys.exit(main())
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/__main__.py", line 59, in main
_main(sys.argv[1:])
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/__main__.py", line 45, in _main
download(
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 84, in download
download_file(manga.cover_art, str(cover_path))
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 27, in download
downloader.download()
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/downloader.py", line 117, in download
writer.write(chunk)
KeyboardInterrupt
```
After
```shell
$ mangadex-dl "a96676e5-8ae2-425e-b549-7f15dd34a6d8"
[INFO] Fetching manga a96676e5-8ae2-425e-b549-7f15dd34a6d8
[INFO] Downloading cover manga Komi-san wa Komyushou Desu.
file_sizes: 50%|████████████▉ | 1.38M/2.76M [00:00<00:00, 3.11MB/s]
[INFO] Cleaning up...
Action interrupted by user
```
- Added type checking for MangaDex url, so no more messy outputs. See example below
Before
```shell
$ mangadex-dl "invalid manga"
[ERROR] invalid manga is not valid mangadex url
Traceback (most recent call last):
File ".../.local/bin/mangadex-dl", line 8, in
sys.exit(main())
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/__main__.py", line 59, in main
_main(sys.argv[1:])
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/__main__.py", line 45, in _main
download(
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 37, in download
raise e from None
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 34, in download
manga_id = validate_url(url)
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 15, in validate_url
raise InvalidURL('Invalid MangaDex URL or manga id')
mangadex_downloader.errors.InvalidURL: Invalid MangaDex URL or manga id
```
After
```shell
$ mangadex-dl "invalid manga"
usage: mangadex-dl [-h] [--folder FOLDER] [--replace] [--proxy SOCKS / HTTP Proxy] [--proxy-env] [--verbose]
[--start-chapter CHAPTER] [--end-chapter CHAPTER] [--use-compressed-image] [--no-oneshot-chapter]
[--login] [--login-username USERNAME] [--login-password PASSWORD]
URL
__main__.py: error: argument URL: Invalid MangaDex URL or manga id
```
- Fixed report time for MangaDex network are high numbers
- Fixed massive reports to MangaDex network if response `status_code` was `206`
- HTTP server errors are now handled by the session
- Now `download()` will raise `InvalidManga` if given manga are not exist, see example below.
Before
```shell
$ mangadex-dl "2bdf5af0-54ab-41e2-978b-58e74bdb9d15"
[INFO] Fetching manga 2bdf5af0-54ab-41e2-978b-58e74bdb9d15
Traceback (most recent call last):
File ".../.local/lib/python3.8/site-packages/mangadex_downloader/fetcher.py", line 11, in get_manga
raise HTTPException('Server sending %s code' % r.status_code) from None
mangadex_downloader.errors.HTTPException: Server sending 404 code
```
After
```shell
$ mangadex-dl "2bdf5af0-54ab-41e2-978b-58e74bdb9d15"
[INFO] Fetching manga 2bdf5af0-54ab-41e2-978b-58e74bdb9d15
Traceback (most recent call last):
File "...\mangadex-downloader\mangadex_downloader\fetcher.py", line 9, in get_manga
raise InvalidManga('Manga \"%s\" cannot be found' % manga_id)
mangadex_downloader.errors.InvalidManga: Manga "2bdf5af0-54ab-41e2-978b-58e74bdb9d15" cannot be found
```
- Added `login()` for logging in to MangaDex API, for more info: https://mangadex-downloader.readthedocs.io/en/latest/api.html#mangadex_downloader.login.
- Added `logout()` for logging out from MangaDex API, for more info: https://mangadex-downloader.readthedocs.io/en/latest/api.html#mangadex_downloader.logout
## v0.2.0
- Some optimization
- Downloading chapters are now starting from zero (the previous one was from highest chapter)
- Added `--no-oneshot-chapter`. If oneshot chapter exist, don't download it.
- Added `--use-compressed-image`. Use low size images manga
- Added `--start-chapter`. Start download chapter from given chapter number.
- Added `--end-chapter`. Stop download chapter from given chapter number.
- Added `compressed_image` parameter in `download()` function
- Added `start_chapter` parameter in `download()` function
- Added `end_chapter` parameter in `download()` function
- Added `no_oneshot_chapter` in `download()` function
## v0.1.1
This update fixes critical error from v0.1.0
## v0.1.0
- Reworked app for MangaDex API v5
- Added CLI
- Added proxy support (http or socks)
- From now, the app will always download in tachiyomi local format.
Other features are coming soon.
````{note}
A lot of errors during running `mangadex-downloader` v0.1.0.
The errors (included with solution) can be see below:
Case 1
**Error:**
The app throwing error like this:
```shell
Traceback (most recent call last):
File "...../mangadex-downloader", line 5, in
from mangadex_downloader.__main__ import main
File "...../python3.8/site-packages/mangadex_downloader/__init__.py", line 13, in
from .main import *
File "..../python3.8/site-packages/mangadex_downloader/main.py", line 2, in
from pathvalidate import sanitize_filename
ModuleNotFoundError: No module named 'pathvalidate'
```
**Solution:**
Install `pathvalidate`
```shell
# For Windows
py -3 -m pip install pathvalidate
# For Linux / Mac OS
python3 -m pip install pathvalidate
```
Case 2
**Error:**
CLI `mangadex-dl` or `mangadex-downloader` didn't work.
```shell
$ mangadex-dl
Traceback (most recent call last):
File "...", line 8, in
sys.exit(main())
TypeError: main() missing 1 required positional argument: 'argv'
```
**Solution:**
Run mangadex-downloader module from python app with `-m` option
```shell
# For Windows
py -3 -m mangadex_downloader
# For Linux / Mac OS
python3 -m mangadex_downloader
```
````
## v0.0.5
- Bug fix: Changed API Mangadex URL from `https://mangadex.org/api/v2` to `https://api.mangadex.org/v2`
- New feature: Added `latest_chapters` attribute in `MangaData` class, to see the latest chapters in manga
## v0.0.4
- New feature: added `Mangadex.extract_basic_info()` to grab all information in manga without the chapters.
- New feature: added `data_saver` argument in `Mangadex.extract_info()` and `Mangadex.download()` to use low quality and size image.
- Enchantment: now mangadex-downloader will always using API for fetching information and chapters for manga, **NOTE:** for grabbing manga id still need scrapping from main website.
- Enchantment: Improved verbose logger.
- Bug fix: fixed failed to create folder when downloading manga in windows OS.
- `language` argument in `Mangadex` class, `MangadexFetcher` class, and `mangadex_downloader.parser.parse_infos()` (this function is removed too) is removed, until i explore all languages code in mangadex, right now mangadex-downloader will fetch and download in English language by default.
## v0.0.3
- Bug fix: given url doesn't have title in url causing empty and useless loop request
- Bug fix: `MangaData.__repr__()` raise error for `oneshot` genre manga
- New Feature: Add `output_folder` in Mangadex class arguments for choose the path in which store the downloaded mangas [#1](https://github.com/mansuf/mangadex-downloader/pull/1)
- Enchantment: add functional `Mangadex.download()`
## v0.0.2
- fixed failed to getting info when manga dont have more than 100 chapters
## v0.0.1
[NOT STABLE, USABLE]