{"id":15035162,"url":"https://github.com/jiangtian616/jhentai","last_synced_at":"2026-01-04T05:08:49.349Z","repository":{"id":37494768,"uuid":"470868236","full_name":"jiangtian616/JHenTai","owner":"jiangtian616","description":"A cross-platform manga app made for e-hentai \u0026 exhentai by Flutter","archived":false,"fork":false,"pushed_at":"2024-10-29T12:45:58.000Z","size":62999,"stargazers_count":2938,"open_issues_count":69,"forks_count":78,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-29T15:14:47.354Z","etag":null,"topics":["e-hentai","ehentai","ehtagtranslation","ehviewer","exhentai","flutter","hentai","manga"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiangtian616.png","metadata":{"files":{"readme":"README.md","changelog":"changelog/v4.0.4+77.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-17T06:05:30.000Z","updated_at":"2024-10-29T15:00:09.000Z","dependencies_parsed_at":"2024-11-05T15:28:38.032Z","dependency_job_id":null,"html_url":"https://github.com/jiangtian616/JHenTai","commit_stats":null,"previous_names":[],"tags_count":202,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiangtian616%2FJHenTai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiangtian616%2FJHenTai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiangtian616%2FJHenTai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiangtian616%2FJHenTai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiangtian616","download_url":"https://codeload.github.com/jiangtian616/JHenTai/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248272193,"owners_count":21075852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-hentai","ehentai","ehtagtranslation","ehviewer","exhentai","flutter","hentai","manga"],"created_at":"2024-09-24T20:27:42.193Z","updated_at":"2025-12-30T13:15:32.420Z","avatar_url":"https://github.com/jiangtian616.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"![platform](https://img.shields.io/badge/Platform-Android%20%7C%20iOS%20%7C%20Windows%20%7C%20MacOS%20%7C%20Linux-brightgreen)\n![last-commit](https://img.shields.io/github/last-commit/jiangtian616/JHenTai)\n[![downloads](https://img.shields.io/github/downloads/jiangtian616/JHenTai/total)](https://github.com/jiangtian616/JHenTai/releases)\n[![downloads](https://img.shields.io/github/downloads/jiangtian616/JHenTai/latest/total)](https://github.com/jiangtian616/JHenTai/releases)\n![star](https://img.shields.io/github/stars/jiangtian616/JHenTai)\n[![issue](https://img.shields.io/badge/chat-issue-brightgreen)](https://github.com/jiangtian616/JHenTai/issues/new)\n[![telegram](https://img.shields.io/badge/chat-telegram(Chinese_Mainly)-brightgreen)](https://t.me/+PindoE9yvIpmOWI9)\n\n# JHenTai\n\nEnglish | [简体中文](https://github.com/jiangtian616/JHenTai/blob/master/README_cn.md) | [한국어](https://github.com/jiangtian616/JHenTai/blob/master/README_kr.md)\n\n[Q\u0026A](https://github.com/jiangtian616/JHenTai/wiki/Common-Questions)\n\n## Description\n\nA manga app for E-Hentai, supporting Android \u0026 iOS \u0026 Windows \u0026 MacOS \u0026 Linux.\n\nStill in development stage, welcome to submit issues or feature requests.\n\n## Download \u0026 Install\n\n[\u003cimg src=\"https://raw.githubusercontent.com/jiangtian616/JHenTai/master/badges/download_from_github.png\" \n      alt=\"Download from GitHub\" \n      height=\"60\"\u003e](https://github.com/jiangtian616/JHenTai/releases)\n[\u003cimg src=\"https://raw.githubusercontent.com/jiangtian616/JHenTai/master/badges/get_it_on_obtainium.png\" \n      alt=\"Get it on Obtainium\" \n      height=\"60\"\u003e](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22top.jtmonster.jhentai%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2Fjiangtian616%2FJHenTai%22%2C%22author%22%3A%22jiangtian616%22%2C%22name%22%3A%22JHenTai%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Afalse%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Afalse%2C%5C%22sortMethodChoice%5C%22%3A%5C%22date%5C%22%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Afalse%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22v(.*)%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)\n\n[\u003cimg src=\"https://raw.githubusercontent.com/jiangtian616/JHenTai/master/badges/add_to_altstore.png\" \n      alt=\"Add to AltStore\" \n      height=\"60\"\u003e](https://intradeus.github.io/http-protocol-redirector?r=altstore://source?url=https://raw.githubusercontent.com/jiangtian616/JHenTai/refs/heads/master/altsource/AltSource.json)\n[\u003cimg src=\"https://raw.githubusercontent.com/jiangtian616/JHenTai/master/badges/add_to_sidestore.png\" \n      alt=\"Add to SideStore\" \n      height=\"60\"\u003e](https://intradeus.github.io/http-protocol-redirector?r=sidestore://source?url=https://raw.githubusercontent.com/jiangtian616/JHenTai/refs/heads/master/altsource/AltSource.json)\n[\u003cimg src=\"https://raw.githubusercontent.com/jiangtian616/JHenTai/master/badges/add_to_feather.png\" \n      alt=\"Add to Feather\" \n      height=\"60\"\u003e](https://intradeus.github.io/http-protocol-redirector?r=feather://source/https://raw.githubusercontent.com/jiangtian616/JHenTai/refs/heads/master/altsource/AltSource.json)\n\nInstall for Android: download .apk according to your device architecture and install.\n\n- arm64-v8a：Suitable for Android phones with 8th generation ARM processor(common choice)\n- armeabiv-v7a：Suitable for Android phones with 7th generation ARM processor\n- x86_64：rare\n\nInstall for iOS: download .ipa, then use [AltStore](https://altstore.io) or SideLoadly to sign.\n\n- You can get easier installation and updates by adding [AltStore Repo](https://intradeus.github.io/http-protocol-redirector?r=altstore://source?url=https://raw.githubusercontent.com/jiangtian616/JHenTai/refs/heads/master/altsource/AltSource.json)\n\nInstall for Windows: download Windows_xxx.zip, then unpack it.\n\n- If you use a proxy server, set proxy address at network setting page.\n- If you're using Windows 11 and can't launch app, try to run jhentai.exe in compatibility mode.\n- If it's blocked by Windows Defender, Please trust it.\n\nInstall for MacOS(No maintenance): download .dmg.\n\n- Trust it in system setting.\n- If you use a proxy server, set proxy address at network setting page.\n\nInstall for Linux(No maintenance): download Linux-amd64.deb or Linux-x86_64.AppImage due to your platform, then install\nor execute it (You may need to install webkit2gtk-4.1).\n\n\n- If you use a proxy server, set proxy address at network setting page.\n\n## Update\n\nUpdate for Android: download .apk according to your device architecture and install.\n\nUpdate for iOS: download .ipa, then use [AltStore](https://altstore.io) or SideLoadly to sign.\n\nUpdate for Windows: Delete old unpacked directory directly, then download latest Windows_xxx.zip, unpack it.\n\nUpdate for MacOS(No maintenance): download .dmg.\n\nUpdate for Linux(No maintenance): Delete old and download the latest product.\n\n## Help With Translation\n\nPlease submit a PR if you want to help with translation.\n\n[steps](https://github.com/jiangtian616/JHenTai#Translation)\n\n## Develop Motivation\n\nMy first project With Flutter. I aim at getting familiar with Flutter during development. Devices I use include Android\nphone, Ipad and Windows computer. E-hentai apps I used before have several bugs, and I don't understand source code\nbecause I have no development\nexperience with Android or ios, so I choose JHenTai to become my first Flutter Project.\n\n2022.08.20 After five months of development, JHenTai has gradually become more and more strong, and I have completely\nrefactored some codes for gallery page, reading page, download, etc.\nwhich are written at the beginning stage. I tried my best to extract the commonality between different page and style to\nreduce coupling,\nin order to benefit the development of new features. I would be very grateful if any kind of you could give me some\nadvice on coding style,\ndesign patterns and anything related to Flutter development or participate in the development of JHenTai.\n\n2022.10.29 I have been more familiar with basic Flutter development, and I'll focus on another area from now on.\nSo updates for JHenTai will be less than previous, but I'll still handle bugs or issues in time。\n\n## References \u0026 Thanks\n\nLayout and style references:\n\n- [FEhviewer](https://github.com/honjow/FEhViewer) : Mainly\n- [EHPanda](https://github.com/tatsuz0u/EhPanda)\n- [EHViewer](https://gitlab.com/NekoInverter/EhViewer)\n\nTag translation:\n\n- [EhTagTranslation](https://github.com/EhTagTranslation/Database)\n\nTag order optimization:\n\n- [e-hentai-db](https://github.com/ccloli/e-hentai-db)\n- [e-hentai-tag-count](https://github.com/mokurin000/e-hentai-tag-count)\n- [EhSyringe](https://github.com/EhTagTranslation/EhSyringe)\n\nApp translation：\n\n- [andyching168](https://github.com/andyching168) [kenny03211](https://github.com/kenny03211) [NeKoOuO](https://github.com/NeKoOuO) 繁體中文(台灣)\n- [lucas-04](https://github.com/lucas-04) Português brasileiro\n- [qlife1146](https://github.com/qlife1146) 한국어\n- [bropines](https://github.com/bropines) Russian\n\nmush thanks to these projects and people🙇‍\n\n## Screenshots\n\n### Mobile Layout\n\n\u003cimg width=\"250\" src=\"screenshot/mobile_v2.jpg\"/\u003e\n\n### Tablet Layout\n\n\u003cimg width=\"770\" src=\"screenshot/tabletV2.png\"/\u003e\n\n### Desktop Layout\n\n\u003cimg width=\"770\" src=\"screenshot/desktop1.png\"/\u003e\n\n### Gallery \u0026 Search\n\n\u003cimg width=\"250\" style=\"margin-right:10px\" src=\"screenshot/mobile_v2.jpg\"/\u003e\u003cimg width=\"250\" style=\"margin-right:10px\" src=\"screenshot/search.jpg\"/\u003e \n\n### Gallery Detail\n\n\u003cimg width=\"250\" src=\"screenshot/detail.png\" style=\"margin-right:10px\" /\u003e\u003cimg width=\"250\" src=\"screenshot/archive.jpg\" style=\"margin-right:10px\" /\u003e\n\n### Setting \u0026 Download\n\n\u003cimg width=\"270\" src=\"screenshot/setting_en.jpg\" style=\"margin-right:10px\" /\u003e\u003cimg width=\"250\" src=\"screenshot/download.jpg\" style=\"margin-right:10px\" /\u003e\n\n### Read\n\n\u003cimg width=\"250\" src=\"screenshot/read.jpg\" /\u003e\u003cimg src=\"screenshot/read_double_column.png\" /\u003e\u003cimg src=\"screenshot/read_continuous_scroll.png\" /\u003e\n\n## Main Features\n\n-   [x] Mobile, tablet, desktop layout(3 kinds)\n-   [x] Vertical, horizontal, double column read page layout(4 kinds)\n-   [x] GalleryPage, Popular, Favorite, Watched, History, support multiple gallery list style\n-   [x] search, search suggestion, tap tag to search, file search, jump to a certain page\n-   [x] online reading and download, support restore download task, support synchronize updates after the uploader has\n    uploaded a new version\n-   [x] archive download and automatic unpacking and reading\n-   [x] support loading local images and read\n-   [x] support assign priority to download task manually\n-   [x] support assign group to gallery and archive\n-   [x] favorite, rating, torrent, archive, statistics, share\n-   [x] password login, Cookie login, web login\n-   [x] support EX site(domain fronting optional)\n-   [x] vote for Tag, watch and hidden tags\n-   [x] comment, vote for comment\n-   [x] Fingerprint unlock\n\n## Translation\n\n\u003e [languageCode](https://github.com/unicode-org/cldr/blob/master/common/validity/language.xml)\n\u003e\n\u003e [countryCode](https://github.com/unicode-org/cldr/blob/master/common/validity/region.xml)\n\n1. Copy `/lib/src/l18n/en_US.dart ` and rename to `{your_languageCode}_{your_countryCode}.dart`\n2. Rename classname in new file(optional)\n3. Modify k-v pairs in method `keys` ,translate values to your language\n\nNow you can submit your PR, I'll do the remaining things. Or you can go on with:\n\n4. Enter `/lib/src/l18n/locale_text.dart ` , add a new k-v pair in method `keys`\n   =\u003e `{your_languageCode}_{your_countryCode} : {your_className}.keys()`\n5. Enter `/lib/src/consts/locale_consts.dart`, add a new k-v pair in\n   property `localeCode2Description`: `{your_languageCode}_{your_countryCode} : {languageDescription}` to describe your\n   language.\n\n## About compiling\n\n1. You need to manage your Android signing by yourself,\n   check https://docs.flutter.dev/deployment/android#signing-the-app\n2. Just run this project via IDEA or VSCode simply.\n\n## Main Dart Dependencies\n\n- [get](https://pub.flutter-io.cn/packages/get): dependency management, state management, l18n, NoSQL\n- [dio](https://pub.flutter-io.cn/packages?q=dio): network\n- [extendedImage](https://pub.flutter-io.cn/packages/extended_image): image\n- [drift](https://pub.flutter-io.cn/packages/drift): database\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiangtian616%2Fjhentai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiangtian616%2Fjhentai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiangtian616%2Fjhentai/lists"}