Releases: zachstultz/komga-cover-extractor
Releases · zachstultz/komga-cover-extractor
v2.4.22 - Notification Fix
Changes:
- Fixed grouped notifications not being cleared at the end of execution, resulting in old notifications being sent multiple times. ce40134
v2.4.21 - Matching Improvements
Major Changes:
- Greatly improved alternative matching (cover matching) when matching a volume to the user's library.
- it now looks for three consecutive matching words in a row, anywhere in both series names, instead of only at the beginning.
- It also now generates a list of unique words from series folders in the user's library and if a word is in both series names and used three times or less in the entire library, then it will attempt on those series. 3d692c6
- for example, a series name like:
DanMachi - Sword Oratoria
would now attempt a cover match on the series:
Is It Wrong to Try to Pick Up Girls in a Dungeon - Sword Oratoria
because "Oratoria" is a unique word that wouldn't be in a user's library more than three times - both of these massively improve matching when the names are super different for the same series, and no accuracy is sacrificed as these changes merely affect what is allowed to be attempted for a cover match, the cover itself still has to find a match
- for example, a series name like:
- Folder renaming now happens after matching items to the user's library. 3d692c6
- avoids wasting compute renaming folders that otherwise would've been purged by having matched all their items to the existing library
- Massive code cleanup around the script using f-strings 3d692c6
Minor Changes:
- Added check to remove trailing commas on series names. 3d692c6
- Reworked how notifications are grouped
- added logic for resending notifications that failed with the first web hook, and aborting after too many failures
- Reduced total messages being sent to discord to further reduce rate limiting.
- the execution end time embed is now grouped like the rest of the notifications instead of being sent separately
- fixed some instances where notifications weren't being grouped until max (10)
- Fixed regression in publisher/release_group text file generator 3d692c6
- reverted
remove_unaccepted_file_types()
to previous version
- reverted
- Reduced duplicate code in
check_upgrade()
3d692c6 - Misc code cleanup and changes 3d692c6
v2.4.20
Changes:
- Removed
isfile()
check fromremove_unaccepted_file_types()
afd5e6d - When parsing the volume number, a result of 2000 or above is now discarded. afd5e6d
- Completely rewrote the
check_for_missing_volumes()
feature. afd5e6d - Added
storefront_keywords
for removal when normalizing a string for matching. afd5e6d - Partially rewrote
bookwalker_check
feature, and massively cleaned it up. afd5e6d- still a WIP
- Improved matching with
bookwalker_check
feature. afd5e6d - Fixed various incorrect matches with
bookwalker_check
feature. afd5e6d - Added Search URLs and original titles to
bookwalker_check
output. afd5e6d - Misc changes and fixes. afd5e6d
v2.4.19
Changes:
- Changed
check_for_existing_series()
to go through folders backwards. cf56fe4- this allows it to purge any inner-most empty folders first, then anything outside
- this fixes the outer-most empty folder not being purged when it contained subfolders that did get purged
- this allows it to purge any inner-most empty folders first, then anything outside
- Changed
get_all_folders_recursively_in_dir()
to now return root, dirs, and files, instead of just dirs. cf56fe4- allowed me to get rid of an uncessary files call
- Rewrote
get_lines_from_file()
to reduce complexity and reduced multiple loops into one. cf56fe4 - Fixed
get_file_part()
returning a string which crashed the script when creating the index_number for a Volume class. cf56fe4 - Fixed
check_for_existing_series()
crash when sorting volumes by their index_number, but one of them didn't have one. cf56fe4 - Fixed
check_for_existing_series()
skipping over a chapter/volume with the number 0. cf56fe4 - Disabled uncessary grouped series chapter sort in
check_for_existing_series()
cf56fe4 - Misc changes and cleanup cf56fe4
v2.4.18
Changes:
- Changed
check_for_existing_series()
to now pre-sort volumes/chapters by index_number. 4e49a78- fixes volumes 100 and up being processed first over earlier volumes, which doesn't allow those new volumes to use an alternative match/cover match cache location that the earlier volumes used
- allows the volume/chapter part to be taken into account, since index_number includes that
- Added seconds when applicable to watchdog execution time output. 4e49a78
- Added skipping non-valid zip files in
check_for_existing_series()
when the extension is in the manga_extensions array. 4e49a78 - Reduced unnecessary meta pulling when using checking for missing volumes feature. 4e49a78
- Reduced premium/non-premium items loops in
get_extras()
down to one. 4e49a78 - Rewrote
check_text_file_for_message()
4e49a78 - Rewrote
check_if_zip_file_contains_comic_info_xml()
4e49a78 - Rewrote
get_novel_cover_path()
4e49a78 - Rewrote
check_for_bonus_xhtml()
4e49a78 - Misc changes and cleanup. 4e49a78
v2.4.17 - Maintenance & Fixes
Changes:
- When a folder name is used in place of a file's empty series name, it will now remove any chapter/volume information. 66e52a1
- Folder EX:
Kindaichi 37-sai no Jikenbo -v01-v12-
-->Kindaichi 37-sai no Jikenbo
- Reorganize & Rename EX:
v01.cbz
-->Kindaichi 37-sai no Jikenbo v01.cbz
- Folder EX:
- Added check to
check_for_existing_series()
to skip over files with no detected chapter/volume number. 66e52a1 - Added requirement to cover extraction that all files in the series folder have the same series name in order for the folder series cover to be created. 66e52a1
- helps avoid a cover.jpg being created in a folder containing files from multiple different series, because that cover wouldn't be representative of the files in that folder, really only occurred if you store your files in an unorganized manor.
- Fixed a rare bug where
check_for_duplicate_volumes()
would insert and check against massive amounts of duplicates, resulting in extremely long processing times. 66e52a1 - Increased
get_komga_libraries()
re-attempt sleep timer to 60 seconds. 66e52a1 - Cleaned up
send_discord_message()
66e52a1 - Slightly cleaned up
check_upgrade()
66e52a1 - Rewrote
organize_array_list_by_first_letter()
66e52a1 - Rewrote
group_similar_series()
and moved it inside ofcheck_for_existing_series()
66e52a1 - Misc changes. 66e52a1
v2.4.16 - Folder Renamer Rewrite
Major Changes:
- Completely rewrote the download folder's folder renamer. 2ed3b12
- renaming folders based on a common matching series name is no longer limited to just the root folders of the download folder, it will now recursively rename.
- EX: 90% of the files series names in the folder have to be either the same or similar enough for this to be used.
- the backup legacy renamer that just looks for certain bracketed information is still limited to the root, and is naturally only used when series name based renaming could not be used.
- renaming folders based on a common matching series name is no longer limited to just the root folders of the download folder, it will now recursively rename.
Minor Changes:
- Adjusted alternative matching logic to also attempt on series names that have the same three starting words 2ed3b12
- will adjust in the future to accept three matching words anywhere in the series name, instead of just the first three
- should further improve edge-case scenarios
- will adjust in the future to accept three matching words anywhere in the series name, instead of just the first three
- Misc code changes and cleanup 2ed3b12
Planned Changes/Upcoming Features:
- Completely rewrite
check_for_existing_series()
, responsible for moving new volumes and upgrading existing.- this is needed before I solve the remaining edge cases in the new series mover, it's a horrible rats nest of code that I've been dreading touching, but it needs to be done
- Finish
move_new_series_to_library_toggle
feature- currently I exclude these code portions, which is kind of bothersome, but there are lots of edge cases to solve to avoid incorrect moves, it's not a quick feature to write properly, it requires lots of live testing and adjustments. I also have to find ways to simplify the setup so it's not too advanced for the average person.
- Reduce execution time with
copy_existing_volume_covers_toggle
feature- I wrote this one awhile back, it searches a volume library for a matching series cover so you can have a high-quality volume series cover for your chapter series on komga, but have yet to solve the additional compute that it added to the cover extraction when toggled. Hence why I've never mentioned it until now, and why the toggle still remains in the main code instead of settings.py
v2.4.15
Major Changes (WATCHDOG ONLY):
- Cover extraction will now only trigger on library paths where a file was added to. dab1d2d
- when a file wasn't added anywhere, it skips cover extraction
- cuts down unnecessary scans and overall execution time
- Cover extraction now skips over folders on subsequent runs when the folder's modification date hasn't changed. dab1d2d
- the first run will still hit everything in the library path that had something added to it since it has to store the initial modification dates on the first run (I debated on storing this in a permanent storage file, but decided not to for now, I prefer to avoid reliance on such a thing, as I feel like it makes the script less flexible)
Minor Changes:
- Changed watchdog exception back to a generic exception dab1d2d
- Switched more logic checks for volume_number and volume_part over to using index_number dab1d2d
- Added an infinite loop on watchdog execution, so the script restarts instead of quitting after an exception was handled dab1d2d
- Added caching to
get_highest_release()
andreplace_underscore_in_name()
dab1d2d - General improvements/fixes to
copy_existing_volume_covers_toggle
matching logic dab1d2d - Minor changes to feature execution order dab1d2d
- Removed duplicate watchdog message b060c6c
v2.4.14
v2.4.13
Changes:
- Censored
komga_ip
value output on watchdog settings output 3d83669 - Fixed chapter/volume number 0 not being set on
index_number
3d83669- fixes regression in library matching with chapter/volume 0 files
- Set
bookwalker_check
to not use theog:image
value for the cover if the series is mature 3d83669- fixes mature series cover images being the blank white image with "mature" written on it that bookwalker uses, though non-og:image images are lower quality, better than not having the actual cover
- Misc discord output title changes 3d83669