Cocoa (
momijizukamori) wrote2024-05-12 12:34 am
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Ao3 Reader 0.1.0
Major features/bugfixes
- No longer crashes on rotation! Though custom views haven't had rotation code written for them mostly, so there will be weird rendering bugs in landscape mode.
- Support for devices through the Clara BW (so not the Clara Color or Libre Color, but everything else) - thanks upstream!
- The 'jump to page' feature of indexes (accesesed by tapping on the page count in the bottom right) now actually jumps you to the page instead of hanging
- The work details overlay (accessed by long-pressing on a work in the list) now actually shows all the tags and summary instead of cutting off partway into the second page.
- AO3 login! For now, you need to put your username and password in the .adds/ao3reader/Settings.toml file - in the future I'd like to have that info be enterable in the UI but we're not there yet.
- The above means 1) you can access archive-locked works, and 2) you can access your 'Marked For Later' list (currently at the end of the home page faves list) - that last one was a big thing I wanted, heh.
- A few bugfixes here and there - work listings with more than 1k works will now show the count properly, if a tag has been synned to another tag it'll handle the redirect instead of saying it's unwrangled, etc.
- Relevant only to people who want to do development on this, I figured out how to get the desktop emulator working (but it requires a bunch of system lib installs so not something I can just distribute for now, sigh)
Known Issues
- The summary view doesn't understand linebreaks, or HTML, so all the text is just one long paragraph. That's one of the next big goals
- Kudos are not working. Or working intermittantly? idk there's some weird session check stuff I was trying to debug today but I finally gave up
- About a million things remain unimplemented, lol
The installation instructions remain the same - the new 'one-click' package is here, and if you've already got an older version installed and just want to update the ao3reader install, the zip file is here (there's some library updates so it needs the whole folder, not just the binary this time).
- No longer crashes on rotation! Though custom views haven't had rotation code written for them mostly, so there will be weird rendering bugs in landscape mode.
- Support for devices through the Clara BW (so not the Clara Color or Libre Color, but everything else) - thanks upstream!
- The 'jump to page' feature of indexes (accesesed by tapping on the page count in the bottom right) now actually jumps you to the page instead of hanging
- The work details overlay (accessed by long-pressing on a work in the list) now actually shows all the tags and summary instead of cutting off partway into the second page.
- AO3 login! For now, you need to put your username and password in the .adds/ao3reader/Settings.toml file - in the future I'd like to have that info be enterable in the UI but we're not there yet.
- The above means 1) you can access archive-locked works, and 2) you can access your 'Marked For Later' list (currently at the end of the home page faves list) - that last one was a big thing I wanted, heh.
- A few bugfixes here and there - work listings with more than 1k works will now show the count properly, if a tag has been synned to another tag it'll handle the redirect instead of saying it's unwrangled, etc.
- Relevant only to people who want to do development on this, I figured out how to get the desktop emulator working (but it requires a bunch of system lib installs so not something I can just distribute for now, sigh)
Known Issues
- The summary view doesn't understand linebreaks, or HTML, so all the text is just one long paragraph. That's one of the next big goals
- Kudos are not working. Or working intermittantly? idk there's some weird session check stuff I was trying to debug today but I finally gave up
- About a million things remain unimplemented, lol
The installation instructions remain the same - the new 'one-click' package is here, and if you've already got an older version installed and just want to update the ao3reader install, the zip file is here (there's some library updates so it needs the whole folder, not just the binary this time).
no subject
Relevant only to people who want to do development on this
I should, maybe? Not that i have too few things to do, but I kind of find myself without fandom lately, so maybe i should do some fandom-related coding instead. maybe. (I don't think I'm quite depressed enough yet. /o\ )
no subject
Honestly unless you're already familiar with low-level GUI programming, I don't know that I can recommend it XD It's definitely kind of a slog. But I could always use more testers, and input on the visual layout and workflows.
no subject
(Anonymous) 2024-07-11 10:31 am (UTC)(link)hi! I know this is an old post, but if you want to know how to get the emulator to work, it's right there in the plato docs — I'm on an ARM mac, so I just run
brew install mupdf harfbuzz djvulibre sdl2 && ./run-emulator
and it does the rest.*
*okay, I also had to update crates/core/build.rs to include a new
cargo:rustc-link-search=
line because it wasn't finding the libs.Dunno if this is useful but I hope it is! Best, Leah B.
no subject
I've also been thinking of writing a script that adds actions in the finished reading menu for epubs downloaded from AO3 (either by the AO3 download or the FanFicFare downloader) to enable kudos and comments, but haven't gotten started on it yet. (I do a lot of web dev, but this is gonna be my first low-level device GUI work.)
no subject
Hmm, I think the Clara2E /should/ be in the supported device list, and usually if it's the app crashing you'll see the loading dots and then it'll just dump you to the regular Kobo reader app. Have you successfully installed other third party stuff like Plato or KOReader before?
no subject
The blank page is also weird, because it has the header bar (with search button and favorite tags), but neither works. If the Plato install is successful, my next step is to start poking on the bash scripts and .ini files see why things aren’t loading
no subject
I might poke on the default settings and see what the minimal tweaks are to get it working with the Clara 2E... but only after I complete my next quest, which is to make it not crash when I click Marked For Later :) (the regular tags work, though!)
no subject
If it crashes on 'marked for later' it may be failing to log you in properly - either way I think there should be a log file in the folder with the binary that will have any stack traces/messages! Also for issues - you're probably better off dropping them in a comment here, my github notifs get routed to a different folder and I'm bad about remembering to check them.
no subject
I figured out the Marked for Later issue! In the WorkIndex code, there is a line that saves the max page that can be visited. The way this code is written, it assumes that pagination will always exist on any page that has a list of works. For any page that does not have pagination (ie tiny fandoms or short marked-for later lists), this code breaks.
Relevant error message:
thread 'main' panicked at crates/core/src/view/works/workindex.rs:65:39: index out of bounds: the len is 0 but the index is 4294967294
no subject
My main goal with my new e-reader is to get it set up so that I can read fics, and then leave kudos and comments for the author, or bookmark the fic to add it to my personal library (I have automated Calibre + FanFicFare scripts set up to save all fics in my bookmarks to my Calibre library)
no subject
There isn't but I should see about writing one up because every time I pick this project up again I'm like 'how... do I build this again.....?' I think I need to reload it on my own Kobo (a Libra 2) anyway so perhaps this weekend I'll see about doing that. As a first step though, if you haven't done Rust dev before, there's some setup steps - https://www.rust-lang.org/learn/get-started (and if you have, disregard, heh)
(also re: that error, lolsob love a good integer overflow bug :'D)
no subject
I’ll definitely take a look at the tutorial! You’re right, I haven’t worked with Rust before, but I’m a bit of a language generalist, so it shouldn’t be too hard to pick up on the fly!
I was downloading the repo early to fiddle with it, and didn’t see any kind of unit or integ tests, are they in a different repo or just yet to be written?
In particular, if there’s no integ tests currently I might fiddle around with cucumber-rust and write some feature integ tests based on your dev/release notes, so I don’t have to worry about regression once I start actually fiddling with the code! (As long as you aren’t opposed, of course! And definitely let me know if I overstep at any point while working on this, I don’t want you to feel like I showed up out of the blue and am steamrolling everything.)
no subject
haha, I feel you, I am also something of a generalist and this was my first real Rust project at all. And no, I don't think there are any tests - certainly I haven't written any, and it looks like upstream (ie, Plato) doesn't have any either. I'm totally game to add some in this repo though - I am pro-testing, I am just extremely bad at remembering to write them/writing them myself.
no subject
Awesome! I love writing tests when I dive into a new codebase, so it’s nice to know they will be useful!
I managed to get the release build script building successfully (with some help from the Plato setup files and my girlfriend’s much greater hardware dev skills) and got the
cargo build
andcargo test
commands working in my dev environment.I also sent out a PR with some documentation updates (how to do the one click install in the README, and a set of .feature files that list all the features I could find in the devlog posts for the reader that I could verify on my own device :), and a small tweak to the settings example file).
I’m planning on getting some unit tests working next!
no subject
Awesome! The emulator is just the run-emulator.sh script in root, I don't think I had to do anything super-whacky once I fixed the actual Rust code? Also I just checked and uh apparently had a whole bunch of changes I hadn't pushed (probably from the last version I shared the built files for here), so you probably want to sync that, heh.
no subject
I sent out another PR with my initial testing changes! (plus the dockerization changes that diantox made so that I could code it on my Fedora system :))
It might be a while until I add any more commits, as I'm about to dive into the new Zelda game, so I figured I should PR what I have, instead of letting it sit in limbo for forever.
no subject
I'll have a look, and enjoy Zelda! Eventually I will finish my BotW playthrough and get to the newer ones.....
no subject
(For example, in the one-click install, a NickelMenu file is created that adds a dedicated AO3Reader button in the main NickelMenu menu, but the KFMon NickelMenu file that is also installed by the one-click install of AO3Reader has a generator that adds all watched KFMon files to the main NickelMenu. This results in 2 buttons for AO3Reader in the main NickelMenu)
no subject
-The story does not load with the default font despite it being set in the app and showing up correctly in settings.toml, I have to select the font for every story despite it already showing as selected in the software
-Accidentally clicking any hyperlink outside of the text itself crashes the app, I would make an option to disable these links if possible to prevent it from trying to load the external webpage and crashing
-Same issues that quertynerd97 mentioned with the Marked for Later page being broken and AO3Reader showing up twice in Nickelmenu. I fixed the Marked for Later page being broken by just adding more stories to it on my account and I deleted the nickelmenu file for AO3Reader and it deleted the duplicate.
Again thank you so much for making this!
no subject
I think these are all programmer error ;) I think the ideal way to handle links would be to offer to open them in the experimental browser (which is I think what the stock Nickel reader does, iirc?) but yeah, making them non-clickable is probably an easier stopgap.
For the default font, if you're willing to do some testing, could you install Plato (https://www.mobileread.com/forums/showthread.php?t=314220) and see if you have the same problem? No worries if you don't want to, I'll get around to it myself, but it'd help narrow down whether the issue is something in the base app or in changes I made to it (as ao3-reader is a fork of that codebase)
no subject
Also, I like to use a fork of Plato (https://github.com/thataboy/plato) with additional features, but when I installed ao3 reader, it didn't play nice with it, so I went back to standard Plato. I'm guessing ao3 reader uses some files or is dependent on normal Plato so using the fork messes it up. I don't know if it would be possible to change ao3 reader to work with the fork in the future or if maybe it is just a glitch on my end, but I figured I'd put it out there, I wouldn't worry about it too much, I think most people end up using KOReader or normal Plato anyway rather than the fork so it is not a big deal
no subject
Thanks for the additional info! And huh, weird that it works with one but not the other. They each should theoretically be their own standalone directories - though it's possible some of the extra stuff bundled into the one-click install packages are touching system files somewhere. I'm not sure I've managed to swap over all the plato references in config/binary names to ao3reader but if that was the issue, I'd expect it to cause problems with regular plato too! A mystery to investigate....
no subject
This is the newest build, if you want to give it a go: http://seam.rip/ao3reader/ao3reader-0.1.1.zip
no subject
no subject
The hyphenation-penalty setting not being applied is probably the same issue as the custom font - basically I think Plato added some new reader customization options in the span of time since my initial fork, and I didn't catch them to copy them into the reader initialization that's specific to ao3 data. The commandline flag one I will have to dig into a little more to see what it's doing.
Should hopefully have a new build out soonish - I started adding very basic text search (basically the equivalent to using the top searchbar in ao3), so I'll do a new post with that + the bug fixes :)
no subject
no subject
Honestly I'm surprised (but pleased!) that this has found an audience beyond me and the like, three friends who encouraged me to give this a stab. Anyway, [new version]( https://momijizukamori.dreamwidth.org/483889.html) which hopefully fixes the hyphenation issue?