improved release group display
This commit is contained in:
@@ -1,23 +1,47 @@
|
|||||||
BEGIN { OFS="\t" }
|
BEGIN { OFS="\t" }
|
||||||
|
|
||||||
{
|
{
|
||||||
|
line_type=""
|
||||||
|
line_sectype=""
|
||||||
|
line_release=format_release
|
||||||
|
line_year=""
|
||||||
gsub("&", "\\\\&")
|
gsub("&", "\\\\&")
|
||||||
id = $1
|
id = $1
|
||||||
type = $2
|
type = $2
|
||||||
year = substr($3, 1, 4) + 0
|
sectype = $3
|
||||||
title = $4
|
year = substr($4, 1, 4) + 0
|
||||||
if (type == "Single")
|
title = $5
|
||||||
line = format_single
|
switch (type) {
|
||||||
else if (type == "Album")
|
case "Single": line_type=format_single; break
|
||||||
line = format_album
|
case "Album": line_type=format_album; break
|
||||||
else if (type == "EP")
|
case "EP": line_type=format_ep; break
|
||||||
line = format_ep
|
case "Broadcast": line_type=format_broadcast; break
|
||||||
else
|
case "Other": line_type=format_other; break
|
||||||
line = format_album
|
default: line_type="unknown type"
|
||||||
if (year)
|
}
|
||||||
line = line " " format_year
|
split(sectype, a, ";")
|
||||||
sub("<<title>>", title, line)
|
for (i in a) {
|
||||||
sub("<<year>>", year, line)
|
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
|
sort = year ? year : 0
|
||||||
print sort, id, line
|
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"[] | [
|
$JQ -r '."release-groups"[] | [
|
||||||
.id,
|
.id,
|
||||||
."primary-type",
|
."primary-type",
|
||||||
|
(."secondary-types"|join(";")),
|
||||||
."first-release-date",
|
."first-release-date",
|
||||||
.title
|
.title
|
||||||
] | join("\t")' |
|
] | join("\t")' |
|
||||||
awk \
|
awk \
|
||||||
-F "\t" \
|
-F "\t" \
|
||||||
-v format_album="$FORMAT_ALBUM" \
|
-v format_release="$FORMAT_RELEASE" \
|
||||||
-v format_single="$FORMAT_SINGLE" \
|
|
||||||
-v format_ep="$FORMAT_EP" \
|
|
||||||
-v format_year="$FORMAT_YEAR" \
|
-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" |
|
"$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
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -117,7 +136,7 @@ while true; do
|
|||||||
--reverse \
|
--reverse \
|
||||||
--delimiter="\t" \
|
--delimiter="\t" \
|
||||||
--accept-nth="{2}" \
|
--accept-nth="{2}" \
|
||||||
--with-nth="{3}"
|
--with-nth="{1}"
|
||||||
)
|
)
|
||||||
[ "$sel" ] && set -- "--show-release" "$sel"
|
[ "$sel" ] && set -- "--show-release" "$sel"
|
||||||
;;
|
;;
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
mb_browse_releases() {
|
mb_browse_releases() {
|
||||||
$CURL \
|
$CURL \
|
||||||
--get \
|
--get \
|
||||||
--data-urlencode fmt=json \
|
--data fmt=json \
|
||||||
|
--data inc=release-groups \
|
||||||
--data-urlencode artist="$1" \
|
--data-urlencode artist="$1" \
|
||||||
--data-urlencode inc=release-groups \
|
|
||||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||||
"https://musicbrainz.org/ws/2/release"
|
"https://musicbrainz.org/ws/2/release"
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,9 @@ mb_browse_releases() {
|
|||||||
mb_browse_release_groups() {
|
mb_browse_release_groups() {
|
||||||
$CURL \
|
$CURL \
|
||||||
--get \
|
--get \
|
||||||
--data-urlencode fmt=json \
|
--data fmt=json \
|
||||||
|
--data limit=100 \
|
||||||
|
--data offset="${2:-0}" \
|
||||||
--data-urlencode artist="$1" \
|
--data-urlencode artist="$1" \
|
||||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||||
"https://musicbrainz.org/ws/2/release-group"
|
"https://musicbrainz.org/ws/2/release-group"
|
||||||
@@ -23,7 +25,7 @@ mb_browse_release_groups() {
|
|||||||
mb_search_artists() {
|
mb_search_artists() {
|
||||||
$CURL \
|
$CURL \
|
||||||
--get \
|
--get \
|
||||||
--data-urlencode fmt=json \
|
--data fmt=json \
|
||||||
--data-urlencode query="$1" \
|
--data-urlencode query="$1" \
|
||||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||||
"https://musicbrainz.org/ws/2/artist"
|
"https://musicbrainz.org/ws/2/artist"
|
||||||
@@ -33,8 +35,8 @@ mb_search_artists() {
|
|||||||
mb_get_artist() {
|
mb_get_artist() {
|
||||||
$CURL \
|
$CURL \
|
||||||
--get \
|
--get \
|
||||||
--data-urlencode fmt=json \
|
--data fmt=json \
|
||||||
--data-urlencode inc="url-rels" \
|
--data inc="url-rels" \
|
||||||
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
-A "$APP_NAME/$APP_VERSION ($APP_WEBSITE)" \
|
||||||
"https://musicbrainz.org/ws/2/artist/$1"
|
"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_PERSON="${FORMAT_PERSON:-👤 $COLOR_ARTIST<<name>>$COLOR_RESET}"
|
||||||
FORMAT_GROUP="${FORMAT_GROUP:-👥 $COLOR_ARTIST<<name>>$COLOR_RESET}"
|
FORMAT_GROUP="${FORMAT_GROUP:-👥 $COLOR_ARTIST<<name>>$COLOR_RESET}"
|
||||||
FORMAT_DISAMBIGUATION="${FORMAT_DISAMBIGUATION:-$COLOR_DISAMBIGUATION(<<disambiguation>>)$COLOR_RESET}"
|
FORMAT_DISAMBIGUATION="${FORMAT_DISAMBIGUATION:-$COLOR_DISAMBIGUATION(<<disambiguation>>)$COLOR_RESET}"
|
||||||
COLOR_ALBUM="\033[38;5;208m"
|
COLOR_TYPE="\033[38;5;208m"
|
||||||
COLOR_SINGLE="\033[38;5;210m"
|
COLOR_TYPE_SECONDARY="\033[38;5;210m"
|
||||||
COLOR_EP="\033[38;5;209m"
|
|
||||||
COLOR_RELEASE_TITLE="\033[38;5;229m"
|
COLOR_RELEASE_TITLE="\033[38;5;229m"
|
||||||
COLOR_RELEASE_YEAR="\033[38;5;179m"
|
COLOR_RELEASE_YEAR="\033[38;5;179m"
|
||||||
FORMAT_ALBUM="${FORMAT_ALBUM:-"💽 ${COLOR_ALBUM} LP $COLOR_RESET $COLOR_RELEASE_TITLE<<title>>$COLOR_RESET"}"
|
FORMAT_RELEASE="${FORMAT_RELEASE:-"${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_YEAR="${FORMAT_YEAR:-"${COLOR_RELEASE_YEAR}(<<year>>)${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 \
|
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