141 Commits
Author SHA1 Message Date
timmy 8514f3c9cc Enable stricter mypy configuration 2026-08-16 13:06:44 -07:00
timmy 3caac771e1 Replace pycountry with isocodes
isocodes is updated more often and doesn't depend on deprecated packages
2026-08-16 13:06:44 -07:00
timmy 987938e7f7 Fix saving CBI when credits are empty 2026-08-15 13:42:50 -07:00
timmy be2b9f282a Handle errors when reading zip comments fixes #548 2026-08-15 13:42:50 -07:00
timmy da8237284b Merge branch 'mizaki-gmd_list_set' into develop 2026-08-15 13:42:50 -07:00
timmy aa9cda7378 Merge branch 'mizaki-remove_series_genres' into develop 2026-08-15 13:42:50 -07:00
timmy 44dd624c6a Merge branch 'lexNumbers' into develop 2026-08-15 13:42:50 -07:00
timmy 2dc5164f2d Fix parsing '&' with the "complicated" filename parser 2026-08-15 13:42:50 -07:00
timmy c367695477 Merge branch 'protofolius_issue_scheme' into develop
Ensure FilenameInfo is always filled out fixes #556
2026-08-15 13:42:50 -07:00
timmy 2ba87d1bc3 Fix parsing a month name in the series fixes #542 2026-08-15 13:42:50 -07:00
timmy ec40116398 Use importlib.resources instead of __file__ 2026-08-15 13:42:50 -07:00
timmy 47be75375c Convert ComicIssue into GenericMetadata
I could not find a good reason for ComicIssue to exist other than that
 it had more attributes than GenericMetadata, so it has been replaced.
New attributes for GenericMetadata:
  series_id:        a string uniquely identifying the series to tag_origin
  series_aliases:   alternate series names that are not the canonical name
  title_aliases:    alternate issue titles that are not the canonical name
  alternate_images: a list of urls to alternate cover images

Updated attributes for GenericMetadata:
  genre        -> genres:        str -> list[str]
  comments     -> description:   str -> str
  story_arc    -> story_arcs:    str -> list[str]
  series_group -> series_groups: str -> list[str]
  character    -> characters:    str -> list[str]
  team         -> teams:         str -> list[str]
  location     -> locations:     str -> list[str]
  tag_origin   -> tag_origin:    str -> TagOrigin (tuple[str, str])

ComicSeries has been relocated to the ComicAPI package, currently has no
 usage within ComicAPI.
CreditMetadata has been renamed to Credit and has replaced Credit from
 ComicTalker.
fetch_series has been added to ComicTalker, this is currently only used
 in the GUI when a series is selected and does not already contain the
 needed fields, this function should always be cached.

A new split function has been added to ComicAPI, all uses of split on
 single characters have been updated to use this

cleanup_html and the corresponding setting are now only used in
 ComicTagger proper, for display we want any html directly from the
 upstream. When applying the metadata we then strip the description of
 any html.

A new conversion has been added to the MetadataFormatter:
  j: joins any lists into a string with ', '. Note this is a valid
     operation on strings as well, it will add ', ' in between every
     character.

parse_settings now assigns the given ComicTaggerPaths object to the
 result ensuring that the correct path is always used.

Add test for split

Fix attribute names

Fix cbr tests
2026-08-15 13:39:46 -07:00
timmy 9fb91317db Fix folder archiver
Implement supports_comment and is_writable
Fix function call in ComicArchive for supports_comment
Add a menu option to open a folder as an archive
2026-08-15 13:39:46 -07:00
timmy a857d753ef Fix setting issue and alternate_number on GenericMetadata
IssueString.as_string always returns a string this is a problem for
  GenericMetadata. When the overlay function is used it checks
  specifically for the value None this allows the -m option to unset
  attributes however the issue attribute would get set to the empty
  string when loading ComicRack tags regardless of if there was a value
  stored in the file. Fixes #465 and #480
2026-08-15 13:39:46 -07:00
timmy 3344407b33 Merge branch 'mizaki-additional_comic_fields' into develop
Merge branch 'mizaki-fix_add_fields' into develop
2026-08-15 13:39:46 -07:00
timmy 1fe8de593b Separate xlate into separate functions based on return type fixes #454
Strip strings during xlate
2026-08-15 13:39:46 -07:00
timmy cef1ad4ccd Switch to rarfile for rar/cbr support
Improve rar error messages

Merge branch 'rar-cwd' into develop
2026-08-15 13:39:46 -07:00
timmy 0200b0f33a Revert get_recursive_filelist Fixes #449 2026-08-15 13:39:46 -07:00
timmy 41142df0cb Make PyICU optional
Update README.md

