Skip to main content

March 29

Hi all, hope you're doing well. Been ill with some weird cold/flu-like infection the last week or so, so things have been a little slow, but updates are below as usual.

Checkbox design redone, refactoring in progress

Since normal HTML checkboxes can't be styled much (you can style them when checked, not so much when unchecked) I've created a custom one that works in CSS only. Most of the site's checkboxes have been adjusted to use the new solution.

This is useful for the site themes, where bright white checkboxes are a bit of an eyesore on the dark theme, and difficult to see in the light theme.

External site assets (mostly) organised

To make the links pages look nice, and also for the purpose of the social links bar on user profile pages, I've properly organised different site logos in cloud storage and added their full text logos for the larger links page areas.

There's also a seperate CDN and cloud storage bucket for assets to be used in emails, such as copies of the site font and logo, since the main CDNs are configured not to allow hotlinking and thus don't work in emails.

Theme inconsistencies fixed

I've improved the frontend code to always load the custom theme variables (it caused bugs when trying to switch to a custom theme if it wasn't loaded on page load otherwise), and sorted out extra CSS required for some external site assets to display correctly in different themes. 

HLS quality dropdowns

I've implemented quality options on the custom video player I've made, so users can switch between the different streaming qualities if they want to. That should be everything for the custom video player, other than perhaps special formatting when the displayable area is particularly small.

Video submission refactoring

The way the Bunny video transcoding works necessitated changing how some of the submission code works, to make it easy to use. When a video is uploaded there, the previews aren't ready until the video itself has finished being transcoded, so I needed to create a Lambda function that could generate a brief preview of a video in a very short time.

I tested creating WebP files of the first few seconds of a video, but for some reason libwebp (Google's WebP encoder) is exceptionally slow, no matter what parameters I gave it. Instead, I made the function encode the video previews using x264 with the ultrafast preset, a reduced framerate and audio tracks removed. The video, when shown in the artwork submission form, plays on a loop with no video controls, giving the impression of an animated gif.

Email Template formatting

As part of testing account creation and gallery population, I've begun sorting out the email templates and their formatting to finalise the standard look for them. I'm about half done with that at the moment, it's a weird jump back into ancient CSS times when designing emails.

Misc

CSS improvements
  • Video volume sliders now appear when hovering over the volume button, not just the slider itself
  • Videos now show correct total length text where they were missing zeros, e.g. "1:00" instead of "1:0"
  • Placeholder overlays on NSFW content have been improved to take up less horizontal space, since on small images they can sometimes be bigger than the image itself
  • Artwork submission form now has more elegant option formatting
Fixes
  • Fixed bugs in the artwork submission form when editing an artwork, caused by the different edit flow when changing video uploads and some incompletely refactored code for multiple submission functionality
  • Fixed user issues causing webserver cronjobs to fail, particularly file-related cronjobs (e.g. deleting temp uploads) that would not function without being in the root crontab
  • Fixed various gallery errors for users who aren't logged in, due to checking undefined variables unsafely
Documentation updates
  • Added various IAM example policies to the AWS infrastructure book