From 03426bd0dabb430a0f26c348554058098666708b Mon Sep 17 00:00:00 2001 From: Benexl Date: Tue, 29 Jul 2025 16:56:23 +0300 Subject: [PATCH] feat(watch-history-service): only update remote progress when episode is complete --- fastanime/cli/service/watch_history/service.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fastanime/cli/service/watch_history/service.py b/fastanime/cli/service/watch_history/service.py index b286722..7652378 100644 --- a/fastanime/cli/service/watch_history/service.py +++ b/fastanime/cli/service/watch_history/service.py @@ -27,6 +27,7 @@ class WatchHistoryService: f"Updating watch history for {media_item.title.english} ({media_item.id}) with Episode={player_result.episode}; Stop Time={player_result.stop_time}; Total Duration={player_result.total_time}" ) status = None + self.media_registry.update_media_index_entry( media_id=media_item.id, watched=True, @@ -37,6 +38,17 @@ class WatchHistoryService: status=status, ) + if player_result.stop_time and player_result.total_time: + from ....core.utils.converter import calculate_completion_percentage + + completion_percentage = calculate_completion_percentage( + player_result.stop_time, player_result.total_time + ) + if completion_percentage < self.config.stream.episode_complete_at: + logger.info( + f"Not updating remote watch history since completion percentage ({completion_percentage} is not greater than episode complete at ({self.config.stream.episode_complete_at}))" + ) + return if self.media_api and self.media_api.is_authenticated(): if not self.media_api.update_list_entry( UpdateUserMediaListEntryParams(