list release groups

This commit is contained in:
2025-07-21 21:10:10 +02:00
parent 8a3e5144cf
commit c40768c973
7 changed files with 181 additions and 19 deletions

View File

@@ -23,7 +23,7 @@ set -eu
# Load preview methods
. "sh/preview.sh"
if [ "${1:-}" = "--internal-preview" ]; then
if [ "${1:-}" = "--internal-preview-artist" ]; then
__preview_artist "$2"
exit 0
fi
@@ -49,7 +49,7 @@ if [ "${1:-}" = "--internal-search" ]; then
echo "$$" >"$PIDFILE"
sleep 1
touch "$LOCKFILE"
mb_browse_artists "$2" |
mb_search_artists "$2" |
$JQ -r '.artists[] | [.id, .type, .name, .disambiguation, .["life-span"].begin, .["life-span"].end] | join("\t")' |
awk \
-F "\t" \
@@ -63,6 +63,24 @@ if [ "${1:-}" = "--internal-search" ]; then
exit 0
fi
if [ "${1:-}" = "--internal-browse-artist" ]; then
mb_browse_release_groups "$2" |
$JQ -r '."release-groups"[] | [
.id,
."primary-type",
."first-release-date",
.title
] | join("\t")' |
awk \
-F "\t" \
-v format_album="$FORMAT_ALBUM" \
-v format_single="$FORMAT_SINGLE" \
-v format_ep="$FORMAT_EP" \
-v format_year="$FORMAT_YEAR" \
"$AWK_RELEASEGROUPS"
exit 0
fi
if [ "${1:-}" = "--help" ]; then
$CAT <<EOF
Usage: \`$0\` [ \`--help\` ]
@@ -73,6 +91,9 @@ EOF
exit 0
fi
# Set window title
printf '\033]0;%s\007' "$WINDOW_TITLE"
# Generate filenames for temporary files
tmpdir=$(mktemp -d)
LOCKFILE="$tmpdir/lock"
@@ -86,18 +107,35 @@ if [ "${1:-}" = "--search" ]; then
fi
while true; do
sel=$(
printf "" |
$FZF \
--ansi \
--no-sort \
--disabled \
--delimiter="\t" \
--accept-nth="{1}" \
--with-nth="{2}" \
--preview-window="wrap" \
--preview="$0 --internal-preview {1}" \
--bind="change:execute-silent($0 --internal-search \$FZF_QUERY &)+reload($0 --internal-reload)"
)
echo "$sel"
case "${1:-}" in
"--show-artist")
sel=$(
$0 --internal-browse-artist "$2" |
$FZF \
--ansi \
--no-sort \
--disabled \
--delimiter="\t" \
--accept-nth="{1}" \
--with-nth="{2}"
)
[ "$sel" ] && set -- "--show-release" "$sel"
;;
*)
sel=$(
printf "" |
$FZF \
--ansi \
--no-sort \
--disabled \
--delimiter="\t" \
--accept-nth="{1}" \
--with-nth="{2}" \
--preview-window="wrap" \
--preview="$0 --internal-preview-artist {1}" \
--bind="change:execute-silent($0 --internal-search \$FZF_QUERY &)+reload($0 --internal-reload)"
)
[ "$sel" ] && set -- "--show-artist" "$sel"
;;
esac
done