Compare commits
3 Commits
2d9970c198
...
18ffae7ac8
| Author | SHA1 | Date | |
|---|---|---|---|
| 18ffae7ac8 | |||
| d71c751bbc | |||
| 234b65c9d8 |
@@ -347,8 +347,8 @@ class Auditui(App):
|
|||||||
progress_percent = min(100.0, max(
|
progress_percent = min(100.0, max(
|
||||||
0.0, (chapter_elapsed / chapter_total) * 100.0))
|
0.0, (chapter_elapsed / chapter_total) * 100.0))
|
||||||
progress_bar.update(progress=progress_percent)
|
progress_bar.update(progress=progress_percent)
|
||||||
chapter_elapsed_str = self._format_time(chapter_elapsed)
|
chapter_elapsed_str = LibraryClient.format_time(chapter_elapsed)
|
||||||
chapter_total_str = self._format_time(chapter_total)
|
chapter_total_str = LibraryClient.format_time(chapter_total)
|
||||||
progress_info.update(
|
progress_info.update(
|
||||||
f"{chapter_name} | {chapter_elapsed_str} / {chapter_total_str}")
|
f"{chapter_name} | {chapter_elapsed_str} / {chapter_total_str}")
|
||||||
progress_info.display = True
|
progress_info.display = True
|
||||||
@@ -361,17 +361,6 @@ class Auditui(App):
|
|||||||
progress_info.display = False
|
progress_info.display = False
|
||||||
progress_bar.display = False
|
progress_bar.display = False
|
||||||
|
|
||||||
def _format_time(self, seconds: float) -> str:
|
|
||||||
"""Format seconds as HH:MM:SS or MM:SS."""
|
|
||||||
total_seconds = int(seconds)
|
|
||||||
hours = total_seconds // 3600
|
|
||||||
minutes = (total_seconds % 3600) // 60
|
|
||||||
secs = total_seconds % 60
|
|
||||||
|
|
||||||
if hours > 0:
|
|
||||||
return f"{hours:02d}:{minutes:02d}:{secs:02d}"
|
|
||||||
return f"{minutes:02d}:{secs:02d}"
|
|
||||||
|
|
||||||
def _save_position_periodically(self) -> None:
|
def _save_position_periodically(self) -> None:
|
||||||
"""Periodically save playback position."""
|
"""Periodically save playback position."""
|
||||||
self.playback.update_position_if_needed()
|
self.playback.update_position_if_needed()
|
||||||
|
|||||||
@@ -227,3 +227,15 @@ class LibraryClient:
|
|||||||
parts.append(f"{minutes} minute{'s' if minutes != 1 else ''}")
|
parts.append(f"{minutes} minute{'s' if minutes != 1 else ''}")
|
||||||
|
|
||||||
return " ".join(parts) if parts else default_none
|
return " ".join(parts) if parts else default_none
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def format_time(seconds: float) -> str:
|
||||||
|
"""Format seconds as HH:MM:SS or MM:SS."""
|
||||||
|
total_seconds = int(seconds)
|
||||||
|
hours = total_seconds // 3600
|
||||||
|
minutes = (total_seconds % 3600) // 60
|
||||||
|
secs = total_seconds % 60
|
||||||
|
|
||||||
|
if hours > 0:
|
||||||
|
return f"{hours:02d}:{minutes:02d}:{secs:02d}"
|
||||||
|
return f"{minutes:02d}:{secs:02d}"
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ class PlaybackController:
|
|||||||
if last_position is not None and last_position > 0:
|
if last_position is not None and last_position > 0:
|
||||||
start_position = last_position
|
start_position = last_position
|
||||||
notify(
|
notify(
|
||||||
f"Resuming from {self._format_position(start_position)}")
|
f"Resuming from {LibraryClient.format_time(start_position)}")
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -513,17 +513,6 @@ class PlaybackController:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _format_position(self, seconds: float) -> str:
|
|
||||||
"""Format position in seconds as HH:MM:SS or MM:SS."""
|
|
||||||
total_seconds = int(seconds)
|
|
||||||
hours = total_seconds // 3600
|
|
||||||
minutes = (total_seconds % 3600) // 60
|
|
||||||
secs = total_seconds % 60
|
|
||||||
|
|
||||||
if hours > 0:
|
|
||||||
return f"{hours:02d}:{minutes:02d}:{secs:02d}"
|
|
||||||
return f"{minutes:02d}:{secs:02d}"
|
|
||||||
|
|
||||||
def update_position_if_needed(self) -> None:
|
def update_position_if_needed(self) -> None:
|
||||||
"""Periodically save position if enough time has passed."""
|
"""Periodically save position if enough time has passed."""
|
||||||
if not (self.is_playing and self.library_client and self.current_asin):
|
if not (self.is_playing and self.library_client and self.current_asin):
|
||||||
|
|||||||
Reference in New Issue
Block a user