fix(jellyfin): Gaurd against active session without now playing data

This commit is contained in:
FoxxMD
2024-10-11 13:47:39 -04:00
parent 68e86f4f90
commit 77c9141d92
2 changed files with 12 additions and 4 deletions
+6 -2
View File
@@ -110,9 +110,13 @@ export interface ConfigMeta {
export type SourceData = (PlayObject | PlayerStateData);
export interface PlayerStateData {
platformId: PlayPlatformId
export interface PlayerStateData extends PlayerStateDataMaybePlay {
play: PlayObject
}
export interface PlayerStateDataMaybePlay {
platformId: PlayPlatformId
play?: PlayObject
status?: ReportedPlayerStatus
position?: number
timestamp?: Dayjs
+6 -2
View File
@@ -44,6 +44,7 @@ import {
FormatPlayObjectOptions,
InternalConfig,
PlayerStateData,
PlayerStateDataMaybePlay,
PlayPlatformId, REPORTED_PLAYER_STATUSES
} from "../common/infrastructure/Atomic.js";
import { JellyApiSourceConfig } from "../common/infrastructure/config/source/jellyfin.js";
@@ -278,7 +279,10 @@ export default class JellyfinApiSource extends MemorySource {
//const userData = await getItemsApi(this.api).getItemUserData({itemId: 'ID', userId: this.user.Id});
const sessions = await getSessionApi(this.api).getSessions();
const nonMSSessions = sessions.data.filter(x => x.DeviceId !== this.deviceId).map(x => this.sessionToPlayerState(x)) as PlayerStateData[];
const nonMSSessions = sessions.data
.filter(x => x.DeviceId !== this.deviceId)
.map(x => this.sessionToPlayerState(x))
.filter((x: PlayerStateDataMaybePlay) => x.play !== undefined) as PlayerStateData[];
const validSessions: PlayerStateData[] = [];
for(const session of nonMSSessions) {
@@ -292,7 +296,7 @@ export default class JellyfinApiSource extends MemorySource {
return this.processRecentPlays(validSessions);
}
sessionToPlayerState = (obj: SessionInfo): PlayerStateData => {
sessionToPlayerState = (obj: SessionInfo): PlayerStateDataMaybePlay => {
const {
UserName,