move some code

This commit is contained in:
simojenki
2025-02-15 11:34:59 +00:00
parent 0602e1f077
commit ddde55d02b
4 changed files with 125 additions and 26 deletions

View File

@@ -724,10 +724,22 @@ export class Subsonic {
)
);
// getStarred2 = (credentials: Credentials): Promise<{ albums: Album[] }> =>
// this.getJSON<GetStarredResponse>(credentials, "/rest/getStarred2")
// .then((it) => it.starred2)
// .then((it) => ({
// albums: it.album.map(asAlbum),
// }));
private st4r = (credentials: Credentials, action: string, { id } : { id: string }) =>
this.getJSON<SubsonicResponse>(credentials, `/rest/${action}`, { id }).then(it =>
it.status == "ok"
);
star = (credentials: Credentials, ids : { id: string }) =>
this.st4r(credentials, "star", ids)
unstar = (credentials: Credentials, ids : { id: string }) =>
this.st4r(credentials, "unstar", ids)
setRating = (credentials: Credentials, id: string, rating: number) =>
this.getJSON<SubsonicResponse>(credentials, `/rest/setRating`, {
id,
rating,
}).then(it =>
it.status == "ok"
);
}

View File

@@ -191,21 +191,12 @@ export class SubsonicMusicLibrary implements MusicLibrary {
const thingsToUpdate = [];
if (track.rating.love != rating.love) {
thingsToUpdate.push(
this.subsonic.getJSON(
this.credentials,
`/rest/${rating.love ? "star" : "unstar"}`,
{
id: trackId,
}
)
(rating.love ? this.subsonic.star : this.subsonic.unstar)(this.credentials,{ id: trackId })
);
}
if (track.rating.stars != rating.stars) {
thingsToUpdate.push(
this.subsonic.getJSON(this.credentials, `/rest/setRating`, {
id: trackId,
rating: rating.stars,
})
this.subsonic.setRating(this.credentials, trackId, rating.stars)
);
}
return Promise.all(thingsToUpdate);