WIP. A little custom music server
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: release group was writing based on song title rather then album title

+9 -8
+3 -2
backend/src/api.ts
··· 33 33 ...Song.fields, 34 34 artists: Artist.pipe(Schema.Array, Schema.optional), 35 35 }).pipe(Schema.Array, Schema.optional), 36 - musicbrainz: Schema.optional(Musicbrainz), 36 + musicbrainz: Schema.NullishOr(Musicbrainz), 37 37 }); 38 38 39 39 type AlbumQueryInclude = { ··· 140 140 artist: Artist, 141 141 }).pipe(Schema.Array, Schema.optional), 142 142 }).pipe(Schema.Array, Schema.optional), 143 - musicbrainz: Schema.optional(Musicbrainz), 143 + musicbrainz: Schema.NullishOr(Musicbrainz), 144 144 }); 145 145 146 146 const transformer = Schema.transformOrFail(DatabaseSchema, GetAlbumSchema, { ··· 153 153 ...song, 154 154 artists: song.artists?.map(({ artist }) => artist), 155 155 })), 156 + musicbrainz: input.musicbrainz ?? null, 156 157 }), 157 158 158 159 encode: (x, _, ast) => ParseResult.fail(new ParseResult.Type(ast, x, "Unimplemented")),
+1 -1
backend/src/db/schema.ts
··· 62 62 ); 63 63 64 64 export const musicbrainzTable = sqliteTable("musicbrainz", { 65 - id: id("mbz"), 65 + id: id("musicbrainz"), 66 66 releaseGroupId: text(), 67 67 artistId: text(), 68 68 trackId: text(),
+1 -1
backend/src/sync-library.ts
··· 124 124 const newAlbums = Chunk.toArray(chunk) 125 125 .flatMap((entry) => ({ 126 126 ...entry, 127 - albumId: lookup.albums.find((x) => x.title === entry.title)?.id ?? "", 127 + albumId: lookup.albums.find((x) => x.title === entry.album)?.id ?? "", 128 128 })) 129 129 .filter( 130 130 (x) =>
+1 -1
backend/src/types.ts
··· 73 73 74 74 const MusicbrainzId = Schema.NonEmptyString.pipe( 75 75 Schema.brand("MusicbrainzId"), 76 - Schema.startsWith("mzb_"), 76 + Schema.startsWith("musicbrainz_"), 77 77 Schema.filter((str) => { 78 78 const [, id] = str.split("_"); 79 79 return isValid(id as string) ? true : `Extpected MusicbrainzID to end with valid ulid but recieved (${id})`;
+3 -3
yaak/yaak.rq_KZgY7fLeqp.yaml
··· 2 2 model: http_request 3 3 id: rq_KZgY7fLeqp 4 4 createdAt: 2025-12-21T07:49:27.879149 5 - updatedAt: 2025-12-21T16:48:57.467171027 5 + updatedAt: 2025-12-21T17:24:29.679500858 6 6 workspaceId: wk_ojuTjFeKu7 7 7 folderId: null 8 8 authentication: {} ··· 18 18 urlParameters: 19 19 - enabled: true 20 20 name: :id 21 - value: album_01KD0WQBS1MSJ7R6R0YDRCRMW9 21 + value: album_01KD0Z0YSW9E5AVXQFBVJ586JH 22 22 id: U3siCTcZtm 23 23 - enabled: false 24 24 name: :id?include=song,album-artist,song-artist ··· 31 31 - enabled: true 32 32 name: '' 33 33 value: '' 34 - id: FyTtRkpvVm 34 + id: KGek82iUYI