add OS reportPlayback endpoint and types

This commit is contained in:
jeffvli
2026-05-25 11:43:50 -07:00
parent 0de1e1aa3e
commit 009732e745
2 changed files with 22 additions and 0 deletions
@@ -289,6 +289,14 @@ export const contract = c.router({
200: ssType._response.removeFavorite, 200: ssType._response.removeFavorite,
}, },
}, },
reportPlayback: {
method: 'GET',
path: 'reportPlayback.view',
query: ssType._parameters.reportPlayback,
responses: {
200: ssType._response.reportPlayback,
},
},
savePlayQueue: { savePlayQueue: {
method: 'GET', method: 'GET',
path: 'savePlayQueue.view', path: 'savePlayQueue.view',
+14
View File
@@ -454,6 +454,7 @@ const similarSongs2 = z.object({
export enum SubsonicExtensions { export enum SubsonicExtensions {
FORM_POST = 'formPost', FORM_POST = 'formPost',
INDEX_BASED_QUEUE = 'indexBasedQueue', INDEX_BASED_QUEUE = 'indexBasedQueue',
PLAYBACK_REPORT = 'playbackReport',
SONG_LYRICS = 'songLyrics', SONG_LYRICS = 'songLyrics',
TRANSCODE_OFFSET = 'transcodeOffset', TRANSCODE_OFFSET = 'transcodeOffset',
TRANSCODING = 'transcoding', TRANSCODING = 'transcoding',
@@ -793,6 +794,17 @@ const getInternetRadioStations = z.object({
.optional(), .optional(),
}); });
const reportPlaybackParameters = z.object({
ignoreScrobble: z.boolean(),
mediaId: z.string(),
mediaType: z.enum(['song', 'podcast']),
playbackRate: z.number(),
positionMs: z.number(),
state: z.enum(['starting', 'playing', 'paused', 'stopped']),
});
const reportPlayback = z.null();
export const ssType = { export const ssType = {
_body: { _body: {
getTranscodeDecision: transcodeDecisionRequestBody, getTranscodeDecision: transcodeDecisionRequestBody,
@@ -824,6 +836,7 @@ export const ssType = {
getTranscodeStream: getTranscodeStreamParameters, getTranscodeStream: getTranscodeStreamParameters,
randomSongList: randomSongListParameters, randomSongList: randomSongListParameters,
removeFavorite: removeFavoriteParameters, removeFavorite: removeFavoriteParameters,
reportPlayback: reportPlaybackParameters,
savePlayQueueByIndex: savePlayQueueByIndexParameters, savePlayQueueByIndex: savePlayQueueByIndexParameters,
saveQueue: saveQueueParameters, saveQueue: saveQueueParameters,
scrobble: scrobbleParameters, scrobble: scrobbleParameters,
@@ -877,6 +890,7 @@ export const ssType = {
playQueueByIndex, playQueueByIndex,
randomSongList, randomSongList,
removeFavorite, removeFavorite,
reportPlayback,
saveQueue, saveQueue,
scrobble, scrobble,
search3, search3,