From 89c5ae97bd090c7729a77cc964a361b8a87fd865 Mon Sep 17 00:00:00 2001 From: Aleteoryx Date: Tue, 6 Aug 2024 12:48:17 +0100 Subject: [PATCH] before i shutdown the server --- redmine-issues.csv | 83 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 redmine-issues.csv diff --git a/redmine-issues.csv b/redmine-issues.csv new file mode 100644 index 0000000..84d8cc9 --- /dev/null +++ b/redmine-issues.csv @@ -0,0 +1,83 @@ +#,Project,Tracker,Parent task,Parent task subject,Status,Priority,Subject,Author,Assignee,Updated,Category,Target version,Start date,Due date,Estimated time,Total estimated time,% Done,Created,Closed,Last updated by,Related issues,Files,Private,Description +9,lfm_embed,Feature,"","",Closed,Normal,Lua Support,Amity Blight,"",04/06/2024 09:02 PM,"",0.2.0,01/31/2024,"","","",100,01/31/2024 01:12 PM,04/06/2024 09:02 PM,Amity Blight,"","",No,"Having given it significant consideration, I have decided handlebars is not going to be sustainable for more advanced effects with server computation. Starting in 0.2.0, themes are going to be Lua-based." +8,lfm_embed,Bug,"","",Closed,Normal,Workaround API sending empty image names.,Amity Blight,"",04/06/2024 09:01 PM,"",0.2.0,01/12/2024,"","","",100,01/12/2024 04:44 PM,04/03/2024 04:16 PM,Amity Blight,"","",No,"Sometimes the last.fm API sends back blank images for tracks, with an invalid MBID set. The easiest way around this is to make a second request to `track.getInfo`, and use that as the source of truth for album and track info. This should also make it significantly easier to implement track runtime stats later down the line." +7,lfm_embed,Feature,"","",Closed,Normal,Custom Fonts,Amity Blight,"",01/12/2024 01:11 PM,"",0.2.0,11/22/2023,"","","",100,01/12/2024 01:01 PM,01/12/2024 01:04 PM,Amity Blight,"","",No,"For ease-of-inclusion this should probably be handled by internal code, and provided as a set of properties on `lfm_embed::ctx::model::Data`. + +There are 3 main kinds of fonts we should support. +- User-hosted fonts. These would be loaded directly from a link to a TTF,WOFF2,etc font file. +- Google fonts fonts. In theory, we'd proxy these, but that's not 100% necessary. +- Named fonts. e.x. 'serif', 'sans-serif', 'monospace'. Browser will handle these. + +There is no good way to expose a typed enum with the current wizard UI, and the resulting UI from this could allow added user flexibility. + +I propose the following API: + +- `?font=foo` corresponds directly with `* { font-family: 'foo' }` in the CSS. +- `?font=foo&include-font=https://example.com/font.otf` will additionally append `@font-face { font-family: 'foo' src: url('https://example.com/font.otf') }`. + +There will also be a `?include-stylesheet` parameter, allowing for general custom styles, including google fonts et. al." +6,lfm_embed,Feature,"","",New,Normal,Error Cache,Amity Blight,"",01/12/2024 01:16 PM,"",0.2.1,01/12/2024,"","","",0,01/12/2024 12:59 PM,"",Amity Blight,"","",No,Add support to `lfm_embed::cache::AsyncCache` for caching `Err` values with a different lifetime from `Ok` values. +5,lfm_embed,Feature,"","",New,Normal,Additional Services to Support,Amity Blight,"",01/12/2024 12:58 PM,"","",01/12/2024,"","","",0,01/12/2024 12:58 PM,"","","","",No,"This should be as transparent as possible to the theme and end-user. + +# Potential Services + +* libre.fm +* listenbrainz +* hacienda if/when it gets off the ground. + +# Config Entries + +* `LFME_BACKEND_DEFAULT: string` specifies a default backend for /user/ requests.. +* `LFME_BACKEND_ADDITIONAL_GNUKEBOX: string,*` specifies a set of additional domains supporting the libre.fm API. +* `LFME_BACKEND_ADDITIONAL_LISTENBRAINZ: string,*` specifies a set of additional domains supporting the listenbrainz API. +* `LFME_BACKEND_ADDITIONAL_AUDIOSCROBBLER: string,*` specifies a set of additional domains supporting the last.fm API. +* `LFME_BACKEND_ADDITIONAL_HACIENDA: string,*` specifies a set of additional domains supporting the hacienda API. + +# Query Parameters + +* `?backend=(last.fm|libre.fm|listenbrainz|{LFME_BACKEND_ADDITIONAL_*})` + +# Context Members + +* `user.service` never not null +* `user.service.type` `(audioscrobbler|listenbrainz|gnukebox)` +* `user.service.domain` the string for the service's domain. +" +4,lfm_embed,Feature,"","",Rejected,Normal,Additional Helpers - Randomizers,Amity Blight,"",01/31/2024 01:13 PM,"",0.2.0,01/12/2024,"","","",0,01/12/2024 12:55 PM,01/31/2024 01:13 PM,Amity Blight,"","",No,"Handlebars, for all its flaws, is the current DSL used for theming. +The following should be added to allow more interesting themes generated on the server. + +* `(range Number start: Number = 0): Number` Generates values from start to the main argument, exclusive. +* `(random): Number` Generates a random float. +* `(shuffle Array): Array` Returns a random permutation of the input array. +" +3,lfm_embed,Feature,"","",New,Normal,Watermarking,Amity Blight,"",01/12/2024 01:16 PM,"",0.2.2,01/12/2024,"","","",0,01/12/2024 12:48 PM,"",Amity Blight,"","",No,"Support for a limited form of (optional) watermaking. It would be up to the themes to include it. + +# Query Parameters + +- `?watermark` specifies opting-in to the watermark. + +# Config Entries + +- `LFME_WATERMARK_MANDATORY: 0|1` forces a watermark if `1`. The main instance will not use this, but alternate instances may. +- `LFME_WATERMARK_TEXT: string` should contain the name of the specific instance, or a tagline. +- `LFME_WATERMARK_IMG: string` should contain a link to an image. The rendered size of this image is at the discretion of a given theme, but it should be around 32x32, and have an aspect ratio no greater than 1:2. +- `LFME_WATERMARK_URL: string` should contain a link to the host, or whoever else the watermarker wishes. + +# Context Members + +- `watermark: object` null, unless `(LFME_WATERMARK_TEXT || LFME_WATERMARK_IMG || LFME_WATERMARK_URL) && (?watermark || LFME_WATERMARK_MANDATORY)`. Should be interpreted as whether to render a watermark. +- `watermark.text` = `LFME_WATERMARK_TEXT`. Defaults to `lfm_embed`. +- `watermark.img` = `LFME_WATERMARK_IMG`. Defaults to null. +- `watermark.url` = `LFME_WATERMARK_URL`. Defaults to null. + +All that is guaranteed is the presence of `watermark.text`, so all themes should be able to fallback to text. +Image support should be considered optional. Linking should be considered optional. + +It is not an error to specify a mandatory watermark with no possible contents, as the watermark object will simply not be present. +A warning should be output on startup. +" +2,lfm_embed,Feature,"","",New,Normal,Move more code internal,Amity Blight,"",04/03/2024 04:18 PM,"",0.2.1,01/12/2024,"","","",0,01/12/2024 12:47 PM,"",Amity Blight,"","",No,"Of the crates currently relied on, the following appear too feature-packed +should be replaced with simpler internal code, to reduce binary size and external dependancies. + +* `duration-str` +* `urlencoding`" -- 2.43.4