what the heck this release is huge how could this happen
No time for witty talk! Let's get to the big changes:
#335 - Reading progression is now server-side!
I recall saying in a previous release that withholding essential features for years makes it all the more hype when you finally make them, so I am proud to finally give you synchronized reading progression across every device you use LANraragi on.
This feature comes with a matching API that external clients can leverage to update the server progression as well.
LRReader is already using it, with hopefully the rest of the squad on board soon.
On an update to 0.7.7, if you have any local progression saved on your browser, it will be deleted and migrated to the server:
(You can reload or quit the browser at any time during this process, it'll pick back up from where it left.)
As a bonus to this feature, the Statistics now loosely track the amount of pages you've read during your pole-polishing career as well.
#267 - The Thumbnail Directory can now be moved!
Another long-awaited request: You can now move thumbnails out of the Content Folder without having to deal with symlinks! What a concept.
(If they want to, Windows users must change the thumbnail directory in the Bootstrapper's settings, just like with the Content Folder)
The default for this option is the current behavior, aka a /thumb
subfolder in content.
Changing this option won't move your thumbnails, so make sure to do it yourself!
Or, use those shiny new "regenerate thumbnails" buttons I just added.
Man, I really do care about my users -- Have I already told you about my Ko-Fi page btw? ππππ
#389 - AVIF/HEIF Support
Starting from this release, .avif
, .heic
and .heif
files are all considered images by server.
A taste of the future! JPEGXL BTFO OH NONONONONO
There a number of caveats to consider since those formats are a bit new: Please read more here if you're interested.
If you're running from source, I recommend updating your ImageMagick to v7 if you haven't done so already to get AVIF/HEIF thumbnails working.
LRReader also has support for both AV1 and HEIF in its latest release, so it might just be better than your browser for the time being!
#282 - Shinobu/FileWatcher Rewrite
Oh boy time to restart my LRR server after a nice upgrade πΏKRRRπΏRRRKRRRπΏRKRRRπΏ(various sounds of mechanical hard drives dying)
The FileWatcher used to throw away its entire filemap on a server restart and reindex/recalculate IDs for your content folder to find out changes. This was slightly inefficient, to say the least. (And might've been the cause of some weird indexing bugs in the past)
The old perl-data-structure-serialized-to-a-file system has thus been woefully thrown out and replaced by a long-lived hash in Redis:
Server restarts will now only run a quick diff between what's saved/known to the server and your current filesystem.
The main difference with this approach is that if you modify an archive after adding it to LRR, its ID will now remain the same instead of becoming a new entry to match the new hash.
This has both good and bad consequences:
π You won't get duplicate entries anymore, and your metadata stays assigned to the file, as the ID doesn't change.
π If you restore a JSON backup on a new install, it's likely that your metadata for modified files won't be restored, as the newly calculated ID won't match the one in the backup. Which means you'll have to get your hands dirty and fix the IDs in the backup yourself but that's what you deserve for mucking up your files ya dingus
#385/#397 - AutoTag has been removed in favor of a Plugin
AutoTag was an old built-in feature which tried to figure out tags from filenames.
It was enabled by default and sometimes caused confusion with users whose files didn't match the doujinshi naming standard.
(I also never managed to find a good enough name for it that wasn't confused with Auto-Plugin)
It is now gone! Well, not really, just moved to a metadata plugin.
As such it is now disabled by default, and you might want to re-enable it in Plugin Configuration.
I also made it slightly smarter so it doesn't consider numbers to be language tags. Meh.
The AutoPlugin toggle has been removed
To get rid of the confusing AutoPlugin/AutoTag duo once and for all, I am also removing this old toggle in Settings:
Having to check both this toggle and then enable Plugins separately is just busywork, so from this release onwards, you'll just have to enable Plugins in Configuration to get them to run on new uploads.
Plugin Configuration got a small facelift to expose this new behavior, and to be a bit more horizontal considering the amount of plugins that are now built-in:
All the other stuff that isn't as big but still pretty cool
-
Stop using a static secret for mojo's cookie signatures
πͺ You might have to login again after the update due to this change. Cookies are now signed using a mix of your hostname and OS.
π It's not the most unique thing, but it certainly beats everyone using560754abd681422dca19761cfcb1d6f1e050bca2
. -
(#410) Metadata is now normalized to Unicode Form C
πΈ I won't give a masterclass in Unicode here, but the old behavior could potentially lead to duplicate tags if you were using non-latin characters.
π I am temporarily adding a Script plugin you can run to normalize the entire database if you're already having this issue. -
(#375) Add "Remove from Category" to the Index's context menu
π§Ύ The UI for Categories is still a bit rough across the board, but hopefully this will help.
π I've also fixed up the icons and colors in the context menu so it looks less bad across the app's themes. -
Add Mojolicious::Plugin::Status when running in debug mode
π If Debug Mode is enabled, you can now open a status pane by goind to
[your LRR URL]/debug
. It's cool!
-
API Changes
π Added a simple GET to /api/categories/:id to get info for a single Category
π Accept "false" properly for various endpoints that used boolean parameters (Only 1/0 worked properly beforehand)
π Added an API endpoint to set the reading progression for an ID
π Added an API endpoint to return which categories an ID belongs to
π Added an API endpoint to regenerate missing/all thumbnails
π Update docs to fix some errors in the JSON examples -
Miscellaneous nonsense
π Add some basic retrying logic on our first Redis connection in case it takes a while to load the dataset in memory
π (#374) The 'cooldown' parameter for Plugins is now only used in Batch Tagging
π Fix a memory leak caused by the Parallel::Loops/Storable combo in the Search API
π Improve visibility when sorting table columns
π Fix being able to put whitespace as a custom column
π (#412) Add autofocus to the password input in login
π Add fa-solid-900.woff2 so your browser finally stops screaming at you in console
π Remove unnecessary datatables cdn include
π Remove the favtagmigration script plugin, you've probably had enough time to migrate already
π Updated Mojolicious to 9.02
βPallasβ was one of the most radical tracks Bowie had made in years. For one thing, it hardly sounded like Bowie at all, with the disassociated voices akin to the clips of televangelist speeches that Eno and David Byrne had used on My Life in the Bush of Ghosts.