Code Monkey home page Code Monkey logo

jhentai's Introduction

platform last-commit downloads downloads star issue telegram

JHenTai

English | 简体中文 | 한국어

Q&A

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

Download

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

Install for iOS: download .ipa, then use AltStore or SideLoadly to sign.

Install for Windows: download Windows_xxx.zip, then unpack it.

  • 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.

Install for MacOS(No maintenance): download .dmg.

  • Trust it in system setting.
  • If you use a proxy server, set proxy address at network setting page.

Install for Linux(No maintenance): download Linux-amd64.deb or Linux-x86_64.AppImage due to your platform, then install or execute it.

  • 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.

steps

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:

mush thanks to these projects and people🙇‍

Screenshots

Mobile Layout

Tablet Layout

Desktop Layout

Gallery & Search

Gallery Detail

Setting & Download

Read

Main Features

  • Mobile, tablet, desktop layout(3 kinds)
  • Vertical, horizontal, double column read page layout(4 kinds)
  • GalleryPage, Popular, Favorite, Watched, History, support multiple gallery list style
  • search, search suggestion, tap tag to search, file search, jump to a certain page
  • online reading and download, support restore download task, support synchronize updates after the uploader has uploaded a new version
  • archive download and automatic unpacking and reading
  • support loading local images and read
  • support assign priority to download task manually
  • support assign group to gallery and archive
  • favorite, rating, torrent, archive, statistics, share
  • password login, Cookie login, web login
  • support EX site(domain fronting optional)
  • vote for Tag, watch and hidden tags
  • comment, vote for comment
  • Fingerprint unlock
  • Support shortcut keys like 'Tab' and 'Arrow keys' in desktop layout

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:

  1. Enter /lib/src/l18n/locale_text.dart , add a new k-v pair in method keys => {your_languageCode}_{your_countryCode} : {your_className}.keys()
  2. 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.

Main Dart Dependencies

jhentai's People

Contributors

andyching168 avatar arkyver avatar dependabot[bot] avatar fakeboboliu avatar gzushgshsh avatar honjow avatar jiangtian616 avatar kenny03211 avatar khoadng avatar mokurin000 avatar pugaizai avatar qlife1146 avatar quackdoc avatar ujuiujumandan avatar voidxhoshi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jhentai's Issues

EXH sad panda: no data

I was trying to access ExH but it keep giving me Sad Panda: No data error.

Sad Panda: No Data
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ #0 Log.error (package:jhentai/src/utils/log.dart:88)
#1 BasePageLogic.handleRefresh (package:jhentai/src/pages/base/base_page_logic.dart:89)
#2
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ 15:33:51.900 (+0:01:00.097422)
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ ⛔ Refresh Gallery Failed

[bug] 搜索输入框键入时多余字符

当在搜索输入框内首次输入 中文/其他语言(仅测试了日语字符) 时会出现多余字符,但输入时足够快就不会出现多余字符

快速输入:
测试1

普速输入:
测试2

当按下回车搜索过一次后,再次输入则无多余字符问题;此时点击右侧 历史按钮 再次输入则复现问题。
测试3

猜测是 onkeyup -> onkeypress ?

[bug] 当改变下载路径时会删除非本程序下载的文件

当改变下载路径时会删除非本程序下载的文件

记一次不可逆的事故

当前版本引入了本地阅读模式,可以读取本地的漫画文件;但是读取的是下载目录下的文件,建议的用法是将漫画文件移入下载路径。

但是,一定会有一部分用户 (比如我😭) ,选择直接去设置中改变下载路径,以读取本地文件。

而改变下载路径是会 清空 原文件夹的!虽然会自动复制已下载的画廊。

但是,当用户迁移路径后再次更改下载路径 (比如迁移进了分类归档好的汇总目录,却发现无法读取多层目录时下文件时,决定再次改变下载目录恢复至原路径时) 就会发生一件非常可怕的事情...所有并非本程序归档的文件也会被 清空 !!

