mokuro-reader icon indicating copy to clipboard operation
mokuro-reader copied to clipboard

[Feature request] Fully local app

Open kilpatrq opened this issue 10 months ago • 8 comments

I've been using Mokuro's HTML output with great success and have enjoyed being able to just send my friends who are on a similar reading level as me already-OCRed versions of manga we're reading. However, these are kindle copies that I bought and I know my friends bought-- I don't want to upload these to someone else's server, and I don't want to spend time and money investing in a personal web server or learning linux just for digital raw manga, something I only seek out about once every six months or so, when I can simply use an old version of Mokuro with HTML output still enabled for the forseeable future. I like mokuro and I understand the advantages of being able to develop it as an app instead of an HTML document, but without a local option, I and other people in my position will be completely shut out of any new features.

kilpatrq avatar Feb 12 '25 02:02 kilpatrq

Well, you're in luck. This is a web application that you effectively download to your browser, and run locally. It's database is stored locally. Manga you add to it is never sent to the internet. It's processed into a format the browser supports and stored locally. The only thing provided by the server is its icons and its code. All the manga you add is fully local.

Gnathonic avatar Feb 12 '25 05:02 Gnathonic

If you've tried "uploading" a bunch of stuff and noticed it taking a long time. That's not because it's actually "uploading". Version 0.9.1 has a simplistic database design. It gets the job done, but grinds to a stop as the catalog grows. I'm working on a overhaul for that. It's working, but still has a few bugs. I'll PR it to this repo once I have those ironed out. You can check it out here if you're curious, impatient or want to help with testing: Github: https://github.com/Gnathonic/mokuro-reader Deployed Web App: https://mokuro-reader-tan.vercel.app/

Gnathonic avatar Feb 12 '25 05:02 Gnathonic

I guess the documentation just does not adequately describe how to get this up and running for someone of my low skill level then, because the take-away I got was "this is a web app and you need a server to do this." I did try to "upload" a mokuro file, and nothing happened-- I was just left with a page saying my catalog was empty and my upload (which does not indicate ANYWHERE where this file is going and the word "upload" implies it is being sent to a remote server-- i don't know why you'd use that word if that wasn't the case) was successful.

Even then though, assuming I do use your server for "its icons and its code", what happens if it goes down? What if I don't have an internet connection? I'm left with a bunch of raw data and no way to use it unless I generated an HTML file.

kilpatrq avatar Feb 12 '25 06:02 kilpatrq

There is an "install" option in chrome and others, but I think it would still require the web server for operating some parts of the code like url resolution. Svelte, the code this web app in written in, cannot run in the browser directly, it generates the code for the browser dynamically. Making this completely offline, instead of just the manga being offline (which is what it already is). Would require starting from scratch in a new language. I don't even know if the thing you want can even be done in browsers.

Gnathonic avatar Feb 12 '25 06:02 Gnathonic

As for the use of the word "upload". It's correct from a strict technical perspective, but not correct from a layperson lingo perspective. I thought the same thing as you when I started using it. Questions like "how can they afford to host this" and "what are my storage limits" came to mind. But after investigating I found it was all local, which made way more sense. I did not make Mokuro-Reader, I'm just here enhancing usability. I'd like to update it to be more clear.

To add content you need to give it both the image data (as a zip, cbz, or files), and the ocr data (the .mokuro).

Gnathonic avatar Feb 12 '25 07:02 Gnathonic

BTW, if you follow the development instructions, you can run the webserver locally and just point your browser at that. You can even write a tiny script to run it with a double click, and even have it start with your computer in the background. No specific coding environment required. No money spent.

Gnathonic avatar Feb 17 '25 22:02 Gnathonic

Hi,

Maybe it would be better to create a new issue, but it's somewhat related and I don't really think it warrants a whole new post.

Is there a way to use the manga I have on my external drive without having them stored in my AppData? Obviously I could just upload volumes for each series I'm reading in chunks to save storage space (my usage just went over 20gb lol), but that's a lot less convenient than just having everything on my external hard drive accessible at any time.

From my understanding, browsers aren't able to directly read files from just anywhere on the disk though - would I be able to do this somehow by running it locally? Or is it impossible with the way the app is structured?

Caarda avatar Feb 20 '25 14:02 Caarda

@Caarda Sounds like a totally separate issue. Yours is about enabling alternate storage options to save on internal storage, and this issue is about being able to access the services while off grid.

To answer the question. Running it locally wouldn't help. It would take a lot of changes to enable external storage, but I'm already working on those changes. In my fork I've already separated the data from the metadata to massively improve performance and to enable alternate data sources, which is required for the thing you want. Once I get it back up to feature parity with this version I'll PR it back in. For now though, you can access it here https://mokuro-reader-tan.vercel.app/ and report issues you find here https://github.com/Gnathonic/mokuro-reader.

Your understanding of browser limitations is mostly correct. There is this though: https://developer.chrome.com/docs/capabilities/web-apis/file-system-access

Gnathonic avatar Feb 21 '25 17:02 Gnathonic