Metadata-Version: 2.1
Name: comicbox
Version: 0.9.1
Summary: An API for reading comic archives
Home-page: https://github.com/ajslater/comicbox
License: LGPL-3.0-only
Keywords: comic,cbz,cbr,cbt
Author: AJ Slater
Author-email: aj@slater.net
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: ansicolors (>=1.1.8,<2.0.0)
Requires-Dist: confuse (>=2.0.0,<3.0.0)
Requires-Dist: deepdiff6 (>=6.2.0,<7.0.0)
Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
Requires-Dist: parse (>=1.15,<2.0)
Requires-Dist: pycountry (>=22.1.3,<23.0.0)
Requires-Dist: rarfile (>=4.0,<5.0)
Requires-Dist: stringcase (>=1.2.0,<2.0.0)
Requires-Dist: zipfile-deflate64 (>=0.2.0,<0.3.0)
Project-URL: Documentation, https://github.com/ajslater/comicbox
Project-URL: Repository, https://github.com/ajslater/comicbox
Description-Content-Type: text/markdown

# Comicbox

A comic book archive metadata reader and writer.

## 📚<a href="comicFormats">Comic Formats</a>

Comicbox reads CBZ, CBR, and CBT
archives and writes CBZ archives.

## 🏷️ <a href="metadata_formats">Metadata Formats</a>

Comicbox reads and writes:

- [ComicRack Comicinfo.xml v2.1 (draft)](https://anansi-project.github.io/docs/comicinfo/schemas/v2.1),
  - Also, an unofficial, undocumented Mylar extension to ComicInfo.xml that encodes multiple Story Arcs and Story Arc Numbers as CSV values.
- [ComicBookInfo format](https://code.google.com/archive/p/comicbookinfo/)
- [CoMet format](https://github.com/wdhongtw/comet-utils).
- A variety of filename schemes that encode metadata.

## ⌨️ <a href="usage">Usage</a>

### API

Comicbox's primary purpose is as a library for other programs with [comicbox.comic_archive](https://github.com/ajslater/comicbox/blob/main/comicbox/comic_archive.py) as the primary interface.

### Console

```sh
comicbox -h
```

to use the CLI.

### Config

comicbox accepts command line arguments but also an optional config file
and environment variables.

The variables have defaults specified in
[a default yaml](https://github.com/ajslater/comicbox/blob/master/comicbox/config_default.yaml)

The environment variables are the variable name prefixed with `COMICBOX_`. (e.g. COMICBOX_COMICINFOXML=0)

#### Log Level

change logging level:

```sh
LOGLEVEL=ERROR comicbox -p <path>
```

## 🛠 <a href="development">Development</a>

You may access most development tasks from the makefile. Run make to see documentation.

## Dependencies

Comicbox generally works without any binary dependencies but requires unrar be on the path to convert CBR into CBZ.

## 🤔 <a href="motivation">Motivation</a>

I didn't like Comictagger's API, so I built this for myself as an educational exercise and to use as a library for [Codex comic reader](https://github.com/ajslater/codex/).

## 👍🏻 <a href="alternative">Alternatives</a>

[Comictagger](https://github.com/comictagger/comictagger) is a better alternative for most purposes. It does everything Comicbox does but also automatically tags comics with the ComicVine API and has a pretty nice desktop UI.

