calculate start and end via play state

This commit is contained in:
2025-12-10 02:14:34 +01:00
parent 0a31d364d9
commit ce9223a71a

View File

@@ -47,9 +47,12 @@ class JellyfinApiClient:
return None return None
for session in sessions: for session in sessions:
if session.get('NowPlayingItem'): session_id = session.get('Id')
current_item = self.client.jellyfin.get_now_playing(session_id)
if current_item:
self.logger.info("Current playback information fetched.") self.logger.info("Current playback information fetched.")
return self.to_model(session['NowPlayingItem']) return self.to_model(current_item)
self.logger.info("No active playback found.") self.logger.info("No active playback found.")
return None return None
@@ -71,13 +74,12 @@ class JellyfinApiClient:
raise ValueError(f"Unsupported media type: {media_type}") raise ValueError(f"Unsupported media type: {media_type}")
def get_playback_info(self, media: dict) -> tuple[int, int]: def get_playback_info(self, media: dict) -> tuple[int, int]:
media_id = media.get('Id') play_state = media.get('PlayState')
playback_info = self.client.jellyfin.get_userdata_for_item(media_id)
runtime_ticks = media.get('RunTimeTicks', 0) runtime_ticks = media.get('RunTimeTicks')
total_runtime_seconds = runtime_ticks // 10_000_000 total_runtime_seconds = runtime_ticks // 10_000_000
playback_position_ticks = playback_info.get('PlaybackPositionTicks', 0) playback_position_ticks = play_state.get('PositionTicks')
playback_position_seconds = playback_position_ticks // 10_000_000 playback_position_seconds = playback_position_ticks // 10_000_000
start = int(datetime.now().timestamp()) - playback_position_seconds start = int(datetime.now().timestamp()) - playback_position_seconds