中文 | English
Bot that downloads ehentai / exhentai / nhentai / pixiv galleries locally and republishes them to Telegraph.
- Supports direct connections and outbound proxy for all traffic.
- Cache is local only: in-memory or filesystem-backed.
e-hentaiexhentainhentaipixiv
/start/help/sync <url>/id/version/cancel/delete <cache-key>for admins
Messages or captions that contain a supported gallery URL are also synchronized automatically
- Copy config_example.yaml to
config.yaml. - Fill in your Telegram bot token and at least one Telegraph token.
- If you need
exhentaiorpixiv, add the required cookies under their respective sections incollectors.
-
You can download the precompiled binary from the releases page.
-
Run with your config.yaml:
./DojinGo -c config.yamlwhen no -c argument is provided, it will default to reading config.yaml in the current directory.
docker compose up -d --buildOr build locally:
go build -o build/Dojingo ./cmd/DojingoRun:
./build/Dojingo -c config.yamlExample unit file: systemd/dojingo.service
Place your config at /etc/dojingo/config.yaml to match the unit file. Ensure storage.path in the config points to a writable directory, for example /var/lib/dojingo/cache.
Edit service and enable it:
copy dojingo.service to /etc/systemd/system/ and edit paths
sudo systemctl daemon-reload
sudo systemctl enable --now dojingo
sudo systemctl status dojingoLogs:
sudo journalctl -u dojingo -fExample:
bot:
token: "YOUR_BOT_TOKEN"
admins: [123456789]
telegraph:
tokens: ["YOUR_TELEGRAPH_TOKEN"]
author_name: "Author"
author_url: "https://example.com"
ipv6:
prefix: ""
storage:
type: "memory"
path: "./cache"
ttl: 3888000
max_entries: 1024
proxy:
upstream:
http: ""
socks5: ""
collectors:
exhentai:
ipb_pass_hash: ""
ipb_member_id: ""
igneous: ""
pixiv:
session: ""
whitelist:
enabled: false
ids: [123456789]Notes:
storage.typesupportsmemoryandfile.storage.pathis only used by file storage.ipv6.prefixcan be a larger IPv6 CIDR such as2001:db8::/64for rotating local source addresses.proxy.upstreamconfigures outbound requests and supportshttp(s)://orsocks5://(scheme optional forhost:port).- When
proxy.upstreamis set, all outbound traffic (Telegram API, collectors, uploads) uses it.
If you own a routed IPv6 prefix and want per-connection source rotation:
- Bind the prefix locally.
- Enable
net.ipv6.ip_nonlocal_bind=1. - Set
ipv6.prefixin the config.
This is optional. Leaving ipv6.prefix empty uses normal local networking.
Requirements:
- Go
1.26
Useful commands:
go test ./...
go build -o build/Dojingo ./cmd/Dojingo- The container reads
CONFIG_FILE, defaulting toconfig.yaml. - File-backed cache needs a writable directory.
This project is a reimplementation of eh2telegraph using Go. It adjusts the proxy configuration and storage mechanisms while retaining the core functionality.