diff options
author | Profpatsch <mail@profpatsch.de> | 2024-09-13T13·08+0200 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2024-09-13T13·44+0000 |
commit | e826ffb19ca50b0de25cf3ec4003309758828156 (patch) | |
tree | 40f2d0d4fd7ced05acdb6a5e596b0a4045410ec4 | |
parent | 5c57529675b0656bb460cfe8cae5d610067fe105 (diff) |
feat(users/Profpatsch): add lyric r/8687
Change-Id: I3171d19f1cd550ef22a3a7e851f9d27d3bf34949 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12476 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
-rw-r--r-- | users/Profpatsch/lyric.nix | 45 | ||||
-rw-r--r-- | users/Profpatsch/nix-home/default.nix | 5 |
2 files changed, 49 insertions, 1 deletions
diff --git a/users/Profpatsch/lyric.nix b/users/Profpatsch/lyric.nix new file mode 100644 index 000000000000..962a62721a6c --- /dev/null +++ b/users/Profpatsch/lyric.nix @@ -0,0 +1,45 @@ +# Display lyrics for the given search string; +# search string can contain a substring of band name, album name, song title +# +# Use the database dump from https://lrclib.net/db-dumps and place it in ~/.cache/lyric/lrclib-db-dump.sqlite3 + +{ depot, pkgs, lib, ... }: + +let + bins = depot.nix.getBins pkgs.sqlite-utils [ "sqlite-utils" ] + // depot.nix.getBins pkgs.jq [ "jq" ]; + +in +depot.nix.writeExecline "lyric" { readNArgs = 1; } [ + "backtick" + "-E" + "cache" + [ depot.users.Profpatsch.xdg-cache-home ] + "pipeline" + [ + bins.sqlite-utils + "query" + "\${cache}/lyric/lrclib-db-dump.sqlite3" + '' + select + synced_lyrics, + source, + t.name, + t.artist_name + from + tracks_fts(:searchstring) tf + join tracks t on t.rowid = tf.rowid + join lyrics l on t.rowid = l.track_id + order by + t.id + limit + 1 + '' + "--param" + "searchstring" + "$1" + ] + bins.jq + "-r" + ".[0].synced_lyrics" +] diff --git a/users/Profpatsch/nix-home/default.nix b/users/Profpatsch/nix-home/default.nix index ee154c549a6b..72c77122fc9b 100644 --- a/users/Profpatsch/nix-home/default.nix +++ b/users/Profpatsch/nix-home/default.nix @@ -158,7 +158,10 @@ let name = "scripts/lw"; path = depot.users.Profpatsch.lorri-wait-for-eval; } - + { + name = "scripts/lyric"; + path = depot.users.Profpatsch.lyric; + } ] ++ (lib.pipe depot.users.Profpatsch.aliases [ |