streamdetails = None
if queue_item.streamdetails and (time() < queue_item.streamdetails.expires):
# we already have fresh streamdetails, use these
- queue_item.streamdetails.seconds_skipped = 0
- queue_item.streamdetails.seconds_streamed = 0
+ queue_item.streamdetails.seconds_skipped = None
+ queue_item.streamdetails.seconds_streamed = None
streamdetails = queue_item.streamdetails
else:
# fetch streamdetails from provider
# the fields below will be set/controlled by the streamcontroller
queue_id: Optional[str] = None
- seconds_streamed: int = 0
- seconds_skipped: int = 0
+ seconds_streamed: Optional[float] = None
+ seconds_skipped: Optional[float] = None
gain_correct: Optional[float] = None
loudness: Optional[float] = None
if not queue_track.streamdetails:
track_time = elapsed_time_queue - total_time
break
- duration = (
- queue_track.streamdetails.seconds_streamed
- or queue_track.duration
- or FALLBACK_DURATION
- )
- if duration is not None and elapsed_time_queue > (
- duration + total_time
- ):
+ if queue_track.streamdetails.seconds_streamed is not None:
+ track_duration = queue_track.streamdetails.seconds_streamed
+ else:
+ track_duration = queue_track.duration or FALLBACK_DURATION
+ if elapsed_time_queue > (track_duration + total_time):
# total elapsed time is more than (streamed) track duration
# move index one up
- total_time += duration
+ total_time += track_duration
queue_index += 1
else:
# no more seconds left to divide, this is our track