roulette/README.md

87 lines
3.4 KiB
Markdown
Raw Normal View History

2022-09-16 19:52:59 +00:00
## About
2022-10-18 21:58:15 +00:00
Sometimes, you just need a way to randomly display images from your filesystem.
2022-09-16 19:52:59 +00:00
2022-10-18 21:58:15 +00:00
Simply point this tool at one or more directories, and then open the specified port (default `8080`) in your browser.
2022-09-16 19:52:59 +00:00
2022-10-18 21:58:15 +00:00
A new image will be selected if you open `/` directly, or if you click on any displayed image.
2022-09-16 19:52:59 +00:00
Browser history is preserved, so you can always go back to any previously displayed image.
Supported file types and extensions are `bmp`, `gif`, `jp[e]g`, `png`, and `webp`.
2022-10-18 21:58:15 +00:00
2022-11-11 05:33:20 +00:00
Feature requests, code criticism, bug reports, general chit-chat, and unrelated angst accepted at `roulette@seedno.de`.
2022-11-11 05:34:31 +00:00
Static binary builds available [here](https://cdn.seedno.de/builds/roulette).
I only test the linux/amd64, linux/arm64, and windows/amd64 builds, the rest are all best-effort™.
x86_64 and ARM Docker images of latest version: `oci.seedno.de/seednode/roulette:latest`.
Dockerfile available [here](https://git.seedno.de/seednode/docker-roulette).
2022-09-16 19:52:59 +00:00
## Filtering
2022-11-10 20:54:55 +00:00
You can provide a comma-delimited string of alphanumeric patterns to match via the `include=` query parameter, assuming the `-f|--filter` flag is enabled.
Only filenames matching one or more of the patterns will be served.
You can also provide a comma-delimited string of alphanumeric patterns to exclude, via the `exclude=` query parameter.
Filenames matching any of these patterns will not be served.
2022-10-20 01:42:08 +00:00
You can also combine these two parameters, with exclusions take priority over inclusions.
Both filtering parameters ignore the file extension and full path; they only compare against the bare filename.
## Sorting
You can specify a sorting pattern via the `sort=` query parameter, assuming the `-s|--sort` flag is enabled.
2022-10-20 01:42:08 +00:00
A value of `sort=asc` means files will be served in ascending order (lowest-numbered to highest).
If a file exists with a numbered suffix one higher than the currently displayed file, it will be served next.
A value of `sort=desc` means files will be served in descending order (highest-numbered to lowest).
If a file exists with a numbered suffix one lower than the currently displayed file, it will be served next.
In either case, if no sequential file is found, a new random one will be chosen.
2022-10-20 01:42:08 +00:00
For `sort=asc`, the lowest-numbered file matching a given name will be served first.
2022-10-20 01:42:08 +00:00
For `sort=desc`, the highest-numbered file will be served instead.
2022-10-20 01:42:08 +00:00
If any other (or no) value is provided, the selected file will be random.
Note: These patterns require sequentially-numbered files matching the following pattern: `filename###.extension`.
## Refresh
If a non-zero `refresh=<time in seconds>` query parameter is provided, the page will reload after that interval.
This can be used to generate a sort of slideshow of images.
2022-09-16 19:52:59 +00:00
## Usage output
```
Usage:
2022-09-16 19:57:40 +00:00
roulette <path> [path2]... [flags]
2022-09-16 19:52:59 +00:00
roulette [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
version Print version
Flags:
-c, --cache only scan directories once, at startup (incompatible with --filter)
-f, --filter enable filtering via query parameters (incompatible with --cache)
2022-10-18 21:54:01 +00:00
-h, --help help for roulette
-p, --port uint16 port to listen on (default 8080)
-r, --recursive recurse into subdirectories
-s, --sort enable sorting via query parameters
2022-10-18 21:54:01 +00:00
-v, --verbose log accessed files to stdout
2022-09-16 19:52:59 +00:00
Use "roulette [command] --help" for more information about a command.
2022-10-18 21:54:01 +00:00
```