improved release group display
This commit is contained in:
@@ -1,23 +1,47 @@
|
||||
BEGIN { OFS="\t" }
|
||||
|
||||
{
|
||||
line_type=""
|
||||
line_sectype=""
|
||||
line_release=format_release
|
||||
line_year=""
|
||||
gsub("&", "\\\\&")
|
||||
id = $1
|
||||
type = $2
|
||||
year = substr($3, 1, 4) + 0
|
||||
title = $4
|
||||
if (type == "Single")
|
||||
line = format_single
|
||||
else if (type == "Album")
|
||||
line = format_album
|
||||
else if (type == "EP")
|
||||
line = format_ep
|
||||
else
|
||||
line = format_album
|
||||
if (year)
|
||||
line = line " " format_year
|
||||
sub("<<title>>", title, line)
|
||||
sub("<<year>>", year, line)
|
||||
sort = year ? year : 0
|
||||
print sort, id, line
|
||||
sectype = $3
|
||||
year = substr($4, 1, 4) + 0
|
||||
title = $5
|
||||
switch (type) {
|
||||
case "Single": line_type=format_single; break
|
||||
case "Album": line_type=format_album; break
|
||||
case "EP": line_type=format_ep; break
|
||||
case "Broadcast": line_type=format_broadcast; break
|
||||
case "Other": line_type=format_other; break
|
||||
default: line_type="unknown type"
|
||||
}
|
||||
split(sectype, a, ";")
|
||||
for (i in a) {
|
||||
t=""
|
||||
switch (sectype) {
|
||||
case "Compilation": t=format_compilation; break
|
||||
case "Soundtrack": t=format_soundtrack; break
|
||||
case "Spokenword": t=format_spokenword; break
|
||||
case "Interview": t=format_interview; break
|
||||
case "Audiobook": t=format_audiobook; break
|
||||
case "Audio drama": t=format_audiodrama; break
|
||||
case "Live": t=format_live; break
|
||||
case "Remix": t=format_remix; break
|
||||
case "DJ-mix": t=format_djmix; break
|
||||
case "Mixtape/Street": t=format_mixtape; break
|
||||
case "Demo": t=format_demo; break
|
||||
case "Field recording": t=fieldrec; break
|
||||
}
|
||||
if (t)
|
||||
line_sectype=line_sectype ? line_sectype " / " t : t
|
||||
}
|
||||
sub("<<title>>", title, line_release)
|
||||
line_year = year ? format_year : ""
|
||||
sub("<<year>>", year, line_year)
|
||||
sort = year ? year : 0
|
||||
print line_type, line_sectype, line_release, line_year, sort, id
|
||||
}
|
||||
|
29
src/main.sh
29
src/main.sh
@@ -68,17 +68,36 @@ if [ "${1:-}" = "--internal-browse-artist" ]; then
|
||||
$JQ -r '."release-groups"[] | [
|
||||
.id,
|
||||
."primary-type",
|
||||
(."secondary-types"|join(";")),
|
||||
."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_release="$FORMAT_RELEASE" \
|
||||
-v format_year="$FORMAT_YEAR" \
|
||||
-v format_album="$FORMAT_TYPE_ALBUM" \
|
||||
-v format_single="$FORMAT_TYPE_SINGLE" \
|
||||
-v format_ep="$FORMAT_TYPE_EP" \
|
||||
-v format_broadcast="$FORMAT_TYPE_BROADCAST" \
|
||||
-v format_other="$FORMAT_TYPE_OTHER" \
|
||||
-v format_compilation="$FORMAT_TYPE_SECONDARY_COMPILATION" \
|
||||
-v format_soundtrack="$FORMAT_TYPE_SECONDARY_SOUNDTRACK" \
|
||||
-v format_spokenword="$FORMAT_TYPE_SECONDARY_SPOKENWORD" \
|
||||
-v format_interview="$FORMAT_TYPE_SECONDARY_INTERVIEW" \
|
||||
-v format_audiobook="$FORMAT_TYPE_SECONDARY_AUDIOBOOK" \
|
||||
-v format_audiodrama="$FORMAT_TYPE_SECONDARY_AUDIODRAMA" \
|
||||
-v format_live="$FORMAT_TYPE_SECONDARY_LIVE" \
|
||||
-v format_remix="$FORMAT_TYPE_SECONDARY_REMIX" \
|
||||
-v format_djmix="$FORMAT_TYPE_SECONDARY_DJMIX" \
|
||||
-v format_mixtape="$FORMAT_TYPE_SECONDARY_MIXTAPE" \
|
||||
-v format_demo="$FORMAT_TYPE_SECONDARY_DEMO" \
|
||||
-v format_fieldrec="$FORMAT_TYPE_SECONDARY_FIELDREC" \
|
||||
"$AWK_RELEASEGROUPS" |
|
||||
sort -n -r
|
||||
sort |
|
||||
sort -t "$(printf '\t')" -k 5 -n -r |
|
||||
column -t -s "$(printf '\t')" |
|
||||
sed 's| \+[0-9]\+ \+\([0-9a-f-]\+\)$|\t\1|'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@@ -117,7 +136,7 @@ while true; do
|
||||
--reverse \
|
||||
--delimiter="\t" \
|
||||
--accept-nth="{2}" \
|
||||
--with-nth="{3}"
|
||||
--with-nth="{1}"
|
||||
)
|
||||
[ "$sel" ] && set -- "--show-release" "$sel"
|
||||
;;
|
||||
|
@@ -2,9 +2,9 @@
|
||||
mb_browse_releases() {
|
||||
$CURL \
|
||||
--get \
|
||||
--data-urlencode fmt=json \
|
||||
--data fmt=json \
|
||||
--data inc=release-groups \
|
||||
--data-urlencode artist="$1" \
|
||||
--data-urlencode inc=release-groups \
|
||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||
"https://musicbrainz.org/ws/2/release"
|
||||
}
|
||||
@@ -13,7 +13,9 @@ mb_browse_releases() {
|
||||
mb_browse_release_groups() {
|
||||
$CURL \
|
||||
--get \
|
||||
--data-urlencode fmt=json \
|
||||
--data fmt=json \
|
||||
--data limit=100 \
|
||||
--data offset="${2:-0}" \
|
||||
--data-urlencode artist="$1" \
|
||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||
"https://musicbrainz.org/ws/2/release-group"
|
||||
@@ -23,7 +25,7 @@ mb_browse_release_groups() {
|
||||
mb_search_artists() {
|
||||
$CURL \
|
||||
--get \
|
||||
--data-urlencode fmt=json \
|
||||
--data fmt=json \
|
||||
--data-urlencode query="$1" \
|
||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||
"https://musicbrainz.org/ws/2/artist"
|
||||
@@ -33,8 +35,8 @@ mb_search_artists() {
|
||||
mb_get_artist() {
|
||||
$CURL \
|
||||
--get \
|
||||
--data-urlencode fmt=json \
|
||||
--data-urlencode inc="url-rels" \
|
||||
--data fmt=json \
|
||||
--data inc="url-rels" \
|
||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||
"https://musicbrainz.org/ws/2/artist/$1"
|
||||
}
|
||||
|
@@ -4,14 +4,33 @@ COLOR_RESET="\033[m"
|
||||
FORMAT_PERSON="${FORMAT_PERSON:-👤 $COLOR_ARTIST<<name>>$COLOR_RESET}"
|
||||
FORMAT_GROUP="${FORMAT_GROUP:-👥 $COLOR_ARTIST<<name>>$COLOR_RESET}"
|
||||
FORMAT_DISAMBIGUATION="${FORMAT_DISAMBIGUATION:-$COLOR_DISAMBIGUATION(<<disambiguation>>)$COLOR_RESET}"
|
||||
COLOR_ALBUM="\033[38;5;208m"
|
||||
COLOR_SINGLE="\033[38;5;210m"
|
||||
COLOR_EP="\033[38;5;209m"
|
||||
COLOR_TYPE="\033[38;5;208m"
|
||||
COLOR_TYPE_SECONDARY="\033[38;5;210m"
|
||||
COLOR_RELEASE_TITLE="\033[38;5;229m"
|
||||
COLOR_RELEASE_YEAR="\033[38;5;179m"
|
||||
FORMAT_ALBUM="${FORMAT_ALBUM:-"💽 ${COLOR_ALBUM} LP $COLOR_RESET $COLOR_RELEASE_TITLE<<title>>$COLOR_RESET"}"
|
||||
FORMAT_SINGLE="${FORMAT_SINGLE:-"💽 ${COLOR_SINGLE}single$COLOR_RESET $COLOR_RELEASE_TITLE<<title>>$COLOR_RESET"}"
|
||||
FORMAT_EP="${FORMAT_EP:-"💽 ${COLOR_EP} EP $COLOR_RESET $COLOR_RELEASE_TITLE<<title>>$COLOR_RESET"}"
|
||||
FORMAT_RELEASE="${FORMAT_RELEASE:-"${COLOR_RELEASE_TITLE}<<title>>$COLOR_RESET"}"
|
||||
FORMAT_YEAR="${FORMAT_YEAR:-"${COLOR_RELEASE_YEAR}(<<year>>)${COLOR_RESET}"}"
|
||||
FORMAT_TYPE_ALBUM="${FORMAT_TYPE_ALBUM:-"💽 ${COLOR_TYPE}LP$COLOR_RESET"}"
|
||||
FORMAT_TYPE_EP="${FORMAT_TYPE_EP:-"📀 ${COLOR_TYPE}EP$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SINGLE="${FORMAT_TYPE_SINGLE:-"🎶 ${COLOR_TYPE}single$COLOR_RESET"}"
|
||||
FORMAT_TYPE_BROADCAST="${FORMAT_TYPE_BROADCAST:-"📻 ${COLOR_TYPE}broadcast$COLOR_RESET"}"
|
||||
FORMAT_TYPE_OTHER="${FORMAT_TYPE_OTHER:-"❔ ${COLOR_TYPE}other$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_COMPILATION="${FORMAT_TYPE_SECONDARY_COMPILATION:-"🧩 ${COLOR_TYPE_SECONDARY}compilation$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_SOUNDTRACK="${FORMAT_TYPE_SECONDARY_SOUNDTRACK:-"🎬 ${COLOR_TYPE_SECONDARY}soundtrack$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_SPOKENWORD="${FORMAT_TYPE_SECONDARY_SPOKENWORD:-"📖 ${COLOR_TYPE_SECONDARY}spokenword$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_INTERVIEW="${FORMAT_TYPE_SECONDARY_INTERVIEW:-"💬 ${COLOR_TYPE_SECONDARY}interview$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_AUDIOBOOK="${FORMAT_TYPE_SECONDARY_AUDIOBOOK:-"🎧 ${COLOR_TYPE_SECONDARY}audiobook$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_AUDIODRAMA="${FORMAT_TYPE_SECONDARY_AUDIODRAMA:-"🎭 ${COLOR_TYPE_SECONDARY}audio drama$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_LIVE="${FORMAT_TYPE_SECONDARY_LIVE:-"🎤 ${COLOR_TYPE_SECONDARY}live$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_REMIX="${FORMAT_TYPE_SECONDARY_REMIX:-"🔁 ${COLOR_TYPE_SECONDARY}remix$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_DJMIX="${FORMAT_TYPE_SECONDARY_DJMIX:-"🪩 ${COLOR_TYPE_SECONDARY}DJ-mix$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_MIXTAPE="${FORMAT_TYPE_SECONDARY_MIXTAPE:-"📼 ${COLOR_TYPE_SECONDARY}mixtape$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_DEMO="${FORMAT_TYPE_SECONDARY_DEMO:-"🧪 ${COLOR_TYPE_SECONDARY}demo$COLOR_RESET"}"
|
||||
FORMAT_TYPE_SECONDARY_FIELDREC="${FORMAT_TYPE_SECONDARY_FIELDREC:-"🌿 ${COLOR_TYPE_SECONDARY}field recording$COLOR_RESET"}"
|
||||
export FORMAT_PERSON FORMAT_GROUP FORMAT_DISAMBIGUATION \
|
||||
FORMAT_ALBUM FORMAT_SINGLE FORMAT_EP FORMAT_YEAR
|
||||
FORMAT_RELEASE FORMAT_YEAR \
|
||||
FORMAT_TYPE_ALBUM FORMAT_TYPE_SINGLE FORMAT_TYPE_EP FORMAT_TYPE_BROADCAST FORMAT_TYPE_OTHER \
|
||||
FORMAT_TYPE_SECONDARY_COMPILATION FORMAT_TYPE_SECONDARY_SOUNDTRACK FORMAT_TYPE_SECONDARY_SPOKENWORD \
|
||||
FORMAT_TYPE_SECONDARY_INTERVIEW FORMAT_TYPE_SECONDARY_AUDIOBOOK FORMAT_TYPE_SECONDARY_AUDIODRAMA \
|
||||
FORMAT_TYPE_SECONDARY_LIVE FORMAT_TYPE_SECONDARY_REMIX FORMAT_TYPE_SECONDARY_DJMIX FORMAT_TYPE_SECONDARY_MIXTAPE \
|
||||
FORMAT_TYPE_SECONDARY_DEMO FORMAT_TYPE_SECONDARY_FIELDREC
|
||||
|
Reference in New Issue
Block a user