Reduce startup time natsort
2026-08-15 13:39:46 -07:00
timmy b482df6183 Reduce startup time - v1 2026-08-15 13:39:46 -07:00
timmy 60e3497818 Automate contributions
docs(contributor): contrib-readme-action has updated readme

Update AUTHORS

Update copyright statements to ComicTagger Authors

Update AUTHORS

Restrict contributions updates to only run on pushes to develop

Fix actions failure when there are no new contributors
2026-08-15 13:39:46 -07:00
timmy bcff17b081 Merge branch 'talker-cleanup' into develop 2026-08-15 13:39:46 -07:00
timmy 6f449ced2c Reduce startup time importlib 2026-08-15 13:39:46 -07:00
timmy a9a81a9c65 Turn comicapi.archivers.* into plugins 2026-08-15 13:39:46 -07:00
timmy 23d73aded4 Separate archivers into their own packages 2026-08-15 13:39:46 -07:00
timmy 5c88cf8a96 Change issue id to strings 2026-08-15 13:39:46 -07:00
timmy e5198c8ab6 Handle issue numbers with more than 3 digits
Improve issue number handling regarding the '#'
Collapse formatting parser

Add more 4-digit issue number tests
2026-08-15 13:39:46 -07:00
timmy 2951dc40b9 Merge branch 'settings' into develop
Merge branch 'mizaki-rename_namespace_fix' into develop
2026-08-15 13:39:46 -07:00
timmy b874614ea0 Reduce startup time wordninja 2026-08-15 11:52:55 -07:00
timmy cc407ecf25 Reduce startup time pil 2026-08-15 11:52:55 -07:00
timmy 71abf827f7 Reduce startup time 2026-08-15 11:52:55 -07:00
timmy 4e2cdb35f4 fixup whitespace comicapi 2026-08-15 10:29:26 -07:00
timmy 25aa2ef646 fixup formatting utils
fixup formatting version checker

collapse formatting optional msg
2026-08-15 10:29:26 -07:00
timmy c5a5fc8bdb Fix issue with combine_notes 2022-11-24 01:24:15 -08:00
timmy c608ff80a1 Improve typing 2022-11-22 17:11:56 -08:00
timmy c469fdb25e Make 7zip support optional 2022-11-06 08:27:45 -08:00
timmy d55d75cd79 Append notes instead of overwriting them
Add issue_id to GenericMetadata
2022-11-04 15:39:40 -07:00
timmy aad83c8c03 Update PyInstaller usage
Switch to rapidfuzz from thefuzz
Add associations to macOS app bundle
2022-10-25 21:48:01 -07:00
timmy 2daf9b3ed8 Style and typo fixes 2022-10-04 16:15:55 -07:00
timmy 4034123e6d Fix rar tests again 2022-10-02 21:47:07 -07:00
timmy 4b6d35fd3a Fix CBL tagging 2022-10-02 19:33:12 -07:00
timmy bc25acde9f Fix sorting
Switch natsort to use os_sorted
Remove directories when returning a list of files in a comic
Update tests to account for '!cover.jpg'
2022-09-10 19:48:50 -07:00
timmy 03677ce4b8 Fix renaming
Make ComicArchive.path always absolute
Fix unique_file not preserving the extension
Fix incorrect output when renaming in CLI mode
Fix handling of platform when renaming
2022-08-19 20:20:37 -07:00
timmy be983c61bc Fix #353
The two primary cases fixed are:
Ms. Marvel
spider-man/deadpool

The first issue removed 'Ms.' which is a problem as many comics have
series that the only difference in the title is the
designation/honorific.

The second issue is that the '/' was removed and not replaced with
anything causing a search for 'mandeadpool' which will not show useful
results.

Consequently all designations/honorifics are now untouched
All punctuation is replaced with a space
2022-08-12 07:10:36 -07:00
timmy 77a53a6834 Update dependencies
Includes changes from pyupgrade
2022-08-10 20:55:46 -07:00
timmy aadeb07c49 Fix issues
Refactor add_to_path with tests
Fix type hints for titles_match
Use casefold in get_language
Fix using the recursive flag in cli mode
Add http status code to ComicVine exceptions
Fix parenthesis getting removed when renaming
Add more tests
2022-08-08 18:05:06 -07:00
timmy f2a68d6c8b Fix rename and add test 2022-07-29 22:05:03 -07:00
timmy 94be266e17 Handle the 'primary' key missing in get_primary_credit
Fixes #342
Add better exception handling for the formatter
2022-07-27 23:24:34 -07:00
timmy 5a19eaf9a0 Fix serializing of sets 2022-07-25 11:22:44 -07:00
timmy 40314367c9 Improve formatting and consistency 2022-07-18 12:17:13 -07:00