bugfixes and improved themeing support

This commit is contained in:
2025-09-02 12:31:44 +02:00
parent 230b534501
commit 0ba9ec2932
10 changed files with 410 additions and 129 deletions

View File

@@ -103,32 +103,8 @@ LOCALDATA_RELEASEGROUPS_VIEW="$LOCALDATADIR/releasegroups_view"
LOCALDATA_RELEASES_VIEW="$LOCALDATADIR/releases_view"
DECORATION_FILENAME=${DECORATION_FILENAME:-"mbid.json"}
# Load local music
# argument $1: path to decorated music files
load_local() {
[ -d "$LOCALDATADIR" ] || mkdir -p "$LOCALDATADIR"
tmpreleases=$(mktemp)
[ -f "$tmpreleases" ] || exit 1
info "Locating and parsing decoration files ($DECORATION_FILENAME)"
find "$1" -type f -name "$DECORATION_FILENAME" -print0 |
xargs -0 -P 4 $JQ -r '.releaseid+"\t"+input_filename' |
tee "$LOCALDATA_RELEASES" |
cut -d "$(printf '\t')" -f 1 >"$tmpreleases"
__batch_load_missing "$TYPE_RELEASE" "$tmpreleases"
# Get release groups and album artists
while IFS= read -r rid; do
mb=$(mb_release "$rid")
echo "$mb" | $JQ -r '."release-group".id' >>"$LOCALDATA_RELEASEGROUPS"
echo "$mb" | $JQ -r '."release-group"."artist-credit" | map(.artist.id) | join("\n")' >>"$LOCALDATA_ARTISTS"
done <"$tmpreleases"
tf=$(mktemp)
sort "$LOCALDATA_RELEASEGROUPS" | uniq >"$tf" && mv "$tf" "$LOCALDATA_RELEASEGROUPS"
sort "$LOCALDATA_ARTISTS" | uniq >"$tf" && mv "$tf" "$LOCALDATA_ARTISTS"
# Populate cache with missing data
__batch_load_missing "$TYPE_RELEASEGROUP" "$LOCALDATA_RELEASEGROUPS"
__batch_load_missing "$TYPE_ARTIST" "$LOCALDATA_ARTISTS"
rm -f "$tmpreleases"
# Precompute views
# Precompute views
precompute_view() {
info "Precomputing artist view"
while IFS= read -r aid; do
mb_artist "$aid" | $JQ -r '[
@@ -231,3 +207,33 @@ load_local() {
column -t -s "$(printf '\t')" |
sed 's| \+\([0-9a-f-]\+\) \+\([0-9a-f-]\+\):\(.*$\)$|\t\1\t\2\t\3|' >"$LOCALDATA_RELEASES_VIEW"
}
# Load local music
# argument $1: path to decorated music files
load_local() {
[ -d "$LOCALDATADIR" ] || mkdir -p "$LOCALDATADIR"
tmpreleases=$(mktemp)
[ -f "$tmpreleases" ] || exit 1
info "Locating and parsing decoration files ($DECORATION_FILENAME)"
find "$1" -type f -name "$DECORATION_FILENAME" -print0 |
xargs -0 -P 4 $JQ -r '.releaseid+"\t"+input_filename' |
tee "$LOCALDATA_RELEASES" |
cut -d "$(printf '\t')" -f 1 >"$tmpreleases"
__batch_load_missing "$TYPE_RELEASE" "$tmpreleases"
# Get release groups and album artists
while IFS= read -r rid; do
mb=$(mb_release "$rid")
echo "$mb" | $JQ -r '."release-group".id' >>"$LOCALDATA_RELEASEGROUPS"
echo "$mb" | $JQ -r '."release-group"."artist-credit" | map(.artist.id) | join("\n")' >>"$LOCALDATA_ARTISTS"
done <"$tmpreleases"
tf=$(mktemp)
sort "$LOCALDATA_RELEASEGROUPS" | uniq >"$tf" && mv "$tf" "$LOCALDATA_RELEASEGROUPS"
sort "$LOCALDATA_ARTISTS" | uniq >"$tf" && mv "$tf" "$LOCALDATA_ARTISTS"
# Populate cache with missing data
__batch_load_missing "$TYPE_RELEASEGROUP" "$LOCALDATA_RELEASEGROUPS"
__batch_load_missing "$TYPE_ARTIST" "$LOCALDATA_ARTISTS"
rm -f "$tmpreleases"
info "Resetting views"
rm -f "$LOCALDATA_ARTISTS_VIEW" "$LOCALDATA_RELEASEGROUPS_VIEW" "$LOCALDATA_RELEASES_VIEW"
precompute_view
}