- Fix ignoring MacOS resource forks in archives.
- Detect .jxl extension (JPEG XL) as a comic page.
- Dependency xml parsing fixes and better Python 3.13 support.
- Add -R --replace_metadata option. Default behavior is to merge keys.
- Add -D --delete_keys option.
- Faster metadata writing. Replace files in zipfiles instead of rewriting the entire archive.
- Fix parsing negative issue numbers in filenames.
- Log common non-ComicBookInfo archive comments with less alarm.
- Deps security update
- Update pycountry
- Unknown urls give the path, query and fragment as the nss, not the domain
- Ignore dotfiles and macOS resource forks when finding pages.
- Fix export of CIX CoverArtist tag.
- Fix tagging Web and other unknown url tags. Accept any url for comicbox identifiers.
- Make language and country code parsing more durable
- Updated comicfn2dict fixes filename parsing bugs.
- Fix crash copying directories between archives.
- Fix crash with leftover temp files.
- Write ComicInfo.xml in TitleCase so Comictagger can find it.
- Write MetronInfo.xml & CoMet.xml in TitleCase for beauty.
- Fix duplicate reprints.
- Fix
--import
option crash. - Fix parsing tagger and updated_at from notes.
- PDFs read all metadata formats from the keywords field.
- PDFs write ComicInfo.xml to keywords field.
- ComicInfo.xml accepts spaces as web field separator.
- Accept numeric types for issues.
- Major improvements to filename parsing and diversity of filename schemas.
- This version contains large breaking changes, some detailed in The 1.0.0 CHANGES document
- Comicbox continues to primarily be an API for reading comic metadata but this version contains an enhanced CLI, and more powerful reading, writing, synthesis and exporting of metadata.
- Comicbox now sorts archive filenames case insensitively.
- Comicbox now writes identifiers to the notes field in urn format.
- You should probably read the code in
comicbox.box
for public facing apis. - comicbfn2dict and comicbox-pdffile are now independent packages.
- Sophisticated cli metadata parsing. See cli help and README.
- config.metadata_cli holds the new string format.
- Writing xml and json metadata to files is now pretty printed.
- Fix some instances where falsey values were not written.
- Fix comicinfo.xml ComicPageInfo typing.
- Change --metadata cli syntax to use key=[a,b,c] for arrays and key=a for simple values.
- WARNING: Breaking API, CLI & Config changes.
- Write metadata from the command line.
- Optional PDF support. Install as
comicbox[pdf]
- Python version now >=3.9
- Extract a range of pages from the cli.
- Removed dependence on Python 3.11
- StoryArc & StoryArcNumber for ComicInfo.xml exported as
story_arcs
dict. Supports Mylar multiple story arcs csv values format.
- Add close_fd & check_unrar config options for API use.
- Add ComicArchive.check_unrar_executable() public method.
- Remove closefd constructor option.
- Remove unrar.cffi support.
- Test for unrar executable for clearer errors.
- Fix
- Tags from ComicInfo.xml were not parsed
- Features
- ComicInfo.xml StoryArcNumber, Review and GTIN now parsed.
- ComicInfo.xml Pages attributes now exposed as snake case for python
- Fix
- Remove unrar-cffi dependency aciddentally left in during testing
- Features
- Print filetype cli option. get_archive_type() api method.
- Use unrar.cffi if it's available.
- Dev
- Use importlib instead of deprecated pkg_resources.
- Feature
- Demote parser errors to warnings.
- Feature --delete-rar option is now --delete-orig
- Fix
- Fix --delete-rar option sometimes deleting original cbzs
-
Fix
-
Fix rename function renaming files to nothing.
-
Fix --dry-run feature for rename.
-
Fix
- Enable support for Deflate64.
-
Fix
- Fix encoding/decoding crash by replacing uncodable utf-8 characters.
-
Features
- Add --metadata cli action. Injects metadata from cli.
- Warn when no actions performed.
- == operator for metadata is deep and ignores key order.
- Credits are now sorted.
-
Fix
- Log format conversions.
- Don't add empty credits list metadata.
-
Fix
- Fix dest-path cli argument.
- Use defusedxml for XML parsing.
- Fix recursion crash.
- Log exception during recursion and proceed.
-
Fix
- Remove uneccissary dependencies
-
Fix
- Fix filename extension parsing
- Renamed underscore cli options to use dash instead
- Fixed crash when recompressing directories.
-
Features
- ComicArchive class now has a context manager
- Removed as_pil() methods for pages and covers
-
Features
- Methods for getting covers and pages as PIL Images.
- Lazy metadata and cover pulling. Removes
metadata
andcover
options. - closefd option leaves archive open after method calls. Close manually with close().
- .cbt Tarfile comic archive support.
-
Features
- Issues numbers are now strings.
- Separate read metadata option from print metadata action.
- Added dry_run option.
- Namespace config under "comicbox" map to allow inclusion in caller configs.
- Allow modnames for local config sources, useful when comicbox is a library.
-
Fixes
- Trap errors reading user config files.
- Fixed cover extraction to a directory.
- Abort with message if pages asked to extracted to a filee.
- Handle more filename patterns.
- Fixed some file name patterns
- Accept environment variables and config files to configure.
- CLI accepts more than one path as targets for action.
- CLI runs every action on the command line.
- API
get_cover
init variable now set in config ascover
- Optional metadata parsing with config.
- Fixed combining CBI credits and with other format credits.
- More info in parsing warnings.
- More explicit raw tag titles.
- add colored python logging
- issue_count type change from decimal to int
- Fix synthesizing CBI & CIX credits data.
- Extract decimals from strings for more liberal reading.
- CBI changed
critical_rating
to decimal type from string (in CBI it's an int). - CIX gained the
community_rating
attribute from CIX 2.0 spec. age_rating
replacesmaturity_rating
to standardize more on CIXCoverArtist
replacesCover
to standardize more on CIX- Better CIX
Manga
parsing - Better CIX
BlackAndWhite
parsing - Added CIX
AgeRating
valid schema values, unused. - LGPL 3.0
- Update pycountry to be compatible with codex
- Comicbox now raises a specific UnsupportedArchiveTypeError for bad archives
- Option for getting the cover image at metadata load time as well.
- Remove regex dependency in favor of re module
- Fixed recursive mode trying to operate on directories
- Fix recompressing crash on cbr -> cbz conversion
- Fixed parsing for three new filename patterns
- Updated dependencies
- Fix parsing and writing genre, story_arc, series_groups tags
- Make metadata read more robust by catching individual tag exceptions and printing them to stdout
- Protect against null people names for credits
- More robust xml volume parsing
- Fix cli crash with bad import
- Fix relative imports
- Fix credit parsing errors
- Improve 1/2 Issue number parsing
- Don't crash import on bad credits
- initial release