feat: sync play queue for navidrome/subsonic (#1335)

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
This commit is contained in:
Kendall Garner
2025-12-13 05:05:00 +00:00
committed by GitHub
parent 13afd3d9c4
commit ed5d590a6b
31 changed files with 648 additions and 107 deletions
+18
View File
@@ -178,6 +178,15 @@ export const contract = c.router({
400: jfType._response.error,
},
},
getPlayQueue: {
method: 'GET',
path: 'sessions',
query: jfType._parameters.getQueue,
responses: {
200: jfType._response.getSessions,
400: jfType._response.error,
},
},
getServerInfo: {
method: 'GET',
path: 'system/info',
@@ -283,6 +292,15 @@ export const contract = c.router({
400: jfType._response.error,
},
},
savePlayQueue: {
body: jfType._parameters.saveQueue,
method: 'POST',
path: 'sessions/playing',
responses: {
200: jfType._response.scrobble,
400: jfType._response.error,
},
},
scrobblePlaying: {
body: jfType._parameters.scrobble,
method: 'POST',
@@ -772,6 +772,9 @@ export const JellyfinController: InternalControllerEndpoint = {
totalRecordCount: res.body.TotalRecordCount,
};
},
getPlayQueue: async () => {
throw new Error('Not supported');
},
getRandomSongList: async (args) => {
const { apiClientProps, query } = args;
@@ -1292,6 +1295,9 @@ export const JellyfinController: InternalControllerEndpoint = {
return null;
},
savePlayQueue: async () => {
throw new Error('Not supported');
},
scrobble: async (args) => {
const { apiClientProps, query } = args;