calculate start and end via play state
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user