Skip to content

Releases: hentai-chan/hentai

Sort Option Deprecation and Type Hint Improvements

20 Mar 21:02
d9d941f
Compare
Choose a tag to compare

Update project dependencies and improve type hints here and there. After some investigations it turned out that Sort.Popular exhibits the same behavior as Sort.PopularYear, which is why we decided to remove the Sort.PopularYear option from the library (see also: https://github.com/hentai-chan/hentai/pull/144>). If in some shape or form your code depended on that option, replace it Sort.Popular. As far as I know, there is no suitable REST endpoint to retrieve that search option.

Special thanks to https://github.com/ttdyce for submitting a pull request for this issue.

Bug Fixes and CLI Enhancements

20 Oct 12:43
f24be14
Compare
Choose a tag to compare

It's a been a little over a year since this last major version (v2.0.0) and a lot of things have been improved since then.

  • Fix an issue in the download method that was responsible for creating corrupted images
  • Make verbose output in the command line interface prettier
  • Update and reformat doc strings for VS Code mouseover
  • Add the log command to the CLI
  • Add --user-agent, --proxies, --batch-file, --check and --no-check arguments to the download command in the CLI
  • Add backwards compatibility for Python 3.7 in the CLI and include unit tests for this part of the application as well
  • Overload Path params in function with str using typing.Union
  • Test library against Python 3.10 which previously has only been in beta phase
  • Improve help message formatting

Bug Fixes and Stability Improvements

28 Aug 22:31
971bb94
Compare
Choose a tag to compare

The log file path has been changed to a new, platform-specific location which is accessible via code through the get_logfile_path method. Page objects now also implement a download method which makes it possible to download individual pages:

from hentai import Hentai
doujin = Hentai(177013)

# download the last page to the CWD
doujin.pages[-1].download(doujin.handler)

Another noticeably change took place in the download method of Hentai objects: The zip option has been renamed to zip_dir to prevent conflicts with the built-in zip method from the Python standard library. On top of all of that, its implementation has also changed: archives created as a result of this operation use a .zip extension on Windows platforms (as it already did previously), and .tar.gz on macOS and Linux platforms (which is what's new). It also uses a more aggressive compression configuration, which makes for smaller archives but also increases the overall
execution time.

Additionally, a bug related to the previous implementation has been fixed by Shikanime Deva (deva.shikanime@protonmail.com) that was also caused by the (former) zip option in which the download directory was not properly cleaned up afterwards.

The --verbose option in the CLI is now turned on by default. You can revert this change by using the --no-verbose flag to run this command in scripts silently.

Last but not least, the underlying RequestHandler class experienced a few minor optimizations which also affects the Hentai class.

Lighter Dependencies

29 Jun 16:44
f4548d5
Compare
Choose a tag to compare

Makes the Hentai class hashable and changes the return type of some methods from List[Hentai] to Set[Hentai]. It also cuts down the total amount of external dependencies to 2 (requests and tqdm). Another noticeable change took place in the RequestHandler class: session objects now depict a descriptive and truthful UA string. This makes it easier for server administrators to identify bot requests.

Performance Improvements

16 May 21:34
Compare
Choose a tag to compare

Extends continuous integration scripts by running unit tests on all major platforms and recent versions of python - the version matrix now also includes 3.10-beta.1!

Note that this update also redefines the built-in CLI:

# now supports queued downloads! (turn on the progress bar with the verbose flag)
hentai --verbose download --id 1 2 3

# print title, genre, lang and num_pages (also supports multiple args)
hentai preview --id 177013

More importantly, this update also removes requests_html and colorama from the list of required project dependencies, making this library more lightweight and faster to install. Lastly, a security policy is now in place for disclosing security vulnerabilities. Head over to this project's security policy](https://github.com/hentai-chan/hentai/blob/master/SECURITY.md) to learn more about recommended security guidelines that you can follow while developing your applications.

Fix Permission Error from Logfile Path

26 Feb 22:54
7db94b7
Compare
Choose a tag to compare

Updates the documentation and moves the log file path on Linux back to ~/.hentai, but also improves the contributing notes for developers.

Command Line Interface

09 Feb 10:53
db70c4c
Compare
Choose a tag to compare

Moves the log file path from the home directory to /var/log on Linux-like systems and to %LOCALAPPDATA% on Windows. Also improves the GitHub issue templates and implements a basic CLI:

# get help
hentai -h

# download doujin
hentai 177013

# check module version
hentai -version

Patch Number of Favorites

31 Jan 22:21
9241534
Compare
Choose a tag to compare

Adds a log handler to the hentai module and implements a fallback mechanism to the num_favorites property of Hentai objects for recently uploaded doujins whose values (as they're returned by the API) equals 0 for a few weeks before they retain their actual number of favorites. This version also deprecates setup.cfg and made a few additional changes to the project structure, none of which should have any effect on users of this library.

Tag Performance Improvement

17 Jan 21:08
0892bd7
Compare
Choose a tag to compare

Improves performance of list and search in Tag and changes the signature of search to

  • search(option: Option, property_: str, value) -> Tag
>>> from hentai import Tag, Option
>>> shindol = Tag.search(Option.Artist, 'name', 'shindol')
>>> print(shindol.id)
3981

See full documentation at https://hentaichan.pythonanywhere.com/projects/hentai.

New Feature Release

31 Dec 20:37
b6eee97
Compare
Choose a tag to compare

This release adds a search method to the Tag class to make working with tags even easier:

>>> from hentai import Tag
>>> shindol = Tag.search('shindol')
>>> print(shindol.id)
3981

This is especially helpful when used in combination with the Utils.search_by_tag method which requires a tag ID as search parameter. Note that this works with any tag ID, e.g. character, parodies, and so on. See full documentation at https://hentaichan.pythonanywhere.com/projects/hentai.