ui-improvement: display release info
This commit is contained in:
@@ -7,22 +7,22 @@ FORMAT_LOCAL="|>"
|
|||||||
# Pointer to the track currently playing (playlist)
|
# Pointer to the track currently playing (playlist)
|
||||||
FORMAT_CURRENT="->"
|
FORMAT_CURRENT="->"
|
||||||
|
|
||||||
# Input prompts
|
# Input prompt
|
||||||
# =============
|
# =============
|
||||||
# General search prompt
|
# Search prompt
|
||||||
SEARCH_PROMPT="search> "
|
SEARCH_PROMPT="search> "
|
||||||
# Prompt that takes an artist name as argument
|
|
||||||
ARTIST_PROMPT="%s > "
|
|
||||||
# Prompt that takes an artist name and a release name as arguments (in that
|
|
||||||
# order)
|
|
||||||
FULL_PROMPT="%s > %s > "
|
|
||||||
|
|
||||||
# Visual representation of current mode
|
# Headers
|
||||||
# =====================================
|
# =======
|
||||||
# Sign to indicate `normal` mode
|
# Header that displays artist's name
|
||||||
PROMPT_NORMAL="n "
|
HEADER_ARTIST="%s > "
|
||||||
# Sign to indicate `insert` mode
|
# Header that displays the release-group name after artist's
|
||||||
PROMPT_INSERT="i "
|
HEADER_ARTIST_RELEASEGROUP="%s > %s > "
|
||||||
|
# Header that in addition to `HEADER_ARTIST_RELEASEGROUP` also shows some
|
||||||
|
# release information
|
||||||
|
HEADER_RELEASE="%s > %s > %s"
|
||||||
|
# The release information is formatted as follows (placeholders implicit):
|
||||||
|
HEADER_RELEASE_FORMAT="<<tracks>> tx <<media>> | <<label>> <<country>> <<year>>"
|
||||||
|
|
||||||
# Artist view
|
# Artist view
|
||||||
# ===========
|
# ===========
|
||||||
|
@@ -18,22 +18,22 @@ FORMAT_LOCAL="${BLUE}|>$OFF"
|
|||||||
# Pointer to the track currently playing (playlist)
|
# Pointer to the track currently playing (playlist)
|
||||||
FORMAT_CURRENT="${WHITE}-->$OFF"
|
FORMAT_CURRENT="${WHITE}-->$OFF"
|
||||||
|
|
||||||
# Input prompts
|
# Input prompt
|
||||||
# =============
|
# =============
|
||||||
# General search prompt
|
# Search prompt
|
||||||
SEARCH_PROMPT="search: "
|
SEARCH_PROMPT="search: "
|
||||||
# Prompt that takes an artist name as argument
|
|
||||||
ARTIST_PROMPT="artist: %s: "
|
|
||||||
# Prompt that takes an artist name and a release name as arguments (in that
|
|
||||||
# order)
|
|
||||||
FULL_PROMPT="artist: %s / %s: "
|
|
||||||
|
|
||||||
# Visual representation of current mode
|
# Headers
|
||||||
# =====================================
|
# =======
|
||||||
# Sign to indicate `normal` mode
|
# Header that displays artist's name
|
||||||
PROMPT_NORMAL="n)"
|
HEADER_ARTIST="artist: %s"
|
||||||
# Sign to indicate `insert` mode
|
# Header that displays the release-group name after artist's
|
||||||
PROMPT_INSERT="i)"
|
HEADER_ARTIST_RELEASEGROUP="artist: %s / album: %s"
|
||||||
|
# Header that in addition to `HEADER_ARTIST_RELEASEGROUP` also shows some
|
||||||
|
# release information
|
||||||
|
HEADER_RELEASE="artist: %s / album: %s (%s)"
|
||||||
|
# The release information is formatted as follows (placeholders implicit):
|
||||||
|
HEADER_RELEASE_FORMAT="<<label>> <<year>>"
|
||||||
|
|
||||||
# Artist view
|
# Artist view
|
||||||
# ===========
|
# ===========
|
||||||
|
@@ -12,21 +12,38 @@ fzf_command_set_header() {
|
|||||||
"$VIEW_LIST_ALBUMS") header="Search locally available album" ;;
|
"$VIEW_LIST_ALBUMS") header="Search locally available album" ;;
|
||||||
"$VIEW_ARTIST")
|
"$VIEW_ARTIST")
|
||||||
name="$(mb_artist "$mbid" | $JQ '.name')"
|
name="$(mb_artist "$mbid" | $JQ '.name')"
|
||||||
header=$(printf "$ARTIST_PROMPT" "$name")
|
header=$(printf "$HEADER_ARTIST" "$name")
|
||||||
;;
|
;;
|
||||||
"$VIEW_RELEASEGROUP")
|
"$VIEW_RELEASEGROUP")
|
||||||
title="$(mb_releasegroup "$mbid" |
|
title="$(mb_releasegroup "$mbid" |
|
||||||
$JQ '.title')"
|
$JQ '.title')"
|
||||||
artist="$(mb_releasegroup "$mbid" |
|
artist="$(mb_releasegroup "$mbid" |
|
||||||
$JQ '."artist-credit" | map(([.name, .joinphrase]|join(""))) | join("")')"
|
$JQ '."artist-credit" | map(([.name, .joinphrase]|join(""))) | join("")')"
|
||||||
header=$(printf "$FULL_PROMPT" "$artist" "$title")
|
header=$(printf "$HEADER_ARTIST_RELEASEGROUP" "$artist" "$title")
|
||||||
;;
|
;;
|
||||||
"$VIEW_RELEASE")
|
"$VIEW_RELEASE")
|
||||||
title="$(mb_release "$mbid" |
|
title="$(mb_release "$mbid" |
|
||||||
$JQ '.title')"
|
$JQ '.title')"
|
||||||
artist="$(mb_release "$mbid" |
|
artist="$(mb_release "$mbid" |
|
||||||
$JQ '."artist-credit" | map(([.name, .joinphrase]|join(""))) | join("")')"
|
$JQ '."artist-credit" | map(([.name, .joinphrase]|join(""))) | join("")')"
|
||||||
header=$(printf "$FULL_PROMPT" "$artist" "$title")
|
releaseinfo="$(mb_release "$mbid" |
|
||||||
|
$JQ '[
|
||||||
|
.date[:4],
|
||||||
|
(."label-info" | map(.label.name) | unique | join(", ")),
|
||||||
|
(.media | map(."track-count") | add),
|
||||||
|
(.media | map(.format) | unique | join(", ")),
|
||||||
|
.country
|
||||||
|
] | join("\t")' |
|
||||||
|
awk -F "\t" -v format="$HEADER_RELEASE_FORMAT" '{
|
||||||
|
gsub("&", "\\\\&")
|
||||||
|
sub("<<year>>", $1, format)
|
||||||
|
sub("<<label>>", $2, format)
|
||||||
|
sub("<<tracks>>", $3, format)
|
||||||
|
sub("<<media>>", $4, format)
|
||||||
|
sub("<<country>>", $5, format)
|
||||||
|
print format
|
||||||
|
}')"
|
||||||
|
header=$(printf "$HEADER_RELEASE" "$artist" "$title" "$releaseinfo")
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
printf "+change-header(%s)" "${header:-"???"}"
|
printf "+change-header(%s)" "${header:-"???"}"
|
||||||
|
@@ -9,6 +9,7 @@ ESC=$(printf '\033')
|
|||||||
FAINT="${ESC}[2m"
|
FAINT="${ESC}[2m"
|
||||||
CARTIST="${ESC}[38;5;209m"
|
CARTIST="${ESC}[38;5;209m"
|
||||||
CTITLE="${ESC}[38;5;229m"
|
CTITLE="${ESC}[38;5;229m"
|
||||||
|
CRELINFO="${ESC}[38;5;179m"
|
||||||
CYEAR="${ESC}[38;5;179m"
|
CYEAR="${ESC}[38;5;179m"
|
||||||
CDISAMB="$FAINT${ESC}[38;5;172m"
|
CDISAMB="$FAINT${ESC}[38;5;172m"
|
||||||
CNOTE="${ESC}[38;5;242m"
|
CNOTE="${ESC}[38;5;242m"
|
||||||
@@ -25,24 +26,24 @@ FORMAT_LOCAL="${FORMAT_LOCAL:-"🔆"}"
|
|||||||
FORMAT_CURRENT="${FORMAT_CURRENT:-"👉"}"
|
FORMAT_CURRENT="${FORMAT_CURRENT:-"👉"}"
|
||||||
export FORMAT_LOCAL FORMAT_CURRENT
|
export FORMAT_LOCAL FORMAT_CURRENT
|
||||||
|
|
||||||
# Input prompts
|
# Input prompt
|
||||||
# =============
|
# =============
|
||||||
# General search prompt
|
# Search prompt
|
||||||
SEARCH_PROMPT=${SEARCH_PROMPT:-"🔎 〉"}
|
SEARCH_PROMPT=${SEARCH_PROMPT:-"🔎 〉"}
|
||||||
# Prompt that takes an artist name as argument
|
export SEARCH_PROMPT
|
||||||
ARTIST_PROMPT="${ARTIST_PROMPT:-"🎤 ${CARTIST}%s$OFF 〉"}"
|
|
||||||
# Prompt that takes an artist name and a release name as arguments (in that
|
|
||||||
# order)
|
|
||||||
FULL_PROMPT="${FULL_PROMPT:-"🎤 ${CARTIST}%s$OFF 》${CTITLE}%s$OFF 〉"}"
|
|
||||||
export SEARCH_PROMPT ARTIST_PROMPT FULL_PROMPT
|
|
||||||
|
|
||||||
# Visual representation of current mode
|
# Headers
|
||||||
# =====================================
|
# =======
|
||||||
# Sign to indicate `normal` mode
|
# Header that displays artist's name
|
||||||
PROMPT_NORMAL="${PROMPT_NORMAL:-"${FAINT}[n]${OFF}"}"
|
HEADER_ARTIST="${HEADER_ARTIST:-"🎤 ${CARTIST}%s$OFF 〉"}"
|
||||||
# Sign to indicate `insert` mode
|
# Header that displays the release-group name after artist's
|
||||||
PROMPT_INSERT="${PROMPT_INSERT:-"${FAINT}[i]${OFF}"}"
|
HEADER_ARTIST_RELEASEGROUP="${HEADER_ARTIST_RELEASEGROUP:-"🎤 ${CARTIST}%s$OFF 》${CTITLE}%s$OFF 〉"}"
|
||||||
export PROMPT_NORMAL PROMPT_INSERT
|
# Header that in addition to `HEADER_ARTIST_RELEASEGROUP` also shows some
|
||||||
|
# release information
|
||||||
|
HEADER_RELEASE="${HEADER_RELEASE:-"🎤 ${CARTIST}%s$OFF 》${CTITLE}%s$OFF 〉%s"}"
|
||||||
|
# The release information is formatted as follows (placeholders implicit):
|
||||||
|
HEADER_RELEASE_FORMAT="${HEADER_RELEASE_FORMAT:-"${CRELINFO}<<tracks>> tx <<media>> $OFF|$CRELINFO <<label>> <<country>> <<year>>$OFF"}"
|
||||||
|
export HEADER_ARTIST HEADER_ARTIST_RELEASEGROUP HEADER_RELEASE HEADER_RELEASE_FORMAT
|
||||||
|
|
||||||
# Artist view
|
# Artist view
|
||||||
# ===========
|
# ===========
|
||||||
|
Reference in New Issue
Block a user