xgi / houdoku Goto Github PK
View Code? Open in Web Editor NEWManga reader and library manager for the desktop
Home Page: https://houdoku.org
License: MIT License
Manga reader and library manager for the desktop
Home Page: https://houdoku.org
License: MIT License
This may be broken up into multiple cards; just jotting some of my thoughts down here for future reference.
Things to do:
If you have additional requests or feedback, feel free to leave a comment.
"[" and "]" = they do not seem to work at all
"ctrl + <-" and "ctrl + ->" = both works only as to move to first page while no shortcut for last page
rest of them works as intended. Also personally I would prefer:
"ctrl + <-" and "ctrl + ->" as previous and next chapter so its easier to change without looking at the keyboard to find [ and ]
and "[" and "]" as first and last page shortcut.
It would also helpful if there is an option to automatically switch chapters to next upon reading the last page.
The number of columns is currently hardcoded to 6. There should be a slider (probably in the footer of the page) to change this value. It should likely only be visible when the covers layout is selected, i.e. not when the table or compact layouts are selected.
The slider should lock to whole numbers (with tick marks). I would expect it to go from 3-8, but that might change with testing.
There are some layout concerns with the way covers can currently be any aspect ratio. On the library page, shorter covers may display text content (title or badge) outside of the cover itself. Additionally, shorter covers may overlap title text on the series page.
The images don't have to be stretched -- ideally we would "zoom in" on the cover if necessary to get the desired aspect ratio without sacrificing quality.
j
for down and k
for up (habits from vim). The ability to customize keybinding for all the reader functionalities would be amazing.Technically these are two feature requests. Let me know if it's appropriate to split into two separate issues.
IDK but the app, when opened, just stays on the indefinite reloading library status [been going for nearly half an hour now]. Checking the Developer tools, i'm seeing this error.
The app has no height/width limit. You can actually do this [which i think, is a bad idea, i suggest having a width/height limit of atleast 800x600 pixels]. Actual shot of the app in limitless width/height below:
Tied with the second concern, the preview image is dependent on the app width. The preview size becomes smaller the less the width the app has. And because currently it has no height/width limit, you can possibly render the app invisible. I suggest the preview image has its set size and changing width makes the overflow element move to the next row instead.
Connected with the first concern, when you click the manga while the app says reloading library, you get this blank pink screen on the app. Basically, I cannot use the app now. I think removing the series and adding it back in would solve the issue, tho I haven't tried it yet.
Checking the developer tools gives me this error:
This will probably be a small text label in the cover's stackpane. See LayoutHelpers.createCoverContainer. Note that this method is also used to display covers on the search page, where it doesn't make sense to show these badges. We can probably just add a boolean "with_badge" parameter to this method to only show them on the library page.
Adding some display for the extension used by a series. May also include updating the control layout on this page.
Add an option to display all pages in a single stream. Ideally there would be an option for both horizontal and vertical, but I would consider vertical-only to be acceptable.
I don't expect this to be worked on in the near future as it requires many considerations.
I was using houdoku and was testing it because it has anilist support for pc and I had this problem when I was reading Record of Ragnarok it just changes into a pink screen and I tried reinstalling but it didn't solve the issue.
https://user-images.githubusercontent.com/86195433/128304087-859c97e9-3dbd-4b66-a742-a9471a311ea3.mp4
Add a setting for inverting the direction pages are read, mimicking how real manga works. i.e., the page counter increases when going left.
A simple way to do this would probably be to change the "previousPage", "nextPage" buttons to be "leftPage" and "rightPage" and have their actions be determined by the direction setting.
Sometimes when the manga is long when you read it without the sidebar it becomes too short and when you change the fit page it becomes full screen I wish there would be a setting where I can put the custom width for the manga reader and this setting will be saved.
It would be nice if it updated your list when you finish a chapter rather than when you start a chapter (or at least have a option for this).
There's no plan to support customizing the metadata for extension-based series, but we do want to allow editing the information that the user already has to provide when adding a local (filesystem) series.
Add support for Kitsu as a tracker (https://kitsu.io).
Kitsu supports OAuth, so much of the functionality can probably be copied from plugins.tracker.AniList.
(based off #12)
Add option to add NSFW tag that does the following
~ If the user disables the NSFW viewing, the cover image of the entry is somewhat blurred, like what you see on reddit posts when the post contains nsfw image
~ If the user enables the NSFW viewing, function exactly the same as SFW entries.
App just loads indefinitely, and only shows the error on the console ->
Uncaught (in promise) Error: Error invoking remote method 'extension-getPageRequesterData': Error: ENOENT: no such file or directory, scandir 'C:\Users\<USER>\Documents\Houdoku\Hatsukoi Zombie\[c1]'
I am currently finding a manga reader with a built-in manga downloader so I think houdoku is the best on for it and I don't know how to download manga in houdoku.
Hey dude,
Thank you so much for adding comments in the code haha! :)
I am going to add some issues and once I get to grips with the code, I will probably just self assign them.
Windows 10, Java Version 8 Update 201
When in the reader you do View->Fit Height and then View->Fit Width, the page is shifted to the right when it should be aligned to the left edge.
I haven't looked into why this occurs, but maybe check that all of the ImageView's properties are reset when changing between these two fit types.
Comparing Houdoku with https://github.com/tachiyomiorg/tachiyomi-extensions
There are some Extensions that are faster in certain countries.
Hiya, would there please be any bugs or enhancements that you have planned?
Would definitely like to contribute some code :)
When downloading manga I think it's better if we can change where to download the chapters and change the title of the downloaded chapters.
Actually, maxSize of pageNumField and totalPagesField is set to 50.
When the number of pages exceeds 2 digits, only 2 digits are shown fully.
In pageNumField it is possible to insert cursor and scroll but in totalPagesField it is not possible since the field is disabled.
So instead of using maxWidth I propose to use the number of colums (pref number of columns set to 2 in fxml and a binding added in the controller to allow the fields' number of columns to grow and shrink following the number of digits).
I'll send a PR to fix this.
Attached is a screenshot showing the phenomenon (the left textfield contains the number 128 but only 12 is shown, the right box already has my fix applied and the full 128 is shown).
While "Vertical" reading direction works perfectly and continuously, the current page is zoomed too much. I can not zoom out even with "ctrl+-" as "fit page width" is working even still (only makes the sidebar smaller while the page more or less remains the same).
And fit height makes it worse.
It would be helpful to have an option like fit to a margin (or smth like that).
Clicking the cover in the top left of the series page should show a popup of the cover filling the vertical height of the screen. Clicking the full-size displayed cover will hide it.
Having an option to choose Ascending or Descending order of chapters. Currently it is only descending by default.
Even when changed, it reverts back to descending upon reopening the series as well.
Add support for zooming in on pages in the reader. Should support the typical ctrl +/- shortcuts, and there should be preset zoom levels in the menu to select from.
Exception in thread "loadPage_MangaHasu <mangahasu.se>_/birdy-the-mighty-evolution/vol-3-chapter-24-accidental-summer-3-c687989.html0" java.lang.NullPointerException
at com.faltro.houdoku.plugins.content.MangaHasu.image(MangaHasu.java:144)
at com.faltro.houdoku.util.runnable.LoadPageRunnable.run(LoadPageRunnable.java:51)
at java.lang.Thread.run(Thread.java:748)
I'd love to see these features implemented. Sadly, I don't know how to code. :(
Add an option for displaying 2 pages in the reader side-by-side.
When the option is enabled, there would likely be 2 visible ImageView's. The ReaderController keeps track of the "current page number" -- I would be fine with simply using the first of the 2 visible pages as that number, and the subsequent page is displayed if available.
This change would also affect how the "Fit Height/Width/etc" buttons work.
(based off #12)
Currently these buttons can only be used by selecting a series in the Table or Compact layout (changeable in the bottom right) and then pressing the button. However, there is no way to select a series in the Covers layout, making the buttons useless.
It would probably be best to solve this problem by making covers selectable. Only one cover can be selected at a time, and selecting one should add a border around it. The remove and view methods would then need to way to access the selected series (it would be okay to have a private variable to track which series or ImageView is selected).
Add support for downloading chapters. Check for the downloaded chapter before using the plugins and load the downloaded images instead, if available.
Chapters should be stored in AppData/faltro/houdoku/downloaded/series-name/chapter-num/
as images with filenames corresponding to the page number.
I'm not yet sure what the UI should be for downloading a chapter. Maybe add an option to the right-click menu in the table on the series page.
Currently it shows the latest chapter on top. Is it possible to show the initial page with the last read title?
This would make it easier to choose the last read title.
Also, preferable to have a "continue reading" button to automatically open the last read (not the next unread as opening any chapter results as read)
Add support for fullscreen in the reader. There can be an option in the View menu to toggle/enable fullscreen. Fullscreen should hide the menu bar as well, but pressing Alt should popup the menu so that the user can deselect the fullscreen mode.
This will probably involve sceneManager.getStage().setFullscreen(...)
(based off #12)
Instead of going to the next chapter have it go to the last page you were on.
Add a button in the settings for exporting the library. It should display a file selector to which the library.json.gzip
file will be copied.
There could also be a button for importing the library, but I don't consider that necessary.
Having an sorting option to volume feels useless while there is an issue with decimals in chapters (so it skips chapter without reading). As of now title can not be sorted and I think the search option does not work.
Linking all the three together and treating every single title as chapters would be even more convenient. I primarily use this app for local reading so I have the folders sorted accordingly and having an option to sort titles would be perfect. I think this would work well with online mangas as well.
You mentioned that that we must follow your recommended directory tree. But doing this limits our freedom to name chapter via their intended titles
With a directory like -> Documents\Hatsukoi Zombie\Hatsukoi Zombie v1\Hatsukoi Zombie v1 c1
- The chapter title will be Hatsukoi v1 c1
. If i want to make my own chapter name, like: Documents\Hatsukoi Zombie\Hatsukoi Zombie v1\The Beginning
, the chapter will be The Beginning
but the context of the volume and chapter is lost (where a chapter being lost in context is acceptable, the volume being lost seems ridiculous, as it is inside the directory with v1 in it, the app should be able to detect the volume through it)
If the root folder name is the manga title, why does the app detects the title from the very first chapter folder? I.e. With a directory like -> \Hatsukoi Zombie\Hatsukoi Zombie v1\Hatsukoi Zombie v1 c1
, the Manga Title will be Hatsukoi Zombie, but if I make it \Hatsukoi Zombie\Hatsukoi Zombie v1\[v1c1] The Beginning
, the Manga Title for the entry will be [
. It should be Hatsukoi Zombie
since it is the root directory, but it chooses to select the name from the subdirectories instead.
Adding the Scanlation Source formatting makes no difference, it does not reflect on the metadata whatsoever. It just adds into the chapter title, which is still in the same format. If it was indeed a feature, it should have been like, another column for the scanlation source if the user provided it in the folder name.
Overall, it just confuses me. I wasted 3+hours just to configure a single volume single chapter into my liking.
2.4.1
Can also reproduce by clicking "Refresh" on the series or refreshing the entire library.
The series that I linked before should remain linked even after reopening/refreshing.
The series that I linked before were unlinked. Reading a new chapter no longer automatically updates on anlist, even though "Update Progress Automatically" is turned on in settings.
There were no log files to be found at ~/Library/Application Support/Houdoku/
Instead, here is the console output after linking a series and refreshing.
No response
I use the app on a big monitor and I noticed the table view does not fill available space.
A PR is coming to fix it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.