Metadata-Version: 2.5
Name: getcomici
Version: 0.0.3
Summary: Retrieve and save images from manga distribution sites using Comici+.
Project-URL: Documentation, https://egpl.dev/getcomici/
Project-URL: Issues, https://github.com/eggplants/getcomici/issues
Project-URL: Repository, https://github.com/eggplants/getcomici
Author-email: eggplants <w10776e8w@yahoo.co.jp>
License: MIT
License-File: LICENSE.txt
Keywords: cli,comici,comici-plus,downloader,japanese,manga,manga-downloader,scraping
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Japanese
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: pathvalidate>=3.2
Requires-Dist: pillow>=10.4
Requires-Dist: requests>=2.32
Requires-Dist: rich>=13.7
Description-Content-Type: text/markdown

# getcomici

[![PyPI](
  <https://img.shields.io/pypi/v/getcomici?color=blue>
  )](
  <https://pypi.org/project/getcomici/>
) [![CI](
  <https://github.com/eggplants/getcomici/actions/workflows/ci.yml/badge.svg>
  )](
  <https://github.com/eggplants/getcomici/actions/workflows/ci.yml>
)

[![ghcr size](
  <https://ghcr-badge.egpl.dev/eggplants/getcomici/size>
)](
  <https://github.com/eggplants/getcomici/pkgs/container/getcomici>
)

Retrieve and save images from manga distribution sites using [Comici+](https://comici.co.jp/business/comici-plus).

Note: Redistribution of downloaded image data is prohibited. Please keep it to private use.

## Valid URL Formats

- `<host>/episodes/<id>`
  - e.g. <https://mangabu.jp/episodes/71f48a2c352ed>
- `<host>/series/<id>/rss`
  - e.g. <https://takecomic.jp/series/b167ea507d35f/rss>
  - Every episode the feed lists is downloaded, newest first.
  - The feed only carries the most recent episodes; use the series page below for the whole series.
- `<host>/series/<id>`, with or without `/new` or a page number on it
  - e.g. <https://takecomic.jp/series/3f846451aff2d>, <https://takecomic.jp/series/3f846451aff2d/new>,
    <https://takecomic.jp/series/3f846451aff2d/2>
  - The episode list is read from page 1 upwards until a page 404s, and every episode linked from it
    is downloaded, oldest first.

## Available Hosts

<details>

- <https://asacomi.jp>
- <https://bibibi-comic.com>
- <https://championcross.jp>
- <https://comic-growl.com>
- <https://comic-room-base.com>
- <https://comic.j-nbooks.jp>
- <https://comicpash.jp>
- <https://comicride.jp>
- <https://comics.manga-bang.com>
- <https://comirela.com>
- <https://ebookstore.corkagency.com>
- <https://g-comi.jp>
- <https://hanayume.com>
- <https://hayacomic.jp>
- <https://heros-web.com>
- <https://kansai.mag-garden.co.jp>
- <https://kimicomi.com>
- <https://manga-zegra.com>
- <https://mangabu.jp>
- <https://mangalt.jp>
- <https://mangaspa.nikkan-spa.jp>
- <https://namicomic.jp>
- <https://piacomic.jp>
- <https://studio.booklista.co.jp>
- <https://takecomic.jp>
- <https://younganimal.com>
- <https://youngchampion.jp>

</details>

## Installation

```bash
# mise via github release
mise use -g github:eggplants/getcomici

# mise via pipx
mise use -g pipx:getcomici

# pipx
pipx install getcomici

# pip
pip install getcomici
```

### Docker

```bash
docker pull ghcr.io/eggplants/getcomici

docker run --rm -v "$PWD:/work" -w /work \
  ghcr.io/eggplants/getcomici https://mangabu.jp/episodes/71f48a2c352ed
```

## CLI

```shellsession
$ cget https://mangabu.jp/episodes/71f48a2c352ed
get: https://mangabu.jp/episodes/71f48a2c352ed
  Downloading... ━━━━━━━━━━━━ 100% ( 18/18 pages ) remain: 0:00:00 spent: 0:00:02
saved: IRUKA/prologue
done.
```

## Library

```python
from getcomici import Comici

comici = Comici()
next_url, save_dir, saved = comici.get(
    "https://mangabu.jp/episodes/71f48a2c352ed",
    save_path="out",
)
```

## License

[MIT License](
  <https://github.com/eggplants/getcomici/blob/master/LICENSE.txt>
)
