aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralyx <alyx@aleteoryx.me>2024-01-12 13:05:25 -0500
committeralyx <alyx@aleteoryx.me>2024-01-12 13:05:25 -0500
commitdc6875ce18a48d314f0576528ebd7dc9e5e2a1b8 (patch)
tree807ad2ca1002c54a6f0c14237236afcddaec0695
parent2feec01f58ce903d07d53bb1b79dc6b448b1a146 (diff)
downloadlfm_embed-dc6875ce18a48d314f0576528ebd7dc9e5e2a1b8.tar.gz
lfm_embed-dc6875ce18a48d314f0576528ebd7dc9e5e2a1b8.tar.bz2
lfm_embed-dc6875ce18a48d314f0576528ebd7dc9e5e2a1b8.zip
Move the contents of TODO.md to <https://redmine.aleteoryx.me/projects/lfm_embed/issues>.
-rw-r--r--TODO.md110
1 files changed, 0 insertions, 110 deletions
diff --git a/TODO.md b/TODO.md
deleted file mode 100644
index d55c742..0000000
--- a/TODO.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# Future plans for this project:
-
-
-## Move more things internal
-
-Untouched.
-
-Of the crates currently relied on, the following appear too feature-packed should be replaced with simpler internal code, to reduce binary size.
-
-- duration-str
-- urlencoding
-
-
-## Watermarking
-
-Untouched.
-
-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.
-
-
-## Additional Helpers
-
-Untouched.
-
-- `(range Number start: Number = 0): Number` Generates values from start to the main argument, exclusive.
-- `(random): Number` Generates a random float.
-
-
-## Additional Services to Support
-
-Untouched.
-
-This should be as transparent as possible to the theme and end-user.
-
-### 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.
-
-### 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.
-
-
-## Error Cache
-
-Untouched.
-
-Add support to `lfm_embed::cache::AsyncCache` for caching `Err` values with a different lifetime from `Ok` values.
-
-
-# Completed Features
-
-
-## Custom Fonts
-
-Implemented!
-
-### Query Parameters
-
-Each of these are mutually exclusive, and take priority over eachother in the order listed below.
-The highest one detected will be handled and others, if present, will be silently ignored.
-
-- `?google_font=` the name of a google font to try loading. If it exists, the `fonts.googleapis.com` stylesheet will end up in `font.css`. The font name will end up in `font.name`.
-- `?include_font=` the URL to a font to include. `font.css` will be a generated `@font-family` declaration. A provided name will be in `font.name`.
-- `?font=` the name of a browser-native or system font. This will only set `font.name`.
-
-### Context Members
-
-- `font: object` null if no font overrides are present.
-- `font.name: string` All text elements should have their font set to this.
-- `font.css` If present, it should be placed inside a `<style>` tag somewhere. For legibility of generated HTML, preferably its own tag.