From 5fd77ff702c214415390b145144c5d15331bc5bb Mon Sep 17 00:00:00 2001 From: alyx Date: Wed, 9 Aug 2023 15:06:42 -0400 Subject: ugh --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/README.md | 69 ----------------------------------------------------------- 2 files changed, 69 insertions(+), 69 deletions(-) create mode 100644 README.md delete mode 100644 src/README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e0eb966 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# `lfm_embed` +A simple webserver for rendering a last.fm embed. + +More specifically, this displays a simple webpage with info about your current or most recent last.fm scrobble. +Its intended use is to be put on a personal site or whatever. + +## Usage +`lfm_embed` is, as it stands, designed to use a reverse proxy. +A future release may include HTTPS support, but currently, it will only listen on `localhost`, prohibiting it from public access. +Once configured, a request of the form `http://localhost:9999/` will render out an embed with the default theme. + +As it stands, there are no plans to support displaying users with private listen history. + +## Configuration +Configuration should be done via the environment. +`lfm_embed` also supports reading from a standard `.env` file. +The following are the environment variables which `lfm_embed` understands. + +### `LMFE_API_KEY` (Required) +Your last.fm API key. You'll need to create one [here](https://www.last.fm/api/account/create) for self-hosting. + +### `LFME_WHITELIST_MODE` (Default: open) +The following(case-insensitive) values are supported: +- `open`: Allow requests for all users. +- `exclusive`: Only allow requests for users in `LFME_WHITELIST`, returning HTTP 403 for all others. `LFME_WHITELIST` _must_ be set if this mode is enabled. + +If the user requested has their listen history private, a 403 will be returned. + +### `LFME_WHITELIST` (Default: "") +This is expected to be a sequence of comma-separated usernames. +Leading/trailing whitespace will be stripped, and unicode is fully supported. + +### `LFME_WHITELIST_REFRESH` (Default: "1m") +The amount of time to cache whitelisted user info for. +It is interpreted as a sequence of `` values, where `num` is a positive integer, +and `suffix` is one of `y`,`mon`,`w`,`d`,`h`,`m`,`s`, `ms`, `µs`, or `ns`, each of which +corresponds to a self-explanatory unit of time. +For most practical applications, one should only use `m` and `s`, as caching your current listen for more than that time has the potential to omit most songs. +Parsing is delegated to the [`duration_str`](https://docs.rs/duration-str/latest/duration_str/) crate, and further info may be found there. + +### `LFME_DEFAULT_REFRESH` (Default: "5m") +The amount of time to cache non-whitelisted user info for. +See `LFME_WHITELIST_REFRESH` for more info. + +### `LFME_PORT` (Default: 9999) +The port to serve on locally. + +### `LFME_THEMES_DIR` +If set, must be a valid path to a directory containing CSS files. +They will be registered as themes on top of the builtin ones, with each theme's name being their filename minus the extension. +Same-named themes will override builtin ones. + +### `LFME_LOG_LEVEL` (Default: Warn) +The loglevel. This is actually parsed as an [`env_logger`](https://docs.rs/env_logger/latest/env_logger) filter string. +Read the docs for more info. + +### `LFME_LOG_FILE` +If set, logs will be written to the specified file. Otherwise, logs are written to `stderr`. + +## Example Configuration +```dotenv +LFME_API_KEY=0123456789abcdef0123456789abcdef +LFME_LOG_LEVEL=error +LFME_PORT=3000 + +LFME_WHITELIST_REFRESH=30s +LFME_WHITELIST_MODE=exclusive +LFME_WHITELIST=a_precious_basket_case, realRiversCuomo, Pixiesfan12345 +``` diff --git a/src/README.md b/src/README.md deleted file mode 100644 index e0eb966..0000000 --- a/src/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# `lfm_embed` -A simple webserver for rendering a last.fm embed. - -More specifically, this displays a simple webpage with info about your current or most recent last.fm scrobble. -Its intended use is to be put on a personal site or whatever. - -## Usage -`lfm_embed` is, as it stands, designed to use a reverse proxy. -A future release may include HTTPS support, but currently, it will only listen on `localhost`, prohibiting it from public access. -Once configured, a request of the form `http://localhost:9999/` will render out an embed with the default theme. - -As it stands, there are no plans to support displaying users with private listen history. - -## Configuration -Configuration should be done via the environment. -`lfm_embed` also supports reading from a standard `.env` file. -The following are the environment variables which `lfm_embed` understands. - -### `LMFE_API_KEY` (Required) -Your last.fm API key. You'll need to create one [here](https://www.last.fm/api/account/create) for self-hosting. - -### `LFME_WHITELIST_MODE` (Default: open) -The following(case-insensitive) values are supported: -- `open`: Allow requests for all users. -- `exclusive`: Only allow requests for users in `LFME_WHITELIST`, returning HTTP 403 for all others. `LFME_WHITELIST` _must_ be set if this mode is enabled. - -If the user requested has their listen history private, a 403 will be returned. - -### `LFME_WHITELIST` (Default: "") -This is expected to be a sequence of comma-separated usernames. -Leading/trailing whitespace will be stripped, and unicode is fully supported. - -### `LFME_WHITELIST_REFRESH` (Default: "1m") -The amount of time to cache whitelisted user info for. -It is interpreted as a sequence of `` values, where `num` is a positive integer, -and `suffix` is one of `y`,`mon`,`w`,`d`,`h`,`m`,`s`, `ms`, `µs`, or `ns`, each of which -corresponds to a self-explanatory unit of time. -For most practical applications, one should only use `m` and `s`, as caching your current listen for more than that time has the potential to omit most songs. -Parsing is delegated to the [`duration_str`](https://docs.rs/duration-str/latest/duration_str/) crate, and further info may be found there. - -### `LFME_DEFAULT_REFRESH` (Default: "5m") -The amount of time to cache non-whitelisted user info for. -See `LFME_WHITELIST_REFRESH` for more info. - -### `LFME_PORT` (Default: 9999) -The port to serve on locally. - -### `LFME_THEMES_DIR` -If set, must be a valid path to a directory containing CSS files. -They will be registered as themes on top of the builtin ones, with each theme's name being their filename minus the extension. -Same-named themes will override builtin ones. - -### `LFME_LOG_LEVEL` (Default: Warn) -The loglevel. This is actually parsed as an [`env_logger`](https://docs.rs/env_logger/latest/env_logger) filter string. -Read the docs for more info. - -### `LFME_LOG_FILE` -If set, logs will be written to the specified file. Otherwise, logs are written to `stderr`. - -## Example Configuration -```dotenv -LFME_API_KEY=0123456789abcdef0123456789abcdef -LFME_LOG_LEVEL=error -LFME_PORT=3000 - -LFME_WHITELIST_REFRESH=30s -LFME_WHITELIST_MODE=exclusive -LFME_WHITELIST=a_precious_basket_case, realRiversCuomo, Pixiesfan12345 -``` -- cgit v1.2.3-54-g00ecf