github Difegue/LANraragi v.0.9.60
LANraragi 0.9.6 - 5:15 The Angels Have Gone

one day ago

9017e57ea2487ff786612abc7472935892f95bd9d1e57702dfb239b055b2fb7a
Happy spooky month!

Hacktoberfest has come and went with very little fanfare this year... I was expecting an apocalypse of AI-generated pull requests and somehow that absolutely did not happen.
If even bringing back t-shirts can't get people to contribute to open-source for free, what are the big tech companies going to do???

Better hope those coding agents work I guess :^)


This release mostly fixes some issues with the recently released Windows native version... but there are also a few additional treats! 🍬
I'm grateful as always to all the contributors that are helping improve the server, even outside of October.

LANraragi stickers are (still) available!

image I am going to shill those one more time and nobody can stop me.

Since nobody took advantage of the free stickers on PR offer for Hacktoberfest, I have a relatively large stock left on the Ko-fi shop.

For a brief time until the end of the month, I'm waiving shipping fees, also because I can. What else is there to say?

πŸ”₯Buy the fucking stickers or go to hellπŸ”₯

Release Notes

⌚ Slideshow/Automatic next page (#768, @gustaavv)

The reader has gained a new button!
image
If you toggle this option, a countdown will appear in its place, which on completion will automatically go to the next page.

477573912-20178dac-1a80-4d77-a69c-3b8fdffc5640

It took us multiple years... but this means LRR can now be operated entirely hands-free.

This is surely convenient if you have no hands due to being uh, a ghost or something. Yeah.
...The countdown is also configurable.

image

πŸ§™β€β™‚οΈ libvips support (#1329, @siliconfeces )

LANraragi has traditionally made use of ImageMagick to handle creating thumbnails and resizing images before serving them if the option is enabled.
Magick is very widespread and has a cool wizard, but it's not necessarily the fastest library -- With 0.9.6, LRR can now use libvips instead if it's installed.
(The Docker image will ship with the library built-in.)

This improves image resizing performance from quite a bit all the way to quite substantial.
Please enjoy the following benchmarks thanks to LRR's newfangled integration tests:

ImageMagick
http_req_duration..............: avg=51.71ms min=3.05ms med=4.23ms max=133.55ms p(90)=130.41ms p(95)=131.8ms
{ expected_response:true }...: avg=51.71ms min=3.05ms med=4.23ms max=133.55ms p(90)=130.41ms p(95)=131.8ms

VIPS:
http_req_duration..............: avg=34.86ms min=2.98ms med=4.51ms max=126.15ms p(90)=78.01ms p(95)=97.8ms
{ expected_response:true }...: avg=34.86ms min=2.98ms med=4.51ms max=126.15ms p(90)=78.01ms p(95)=97.8ms

πŸ‘» Other changes

  • 🧩 PSA: LANraragi::Model::Config::redis_decode has been deprecated

    If you're using this API or its equivalent redis_encode in a Plugin, please consider switching over to LANraragi::Utils::Redis::redis_decode.
    There's no real difference at the moment, but the functions will eventually be removed... someday.

    I'll make the server start outputting log messages when using the older API a few releases before officially removing it at least.

  • βš–οΈ Stop calculating file sizes when enumerating archive filelist

    When extracting an archive, LRR finds the images it contains, and also used to log the size of those images.

    This data has never been used for anything (I think the plan was to show them in the Reader or make them visible to the API at some point...), and since it has been found that was noticeably impacting performance... It's gone!

  • πŸ”Ž Artist names are now searchable in Reader (#1347 / #1331 , @psilabs-dev)

    A simple QOL feature to allow 1-click access to an artist's page on your server.
    This also fixes a small bug where the "by Artist" part wouldn't show if the artist: tag was the last one recorded for an archive.

483484675-337fda77-e655-43d6-b887-f1c1869cd620
  • 🐍 Integration tests (#1344, @psilabs-dev)

    This isn't really a feature but is worth outlining -- The Git repo now makes use of https://github.com/psilabs-dev/aio-lanraragi as part of CI validation, which allows us to automatically test that the server works with every change with a wider variety of scenarios.

    Those tests have already paid off while testing this release before publishing! I'm hoping they can also be used to show off more cool comparison benchmarks in the future, demonstrating improvements on a YoY basis to my shareholders (aka Ko-fi subscribers).

  • πŸͺŸ Handle Windows long paths (#1325 / #1328 / #1332 / #1338 / #1345 / #1346 , @Guerra24 )

    Perl on Windows still considers paths to be 260 characters maximum... Which is being less and less true these days, so it's not surprising that a bunch of issues around that dropped right after we shipped the new native port!

    As a wise person once said, to handle the future u must look at the past... So we have solved this issue by converting long paths to use MS-DOS filenames instead. It just worksℒ️

    This change also makes use of Win32 API helpers written in .NET, compiled to AOT and consumed in Perl through FFI, which tickles multiple of my funny bones. 🩻

  • 🍎 Fix network requests from plugins on macOS (#1375, @Fredddi43)

    Because of added security to restrict multithreading in macOS High Sierra and later versions of macOS, the forking workers used by Mojo could potentially be killed by the macOS ObjC runtime.
    This led to some plugins failing to make HTTP requests -- LRR now uses unsafe (egads) forking on the Mac/homebrew version, which alleviates the issue.

  • 🍏 Ignore MacOS garbage files (#1179, @psilabs-dev)

    Rejoice .DS_Store enjoyers, for your zips will no longer have broken thumbnails!

3103e0afab084c0e3a9602bc926c01a48c07e153c1fe5167f145919b158b7331

  • Miscellaneous bugfixes and improvements

    πŸ’Ž Bump sweetalert2 from 11.7.32 to 11.22.4, removing the funny Russia nagware (rip ⚰️)
    πŸ’Ž (#1323) Fix the Windows GUI cutting off if the taskbar location is set to top
    πŸ’Ž (#1319) Avoid dependency cycles (@siliconfeces)
    πŸ’Ž (#1358) Add max value note for tempmaxsize input
    πŸ’Ž (#1354) Fix content disposition regression when viewing images directly (@carrot-png)
    πŸ’Ž (#1337) Fix memory leak when generating thumbnails with the new MCE workers (@Guerra24)
    πŸ’Ž (#1336) Fix a url not using LRR.apiURL wrapper (@gustaavv)
    πŸ’Ž Fix ghostscript on Windows not reading paths with special characters (@Guerra24)
    πŸ’Ž (#1356) Remove build warnings for install.pl (@psilabs-dev)
    πŸ’Ž (#1379) Enable lazy loading for the quick thumbnail list (@siliconfeces)
    πŸ’Ž (#1382) Use fetchpriority to make browsers fetch current image over thumbnails and stuff (@siliconfeces)
    πŸ’Ž (#1369) Remove api key requirement in plugin docs (@psilabs-dev)
    πŸ’Ž (#1372) Add quick CONTRIBUTING.md that links to the actual documentation
    πŸ’Ž Updated the localization files

  • New Contributors

    🍾 @carrot-png made their first contribution in #1354
    🍾 @Fredddi43 made their first contribution in #1375

Full Changelog: v.0.9.50...v.0.9.60

β€œ5:15 The Angels Have Gone” is also a curtain-raiser for β€œHeathen”: it’s a world deserted by God, or at least a world whose inhabitants have gotten rather sick of Him. [...] The β€œnew angels of promise” were just avatars in a video game most computers can’t play today*. Now even the glum last intermediaries between man and God are gone [...] Heathen was also crafted as a division point, dressed to be autumnal.

* I actually have to correct bowiesongs on this one for once since you can totally just go and buy Omikron on GOG right now if you want

Don't miss a new LANraragi release

NewReleases is sending notifications on new releases.