mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-04-11 11:31:55 +01:00
fix: separate item and show bar state
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { Api } from "@jellyfin/sdk";
|
||||
import { AxiosError } from "axios";
|
||||
import { getAuthHeaders } from "../jellyfin";
|
||||
import { postCapabilities } from "../session/capabilities";
|
||||
|
||||
interface ReportPlaybackProgressParams {
|
||||
api: Api;
|
||||
sessionId: string;
|
||||
itemId: string;
|
||||
positionTicks: number;
|
||||
api?: Api | null;
|
||||
sessionId?: string | null;
|
||||
itemId?: string | null;
|
||||
positionTicks?: number | null;
|
||||
IsPaused?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -20,25 +21,39 @@ export const reportPlaybackProgress = async ({
|
||||
sessionId,
|
||||
itemId,
|
||||
positionTicks,
|
||||
IsPaused = false,
|
||||
}: ReportPlaybackProgressParams): Promise<void> => {
|
||||
console.info(
|
||||
"Reporting playback progress:",
|
||||
sessionId,
|
||||
itemId,
|
||||
positionTicks,
|
||||
);
|
||||
if (!api || !sessionId || !itemId || !positionTicks) {
|
||||
console.error("Missing required parameter");
|
||||
return;
|
||||
}
|
||||
|
||||
console.info("reportPlaybackProgress ~ IsPaused", IsPaused);
|
||||
|
||||
try {
|
||||
await postCapabilities({
|
||||
api,
|
||||
itemId,
|
||||
sessionId,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Failed to post capabilities.", error);
|
||||
throw new Error("Failed to post capabilities.");
|
||||
}
|
||||
|
||||
try {
|
||||
await api.axiosInstance.post(
|
||||
`${api.basePath}/Sessions/Playing/Progress`,
|
||||
{
|
||||
ItemId: itemId,
|
||||
PlaySessionId: sessionId,
|
||||
IsPaused: false,
|
||||
IsPaused,
|
||||
PositionTicks: Math.round(positionTicks),
|
||||
CanSeek: true,
|
||||
MediaSourceId: itemId,
|
||||
EventName: "timeupdate",
|
||||
},
|
||||
{ headers: getAuthHeaders(api) },
|
||||
{ headers: getAuthHeaders(api) }
|
||||
);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
@@ -41,12 +41,15 @@ export const reportPlaybackStopped = async ({
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("reportPlaybackStopped ~", { sessionId, itemId });
|
||||
|
||||
try {
|
||||
const url = `${api.basePath}/PlayingItems/${itemId}`;
|
||||
const params = {
|
||||
playSessionId: sessionId,
|
||||
positionTicks: Math.round(positionTicks),
|
||||
mediaSourceId: itemId,
|
||||
MediaSourceId: itemId,
|
||||
IsPaused: true,
|
||||
};
|
||||
const headers = getAuthHeaders(api);
|
||||
|
||||
@@ -58,7 +61,7 @@ export const reportPlaybackStopped = async ({
|
||||
console.error(
|
||||
"Failed to report playback progress",
|
||||
error.message,
|
||||
error.response?.data,
|
||||
error.response?.data
|
||||
);
|
||||
} else {
|
||||
console.error("Failed to report playback progress", error);
|
||||
|
||||
Reference in New Issue
Block a user