Home

Awesome

<div align="center"> <a href="https://github.com/sinkaroid/tomoe/wiki"><img width="500" src="https://cdn.discordapp.com/attachments/952117487166705747/1013588505919762443/tomoe_.png" alt="tomoe"></a> <h3 align="center">An exalted doujinshi downloader with ease.</h3> <p align="center"> <a href="https://github.com/sinkaroid/tomoe/actions/workflows/bulk_download.yml"><img src="https://github.com/sinkaroid/tomoe/workflows/modular%20bulk%20download/badge.svg"></a> <a href="https://codeclimate.com/github/sinkaroid/tomoe/maintainability"><img src="https://api.codeclimate.com/v1/badges/a729e38da1fe1ee520b1/maintainability" /></a> </p>

Tomoe is a CLI tool for downloading doujinshi from various doujinboards. It's also has built-in modular bulk download and auto render into PDF (Portable Document Format) for it's utility, hopefully will be reusable.

<a href="#options">🚀 Commands</a> • <a href="https://github.com/sinkaroid/tomoe/wiki">Documentation</a> • <a href="https://github.com/sinkaroid/tomoe/issues/new/choose">Report Issues</a>

</div>

Tomoe vs. the doujinboards

Tomoe consumes Jandapress and uses janda for the doujin Python library.

Features availability Speed or performance may not be accurate because internet connection or API response. Some tests have high resolve time and render a bit longer, because some sources do not provide real extension of an images, tomoe should check and guess it's format.

SiteStatusBulk downloadAverage response
nhentaiNhentai downloadYes~0.52 minutes
pururinPururin downloadYes~0.63 minutes
hentaifoxHentaifox downloadYes~0.33 minutes
hentai2readHentai2read downloadYes~0.10 minutes
simply-hentaiSimply-hentai downloadYes~0.29 minutes
asmhentaiAsmhentai downloadYes~0.23 minutes
3hentai3hentai downloadYes~0.20 minutes

Features

<img src="https://cdn.discordapp.com/attachments/997107089921028136/1014351915578040380/tomoe_.png" width="600" alt="tomoe">

Site support

Currently tomoe supports the following websites:

Prerequisites

<table> <td><b>NOTE:</b> Python 3.7 or above</td> </table>

Installation

pip install tomoe

Command usage

tomoe --args <id|path>

Quick example

tomoe --nhentai 177013

After that, you could see the download results or throw you an error if something went wrong.

Options

It's fairly simple to use tomoe

ArgumentDescriptionExample
--nhentai, intnhentaitomoe --nhentai 255369
--pururin, intpururintomoe --pururin 47226
--hentaifox, inthentaifoxtomoe --hentaifox 59026
--hentai2read, strhentai2readtomoe --hentai2read chaldea_life/1
--simply, strsimply-hentaitomoe --simply "fate-grand-order/fgo-no-ashibon-fgo-foot-book/all-pages"
--asmhentai, intasmhentaitomoe --asmhentai 311851
--three, int3hentaitomoe --three 608979
--bulk, strcustom bulk downloadtomoe --bulk doujin.json
--pdf, strrender pdf for each titletomoe --nhentai 255369 --pdf

Bulk download

You can pass multiple id to request bulk download

SitesDescriptionExample
nhentaiplace multiple idtomoe --nhentai 255369 417103 417119
pururinplace multiple idtomoe --pururin 47226 64351 56175
hentaifoxplace multiple idtomoe --hentaifox 59026 61805
hentai2readplace multiple pathtomoe --hentai2read chaldea_life/1 watashitachi_producersan_ni_mechakucha/1
simplyplace multiple chaptertomoe --simply "fate-grand-order/fgo-no-ashibon-fgo-foot-book/all-pages" "original-work/kanchou-manga-cffc37a/all-pages"
asmhentaiplace multiple idtomoe --asmhentai 311851 210135 309068

Bulk download using nested list

tomoe --bulk doujin.json

If you need to download multiple doujins from each different website, you can do a bulk download using an arbitrary method. Meaning that you can mix and wrap the whole book ids into nested array in a JSON file. Read more about Understanding Nested Arrays.

Create doujin.json in the same directory where you want to run tomoe and follow this structure:
Note You should not change the "book" property

{
    "book": [
        {
            "nhentai": 177013
        },
        {
            "nhentai": 255369
        },
        {
            "pururin": 47226
        },
        {
            "pururin": 64351
        },
        {
            "hentaifox": 59026
        },
        {
            "hentaifox": 61805
        },
        {
            "asmhentai": 311851
        },
        {
            "asmhentai": 210135
        },
        {
            "hentai2read": "chaldea_life/1"
        },
        {
            "simply": "fate-grand-order/fgo-no-ashibon-fgo-foot-book/all-pages"
        }
    ]
}

Then tell tomoe to resolve all the book ids from the JSON file. tomoe --bulk doujin.json

Pronunciation

ja_JP • to-moe — commonly translated as "comma", is a comma-like swirl symbol used in Japanese mon. It closely resembles the usual form of a magatama.

Legal

This tool can be freely copied, modified, altered, distributed without any attribution whatsoever. However, if you feel like this tool deserves an attribution, mention it. It won't hurt anybody.

Licence: WTF.