Skip to content

Releases: zachstultz/komga-cover-extractor

v2.4.22 - Notification Fix

20 Dec 00:39
ce40134
Compare
Choose a tag to compare

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

14 Dec 22:43
3d692c6
Compare
Choose a tag to compare

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
  • 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
  • Reduced duplicate code in check_upgrade() 3d692c6
  • Misc code cleanup and changes 3d692c6

v2.4.20

04 Dec 18:49
afd5e6d
Compare
Choose a tag to compare

Changes:

  • Removed isfile() check from remove_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

22 Nov 20:25
cf56fe4
Compare
Choose a tag to compare

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
  • 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

11 Nov 19:38
4e49a78
Compare
Choose a tag to compare

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

02 Nov 20:18
66e52a1
Compare
Choose a tag to compare

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
  • 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 of check_for_existing_series() 66e52a1
  • Misc changes. 66e52a1

v2.4.16 - Folder Renamer Rewrite

10 Oct 14:37
2ed3b12
Compare
Choose a tag to compare

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.

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
  • 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

19 Sep 16:02
dab1d2d
Compare
Choose a tag to compare

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() and replace_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

16 Sep 14:25
485d76b
Compare
Choose a tag to compare

Changes:

  • Fixed attribute error when match was found through alternative match (cover match) 485d76b

v2.4.13

15 Sep 18:33
3d83669
Compare
Choose a tag to compare

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 the og:image value for the cover if the series is mature 3d83669
  • Misc discord output title changes 3d83669