建议修改一下逻辑,或者用确认对话框提示(现在这个实在太rm -rf /了

关于阅读方向的建议

希望在切换到左右方向阅读时,可以支持双页或者横向铺满图片的阅读方式,可以极大改善大屏幕的阅读体验。感谢开发者

Plan: refactor download logic meanwhile supporting more download config

Current code for download is just a shit after adding features like changing download path and adding compatibility with different OS. It needs to be refactored.

现在与下载相关的代码可维护性较差,同时需要兼顾到改变下载路径、兼容不同操作系统路径权限等逻辑,亟需重构。

About project's packages usage

Hello, fellow flutter dev here.

First of all, very nice app.
If you don't mind, I have some questions about package choices here.

  1. Why did you choose extended_image over cached_network_image?
  2. Do you have any issues while working with getx? Does it testable? I am asking this because I heard a lot of bad things about it.
  3. executor looks like an abandoned package, do you have any plan to migrate it in the future?

改進建議與問題反饋

1.快速搜索的刪除按鈕增加確認,現在點一下就刪了,容易誤觸。如圖。
2.快速搜索若項目過多最下項難以點擊,易被透明導航欄擋住。如圖。
547cb8b9b0762b4f
3.使用快速搜索後,再鍵入搜索欄會產生一些預期外效果。以下以快速搜索內容為“language:japanese”的情況為例:
3.1直接點擊搜索欄,會保留“language:japanese”,此時在前方加入“關鍵詞 ”(帶空格)後執行搜索,最終會以“關鍵詞 language:japaneselanguage:japanese”進行搜索,“language:japanese”重複了且中間缺失空格,導致沒有任何結果返回。
3.2若以取代的形式在搜索欄鍵入“關鍵詞”(不帶空格),最終會以“關鍵詞language:japanese”進行搜索,由於中間缺失空格,導致沒有任何結果返回。
3.3只有以取代鍵入的方式鍵入“關鍵詞 ”(帶空格)後執行搜索,才能以“關鍵詞 language:japanese”進行搜索,正確返回結果。
3.4建議:在執行快速搜索後使用搜索欄進行搜索時,自動在尾部加上空格,且執行一次重複內容檢測,有需要時才在尾部追加原快速搜索的搜索內容。

多标签搜索优化

希望搜索的时候可以添加多个标签形成一个分组或者快捷搜索方式,类如这样的界面输入可以查询tag,然后支持多个标签
Screenshot_2022-09-03-00-00-22-39_52281ce7161e196b2504097dd3da5bb2
Screenshot_2022-09-03-00-01-10-94_52281ce7161e196b2504097dd3da5bb2
截图只供参考

"no data" when using rating filter

I don't know if I'm doing something wrong or is it a bug, but when using the minimum rating filter nothing shows up.
我不知道我做错了什么还是一个错误,但是当使用最低评级过滤器时,什么都没有显示。

This happens on my windows, and on android.
image

[Feature Request] 希望添加"长按保存当前图片"的功能

如题, 在浏览漫画或图集时, 有时只想保存其中的某一张或几张图片, 这种情况下如果下载整个图集就有些小题大做了.
所以可否添加在浏览图片时按住就可以选择将图片保存到文件或相册的功能. 谢谢

[bug] 在多次通过"点击tag"的方式进行关联搜索后, 返回上一层搜索结果时会黑屏, 无法访问中间结果

如题.
比如通过画廊A点击了标签x, 在x的搜索结果中点击B画廊, 再从B画廊中点击标签y. 然后从y的搜索结果返回B画廊, 这时还都一切正常. 但继续从B画廊返回x的搜索结果时, 就会进入一个黑屏状态, x的搜索结果完全不可访问了, 只能继续返回到A画廊.
如果上述步骤继续嵌套(比如出现画廊C和标签z), 那么只有第一个画廊和最后一组搜索结果可以访问, 中间的关联搜索都会变成黑屏不可达的状态.

Developing Feature: Refactor mobile&tablet layout

现手机布局和平板布局参考了Bilibili和FEhviewer的布局,然而相关使用的NestedScrollView组件自身bug较多,拓展性也很差,无法支持现在主力开发的windows平台,预计推出一个新手机&平板平局。

The current mobile layout and tablet layout refers to the layout of Bilibili and FEhviewer. However, the related use of NestedScrollView component has a lot of bugs, expandability is also very poor, can not support the main development of windows platform now. Expected to launch a new mobile & tablet layout.

2個功能建議:新增喚出快捷搜尋的獨立按鈕、新增快捷搜尋時的預設名稱自動填入新增搜尋內容

希望可以

1.新增喚出快捷搜尋的獨立按鈕

原因:

  • Android的側滑返回手勢會跟右邊邊緣左滑的喚出衝突到
  • iPadOS的窗口模式在滑動時會移動整個視窗

2.新增快捷搜尋時的預設名稱自動填入新增搜尋內容

原因:

  • 基本上在新增時不太會需要自訂顯示的名稱
  • 在新增時還要輸入名稱才能加進去

感謝開發者

Android menu got cover

The menu on android phone got cover up by the home button bar, fixed when I change the orientation but happen again if I close the app
Screenshot_20220719-163309.jpg

OOM Crash in IOS

For iOS users, JHenTai may crash suddenly after you using for a while because of out of memery. I will improve the memory use to fix it soon.

[Feature Request] 提一些UI功能性的改进

又是我,在进一步体验本应用时候发现了一些可以进一步改进的地方:
1、画廊详情页添加翻页功能,在翻看一些图片数以百计的画廊时惊觉没有翻页,想看到最后一张图片只能点开图片并拖动进度条到最后才能看。(阅读模式缩略图这个点子真的很棒,这是让我喜欢上本应用的原因)
2、快速回顶按钮可以在向下滚动以及页面停留不动的时候隐藏起来,执行向上滚动操作时才出现,这样子既能省出这一部分空间又符合操作逻辑。
3、图片加载失败的时候点一下图片占位空间就可以重新加载而非长按并点击底部的重新加载按钮,对于平板用户来说够到底部有点难。
4、缩略图栏可以用鼠标滚轮滚动(见下图)
image
5、也许可以加个长按进入复选模式快速下载多个画廊

未开启域名前置时,缩略图加载失败

在未开启域名前置时,软件无法加载出任何位置的缩略图,并显示“Failed to load image”字样。包括画廊页面的缩略图、画廊详情页上方和下方的缩略图、阅读界面下方的缩略图。
不过其他站点数据都可以正常获取,例如阅读界面的图片本身、画廊信息、评论信息等,都可以正常加载。在同一网络环境、同一设备下,使用网页和其他APP均可正常获取缩略图。
在Log里面提示的错误一致如下(除缩略图url不一样):Bad state: Failed to load https://exhentai.org/t/b7/70/b77018ace538c0d0c19664c93e70de0b9d60500f-2001822-1867-1400-jpg_250.jpg.

虽然开启域名前置后,缩略图便可以正常加载了;但是开启域前置后,一段时间后可能出现获取画廊数据失败的情况,所以还请作者大大能修复关于缩略图的BUG。
IMG_1025

EH站点设置在APP中无法应用

在EH站点设置中设置屏蔽画廊WESTERN和MISC在APP主页中仍然会显示以上画廊的内容。
另外希望可以添加点击画廊标签快捷搜索画廊的功能。
谢谢。
IMG_20220823_124310
IMG_20220823_124343
IMG_20220823_124411

V4.0 plan

里子工程:
1、新增本地阅读模式,可以将其他漫画复制到JHenTai目录下,把JHenTai当一个本地阅读器使用。
2、重写归档下载逻辑,如果能解决断点续传的问题的话就增加暂停和继续功能。
3、重写阅读页面手势布局。
4、性能优化,包括但不限于页面间的跳转、图片的加载和渲染、列表的加载等。
5、研究下里站的网络,看下有没有办法优化。

面子工程:
1、里子工程完成后,所有页面都会重写并迁移到Material Design 3,增加动画效果等,之前能力有限,只能尽力达到能用的水平。(但我一个写后端的审美很有限..


Technique:
1、Support read local mangas.
2、Rewrite the archive download logic, if I can solve the problem of 'resume breakpoint' then I'll support pause and resume feature.
3、Rewrite the gesture logic in read page.
4、Performance optimization, including transition between pages, loading and rendering of images, loading of the list.

Layout:
1、After the technique update, I'll rewrite all pages to make it more beautiful. (But i'm just a back-ender :(

4.0.1版本,窗口最大化时文字模糊

桌面分辨率2560*1440的设备上,窗口化时文字清晰度正常,最大化时文字模糊,还原正常。

test

文字模糊只影响到左侧的列表,右侧的画廊文字正常。
在分辨率1920*1080设备上正常。

[Feature Request] 希望添加画廊列表预览图右置模式

如题, 目前的画廊卡片模式中, 预览图是靠屏幕左边, 画廊信息靠屏幕右侧.
然而出于某种大多数右利手男同胞都懂的理由, 用左手翻动列表的时候, 左手拇指总会挡住一张或几张预览图.
所以可否添加一个镜像模式, 让画廊列表卡片中的预览图处于屏幕右侧, 画廊信息处于屏幕左侧.

Windows 11 22622.450 無法開啟程式

Windows 11 22622.450 (最新Beta版)無法開啟程式
程式會在工作管理員短暫出現後閃退
完全沒有彈出視窗
Windows 10 21h2執行完全正常

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.