Hentoid
Hentoid copied to clipboard
Feature Request: Add options for downloading as .cb* archives
Feature Request: I have seen people request that you allow for the importing of .cbz, .cbr, etc. file formats for comics. I've seen that cbz and cbr have been implemented, as well as their respective archive bases.
I'd like to request that we extend this functionality, allowing users the ability tell the application to create an archive when it's downloaded. I would argue that this should be the default functionality, but I can imagine it breaking a lot of people's libraries when they get the update, so I think that's asking a bit much.
Issue #218 actually mentioned that doing such a thing would be helpful with addressing their issue, regarding images being user readable, causing them to be visible from the gallery, where they might not/probably don't wan't them, and I'd argue that it's a very simple solution to that problem (unless I'm drastically underestimating how easy it is to make a comic archive on download.)
In addition, I'd also like to request that compatibility with the .acbf (advanced comic book format) be implemented. ACBF as a standard has not had wide adoption yet, unfortunately due in part to the lack of updates for the specification and applications made by the original devs (the editor that they made was still using GTK2). However I'm currently working on updating some stuff in the editor myself, and I definitely think that the format specification could use some changes, and given that it seems like the original devs have all but abandoned it, I might as well see what I can do with it.
@AVnetWS/admin-team
Hi and thanks for your detailed feedback ! That's great to read when the majority of people use a one-liner when they request something 😉
First and foremost, I'd rather separate both topics :
- ACBF support in a new issue (#848 - could you please link the specifications there ?)
- Downloading as CB* in this issue
Regarding the latter, if your goal is to make pictures invisible from the phone gallery, that will very soon be handled in #686. We figured out making archives is not convenient for huge albums with thousands of pages. Using the filesystem is still the best way to store a huge quantity of pictures without being worried about size limits, performance or file corruption.
That being said, an option to export selected books to CB* is completely possible. Please let me know if you're still interested.
Thank you for responding. I'm young and fairly new to all of this (I've always been into tech and computing, but only recently started my path to teaching myself how to code and the like), but I trust that you know what you're talking about regarding the scaling issues with defaulting to a comic archive format.
I would still love the ability to export a comic as a comic archive (again, ideally you'd also increase support to include .cb7, cbt, and others that I might not know about). I would still like for there to be an option included for users enable automatic exporting. I'm picturing a switch somewhere in the downloads settings that says something along the lines of "Enable Automatic .cbz Archiving (WARNING: Can cause performance issues in comics with large page counts)".
Given that it's taken until now for somebody to open an issue regarding the usage of automatic archiving for comic downloads tells me that it's not exactly in high demand, and there'd be no rush, so if it's just not something you are wanting to put time into, due to other, more pressing issues, I'd be more than willing to work on functionality myself. To be completely frank, I would actually love to try my hand at working on it myself for both this and #848 as both a learning experience and something to add to my portfolio.
There's an "export to ZIP archive" option already available (library screen > long tap to select books > top bar > archive button)
Knowing that CBZ are more or less ZIP files, that should do the trick.
I'm not sure if supporting CBR, CB7 and CBT export should be priorized over more "operational" features the community has requested (see the current roadmap).
In my humble opinion, what you need sounds like "theoretical features", i.e. a features that have rational reasons to be there, but will be actually used by very few people.
=> I'll keep it here but it won't have priority. However, as you just suggested, you're totally free to contribute and I'll be glad to include pull requests from you into the main project.
PS : If you need any technical help, please contact me on Discord.
To be 100% honest, I have found that for the vast majority of user cases, the differences it compression between a zip, 7z, gz, rar, and bz just aren't big enough to justify using one over the other, particularly in this circumstance, where the files are images that have often already compressed, and since zip is overwhelmingly, I don't see any real reason to implement the others. It just seems like more overhead for very little return. I'll just focus on adding the 'download as .cbz' feature.
- [ ] Download as .cbz file
- [ ] Ability for the user to set 'download as .cbz' as the default behavior.
Forgive me for insisting, but I'm still unsure about why you need that feature.
-
To hide files from your phone library ? Then #686 has been designed and planned specifically for that
-
To be able to read your books outside of Hentoid as CBZ archives ? Then you should use the "export as ZIP" feature (library screen > long tap to select books > top bar > archive button)
Forgive me for insisting, but I'm still unsure about why you need that feature.
To be clear, this is not a feature that I think the application needs, but it is a feature (which I now realize would include adding the ability for the user to import and read .cbz/.cb*, which I'd previously thought was already possible) that I would like/love, and think that it would be beneficial for a handful of reasons:
- It is a bit odd to me that an application that is intended to download and read comic books isn't capable of reading any of the dominating comic book formats.
- I, personally, do not like the feeling that it gives me in the back of my mind, knowing that what I'm reading is literally just a bunch of images in a folder. To me, it legitimately feels like I actually did just print out a bunch of pictures of the pages, haphazardly throw them into a folder, and maybe staple the cover page onto said folder. Using a comic archive feels (to me) like I at least neatly stapled the pages together for easy reading.
- See #840 for another justification. It's not something that Hentoid needs, but there's really no reason not to include it other than labor potentially being better expended elsewhere.
- To be able to read your books outside of Hentoid as CBZ archives ? Then you should use the "export as ZIP" feature
I actually want this feature to exist for the same reason that I imagine most people would want the archive button to exist:
- Unless I'm mistaken, the export as ZIP feature mostly exists so that users can read the file with another application that they may prefer for reading, and they just like using Hentoid as a quick and easy way to download files.
- I actually love Hentoid as a comic reader in general, (although I only have Librera PRO to compare it to, as I haven't used any other dedicated comic readers), and would love to be able to use it as my main comic reader. In the same way that others have a favorite comic reader outside of Hentoid, I imagine that for many others, like myself, Hentoid is their favorite comic reader, and would love to be able to use it to read their other comics.
Additionally, there's the issue of accessibility.
- If I want to share a comic, the archive button, while easy to use, still is just one more step (actually two because, in many cases you need to manually change the extension to .cbz) in the process of exporting to another application. This is probably fine for most people, but for somebody with Executive Function Disorder (more commonly known by the misnomer Attention Deficit Hyperactivity Disorder), like myself, every single step in any given process is another barrier to completion (there are times where I've actually left food out for hours after cooking it because I realized that I had to wash something for me to eat with/off of).
-
There's also an oversight with the implementation of the archive button that exacerbates this problem. For somebody who does prefer to use another application for reading, I'm sure they've already set the default download directory/library to be wherever their preferred application's library is. The problem, of course, is one small oversight in the implementation the archive button, which is the fact that the user cannot decide where to export the archive to. So now, if I you like using Hentoid to download comics for reading in a separate application, this is probably the list of steps that is required (Each step that has been listed is often non-trivial for someone with EFD):
- Open Hentoid.
- Open preferred Doujinshi repository (nhentai for me).
- Find a comic that looks interesting.
- (Sometimes) Open that specific comic's web-page.
- Download the comic.
- Locate within app home screen (fortunately this is often placed right at the top)
- Archive application.
- Open downloads directory.
- Locate the archive which has just been exported. (Often particularly challenging due to non-intuitive naming convention.)
- Verify that particular archive is in fact the one that you just exported by looking inside.
- Select the archive and Copy to/Move to
- Navigate to your preferred reader's library
- (Sometimes) Depending on how often you do this, the previous step may also include locating your preferred reader's library
- Paste the archive into your preferred reader's diroctory.
- (Sometimes) Because not all reading applications support reading files with a .zip extension, users may be required to change the file extension.
-
That's 15 steps (I say it because MD doesn't like having ordered lists start normally if they're subordinate to a bulleted list.) Again, each task listed above is often non trivial, and is an additional barrier to completion for somebody with EFD. Yes, most applications have their own "import from external source" feature, but the number of steps doesn't change much. Even if we were to just implement the ability to import and read .cbz, it's would still be a similar number of steps due to that oversight in the implementation of the archive button. If that were fixed, and we either allowed users to specify a directory directory for archives to be exported to, or (ideally) allowed the option for it to ask every time, as well as allowing users to name the archive themselves, for somebody like me, that brings the number of steps down to a much nicer 8 or 9.
-
I'm sorry for the length of this particular response, I just wanted to be thorough. While it does take up the majority of this particular response, the accessibility isn't as big of an issue, and I think that my first and second points in direct response to your question were of greater significance.
As stated previously, I'd love to work on implementing this myself. I have gotten the impression, however, (correct me if I'm wrong) that you have previously been against such an implementation, and I hope that I've managed to make a compelling enough argument for why (I think) it would be greatly beneficial to include such a feature, despite it not being strictly necessary.
Additionally, I think that this should probably be separated into multiple issues:
- Improve existing archive feature to allow for users to specify location and name of exported archive
- Import and read .cb* archive
- Download as comic archive (.cbz)
PS : If you need any technical help, please contact me on Discord.
M8, I don't know what your discord is @RobbWatershed . I need help tho.
I did not forget you, I just have a very busy week IRL and on the current Hentoid roadmap.
Except for bugs reports, I rarely freeze the current roadmap to jump on feature requests, else the app wouldn't go anywhere.
Please be patient 🙃
PS : You can easily find me on the app's Discord. I'm the one who posts the announcements.
First of all, sorry for the delay. I agree with your suggestion of separating that issue into 3 different issues 👍
Improve existing archive feature to allow for users to specify location and name of exported archive
I've just created #872
Import and read .cb* archive
CBR, CBZ and CB7 are already supported. Is there something missing ?
Download as comic archive (.cbz)
I've just created #873
I hope we've covered the whole matter 😉 If so, I'd suggest to close the present issue (#847) which has been linked to the two others above as reference.
Sorry for the delay, but I've just got one more issue that I really want to reiterate.
CBR, CBZ and CB7 are already supported. Is there something missing ?
Currently, unless there's something wrong with my device, I cannot read cb* archives using Hentoid, I can only create them. I can select an un-archived comic in the library view, and then tap on the 'archive' button, but doing so has a few issues.
- The comic is archived into the system Downloads directory, not the application's download directory.
- It's a .zip archive, not .cbz (although the distinction isn't that important because of the next item.)
- Whether it's a .cbz or a .zip, Hentoid (or Hendroid, a fork with Google Play Services removed) cannot open the archive. It shows up in the library/gallery, but the thumbnail is missing, and when I try to read the file, none of the images will load, and it displays an 'image not found' message. It's able to read the metadata, but not the images themselves.
The comic is archived into the system Downloads directory, not the application's download directory.
That will be handled in #872
It's a .zip archive, not .cbz (although the distinction isn't that important because of the next item.)
That will be handled in #873
Whether it's a .cbz or a .zip, Hentoid (or Hendroid, a fork with Google Play Services removed) cannot open the archive
That is not normal at all and should already work. Are you certain you imported it using the external library feature (Settings > Storage > External library) ? Is there something wrong in the import log ? Are these files protected by a password ?
No, I had not thought to try that, but I'll do it now after I type this real quick.
I actually move the archive into the Hentoid/hendroid (they're both installed but use the same directory) main library/downloads directory. I've tried the main directory, and the specific nHentai directory (I only download from there), and I cannot read from either.
Edit: So I've learned two things. First, importing an external library WILL allow be to read cbz comics on hendroid, so my assumption is that it is the same case on Hentoid.
While this is partly my responsibility for not using the proper methodology, in my defence, it had never been indicated to me that I would need to import archived comics as if they were from an external library.
I think it's also an issue that the you need to import it for every new comic that's archived (at least, that seems to be the case).
I am also a bit confused as to why every archive imported needs to extract the meta info file. Unless I'm mistaken (which I'm very well may be), Librera does not need to extract the image and store it outside of the epub (which is just a zip file) in order to display it's meta data.
Now, I understand that this is not the most pressing issue at the moment, and that there may in fact already be fixed for all of the problems that I've mentioned. That being said however, I'd there are not already fixes in place, it'd be nice if there were a setting to tell the program that I want it to scan my libraries automatically for new content so that, it there is any, it can display it in my gallery (and index it, if necessary). Until then, I think it would be helpful if it were indicated more clearly that archives needed to be reimported in order to be read in the app, because I'd assumed that just moving/copying it into the existing library directory would be enough, and I'd never thought to import them from an external library until you mentioned it.
Sorry if I come off as nasty, it isn't my intention, I only want to provide useful feedback as a frequent user of the application, and indicate what would make the experience better for myself and others like me.
Thanks for your feedback, as always ! 😄
While this is partly my responsibility for not using the proper methodology, in my defence, it had never been indicated to me that I would need to import archived comics as if they were from an external library.
We do have a non-existent user manual, which does not makes things easy if you're looking for a very specific feature, granted.
I think it's also an issue that the you need to import it for every new comic that's archived (at least, that seems to be the case). it'd be nice if there were a setting to tell the program that I want it to scan my libraries automatically for new content so that, it there is any,
There's no auto-scan feature yet, but that might be technically feasible. I've opened #880 for that
I am also a bit confused as to why every archive imported needs to extract the meta info file. Unless I'm mistaken (which I'm very well may be), Librera does not need to extract the image and store it outside of the epub (which is just a zip file) in order to display it's meta data.
Do you mean "why does Hentoid create a json metadata file near every single archive ?". That's by design, as the app needs something to remember per-book stats (e.g. completion, number of times you opened it, last page you were on, custom title...) independently from the app's internal database that gets deleted when you uninstall the app.
I hope I've answered all your questions~~
All clarified questions have been filed as separate issues.
I'm closing that issue as the conversation is over.