jiangtian616/JHenTai
A cross-platform manga app made for e-hentai & exhentai by Flutter
About jiangtian616/JHenTai
jiangtian616/JHenTai is an open-source project on GitHub, mainly written in Dart. A cross-platform manga app made for e-hentai & exhentai by Flutter It currently holds 5,740 stars and 185 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #39 with 5 new stars today.
GitHub Repository Details
README
JHenTai
Description
A manga app for E-Hentai, supporting Android & iOS & Windows & MacOS & Linux.
Still in development stage, welcome to submit issues or feature requests.
Download & Install
%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%241%5C%22%2C%5C%22versionDetection%5C%22%3Atrue%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22JHenTai%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22JTMonster%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22https%3A%2F%2Fgithub.com%2Fjiangtian616%2FJHenTai%2Fblob%2Fmaster%2FREADME.md%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%7D%22%2C%22overrideSource%22%3Anull%7D)
Install for Android: download .apk according to your device architecture and install.
- arm64-v8a:Suitable for Android phones with 8th generation ARM processor(common choice)
- armeabiv-v7a:Suitable for Android phones with 7th generation ARM processor
- x86_64:rare
- You can get easier installation and updates by adding AltStore Repo
- If you use a proxy server, set proxy address at network setting page.
- If you're using Windows 11 and can't launch app, try to run jhentai.exe in compatibility mode.
- If it's blocked by Windows Defender, Please trust it.
- Trust it in system setting.
- If you use a proxy server, set proxy address at network setting page.
Fedora-based dnf linux distro:
sudo rpm --import https://meeks233.github.io/Jhentai-rpm/fedora/RPM-GPG-KEY-jhentai
sudo curl -fsSL -o /etc/yum.repos.d/jhentai.repo https://meeks233.github.io/Jhentai-rpm/fedora/jhentai.repo
sudo dnf install -y jhentai
- If you use a proxy server, set proxy address at network setting page.
Update
Update for Android: download .apk according to your device architecture and install.
Update for iOS: download .ipa, then use AltStore or SideLoadly to sign.
Update for Windows: Delete old unpacked directory directly, then download latest Windows_xxx.zip, unpack it.
Update for MacOS(No maintenance): download .dmg.
Update for Linux(No maintenance): Delete old and download the latest product.
Help With Translation
Please submit a PR if you want to help with translation.
Develop Motivation
My first project With Flutter. I aim at getting familiar with Flutter during development. Devices I use include Android phone, Ipad and Windows computer. E-hentai apps I used before have several bugs, and I don't understand source code because I have no development experience with Android or ios, so I choose JHenTai to become my first Flutter Project.
2022.08.20 After five months of development, JHenTai has gradually become more and more strong, and I have completely refactored some codes for gallery page, reading page, download, etc. which are written at the beginning stage. I tried my best to extract the commonality between different page and style to reduce coupling, in order to benefit the development of new features. I would be very grateful if any kind of you could give me some advice on coding style, design patterns and anything related to Flutter development or participate in the development of JHenTai.
2022.10.29 I have been more familiar with basic Flutter development, and I'll focus on another area from now on. So updates for JHenTai will be less than previous, but I'll still handle bugs or issues in time。
References & Thanks
Layout and style references:
Tag translation: Tag order optimization: App translation:- andyching168 kenny03211 NeKoOuO 繁體中文(台灣)
- lucas-04 Português brasileiro
- qlife1146 한국어
- bropines Russian
Screenshots
Mobile Layout
Tablet Layout
Desktop Layout
Gallery & Search

Gallery Detail

Setting & Download

Read


Main Features
- [x] Mobile, tablet, desktop layout(3 kinds)
- [x] Vertical, horizontal, double column read page layout(4 kinds)
- [x] GalleryPage, Popular, Favorite, Watched, History, support multiple gallery list style
- [x] search, search suggestion, tap tag to search, file search, jump to a certain page
- [x] online reading and download, support restore download task, support synchronize updates after the uploader has
- [x] archive download and automatic unpacking and reading
- [x] support loading local images and read
- [x] support assign priority to download task manually
- [x] support assign group to gallery and archive
- [x] favorite, rating, torrent, archive, statistics, share
- [x] password login, Cookie login, web login
- [x] support EX site(domain fronting optional)
- [x] vote for Tag, watch and hidden tags
- [x] comment, vote for comment
- [x] Fingerprint unlock
Translation
languageCode
> countryCode
1. Copy /lib/src/l18n/en_US.dart and rename to {your_languageCode}_{your_countryCode}.dart
2. Rename classname in new file(optional)
3. Modify k-v pairs in method keys ,translate values to your language
Now you can submit your PR, I'll do the remaining things. Or you can go on with:
4. Enter /lib/src/l18n/locale_text.dart , add a new k-v pair in method keys
=> {your_languageCode}_{your_countryCode} : {your_className}.keys()
5. Enter /lib/src/consts/locale_consts.dart, add a new k-v pair in
property localeCode2Description: {your_languageCode}_{your_countryCode} : {languageDescription} to describe your
language.
About compiling
1. You need to manage your Android signing by yourself, check https://docs.flutter.dev/deployment/android#signing-the-app 2. Just run this project via IDEA or VSCode simply.
About code contribution
1. There is no fixed requirement for branch names. You can make changes on your local master branch and submit a PR. 2. For changes that are large in scope or involve interactions between multiple modules, code submitted via Vibe Coding by developers without code review capability will not be accepted. Such code often fails to follow the project's existing coding conventions, is harmful to code extensibility, and its correctness cannot be guaranteed. 3. A single PR should focus on the minimal feature scope. If multiple features are involved, please submit separate PRs.
Developer Documentation
On desktop platforms(Windows/MacOS/Linux), you can pass a gallery url via command line argument, so that external software can use JHenTai as a reader and open a gallery directly:
# open a gallery on launch
JHenTai.exe -g "https://e-hentai.org/g/1234567/abcdef1234/"
JHenTai.exe --gallery="https://exhentai.org/g/1234567/abcdef1234/"
single image page url is also supported
JHenTai.exe -g "https://e-hentai.org/s/abcdef1234/123456-0"
-g/--gallery: open the gallery (or image page) on launch, other arguments are ignored. If no valid url is
- If a password/biometric lock is enabled, the gallery opens after unlocking.
- On MacOS, launch the executable inside the app bundle to pass arguments, e.g.
/Applications/JHenTai.app/Contents/MacOS/JHenTai -g (double-clicking in Finder doesn't pass arguments).
Main Dart Dependencies
- get: dependency management, state management, l18n, NoSQL
- dio: network
- extendedImage: image
- drift: database


