cleaned up

This commit is contained in:
2025-09-08 12:10:10 +02:00
parent a2fd70e096
commit d5b3d7c597
21 changed files with 522 additions and 498 deletions

View File

@@ -1,6 +1,6 @@
gettags() {
ffprobe -v error -show_entries format_tags -print_format json "$1" |
$JQ -r --compact-output '.format.tags | {
$JQ '.format.tags | {
trackid: (."MusicBrainz Release Track Id" // ."MUSICBRAINZ_RELEASETRACKID" // ."MusicBrainz/Release Track Id" // ""),
releaseid: (."MusicBrainz Album Id" // ."MUSICBRAINZ_ALBUMID" // ."MusicBrainz/Album Id" // "")
}'
@@ -19,8 +19,8 @@ decorate() {
(cd "$1" && find . -type f -iname '*.mp3' -o -iname '*.mp4' -o -iname '*.flac' -o -iname '*.m4a') >"$tmpf"
while IFS= read -r f; do
mbid=$(gettags "$1/$f")
rid=$(echo "$mbid" | $JQ -r '.releaseid')
tid=$(echo "$mbid" | $JQ -r '.trackid')
rid=$(echo "$mbid" | $JQ '.releaseid')
tid=$(echo "$mbid" | $JQ '.trackid')
if [ ! "$rid" ] || [ ! "$tid" ]; then
err "File $f: Seems not tagged"
releaseid=""
@@ -40,7 +40,7 @@ decorate() {
done <"$tmpf"
rm -f "$tmpf"
if [ "$releaseid" ]; then
echo "$decoration" | $JQ --compact-output ".releaseid = \"$releaseid\"" >"$1/$DECORATION_FILENAME"
echo "$decoration" | $JQ ".releaseid = \"$releaseid\"" >"$1/$DECORATION_FILENAME"
else
return 1
fi
@@ -75,13 +75,13 @@ __batch_load_missing() {
while IFS= read -r mbid; do
case "$1" in
"$TYPE_ARTIST")
name=$(mb_artist "$mbid" | $JQ -r ".name")
name=$(mb_artist "$mbid" | $JQ ".name")
;;
"$TYPE_RELEASEGROUP")
name=$(mb_releasegroup "$mbid" | $JQ -r ".title")
name=$(mb_releasegroup "$mbid" | $JQ ".title")
;;
"$TYPE_RELEASE")
name=$(mb_release "$mbid" | $JQ -r ".title")
name=$(mb_release "$mbid" | $JQ ".title")
;;
esac
cnt=$((cnt + 1))
@@ -107,7 +107,7 @@ DECORATION_FILENAME=${DECORATION_FILENAME:-"mbid.json"}
precompute_view() {
info "Precomputing artist view"
while IFS= read -r aid; do
mb_artist "$aid" | $JQ -r '[
mb_artist "$aid" | $JQ '[
.id,
.type,
.name,
@@ -129,7 +129,7 @@ precompute_view() {
sed 's| \+\([0-9a-f-]\+\) \+\([0-9a-f-]\+\)$|\t\1\t\2|' >"$LOCALDATA_ARTISTS_VIEW"
info "Precomputing releasegroup view"
while IFS= read -r rgid; do
mb_releasegroup "$rgid" | $JQ -r '[
mb_releasegroup "$rgid" | $JQ '[
.id,
."primary-type",
(."secondary-types" // []|join(";")),
@@ -172,7 +172,7 @@ precompute_view() {
info "Precomputing release view"
cut -d "$(printf '\t')" -f 1 "$LOCALDATA_RELEASES" |
while IFS= read -r rid; do
mb_release "$rid" | $JQ -r '[
mb_release "$rid" | $JQ '[
.id,
.status,
.date,
@@ -215,15 +215,15 @@ load_local() {
[ -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' |
xargs -0 -P 4 $JQ '.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"
echo "$mb" | $JQ '."release-group".id' >>"$LOCALDATA_RELEASEGROUPS"
echo "$mb" | $JQ '."release-group"."artist-credit" | map(.artist.id) | join("\n")' >>"$LOCALDATA_ARTISTS"
done <"$tmpreleases"
tf=$(mktemp)
sort "$LOCALDATA_RELEASEGROUPS" | uniq >"$tf" && mv "$tf" "$LOCALDATA_RELEASEGROUPS"