From c6d0e02f16d506436cc140cc94d5ef517e70be77 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 14 Aug 2025 15:51:38 +0700 Subject: [PATCH] fix playlist incomplete index, slice in queue, #942 --- backend/download/src/queue.py | 4 +++- backend/playlist/src/index.py | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/download/src/queue.py b/backend/download/src/queue.py index 0dd880b6..bdadaa95 100644 --- a/backend/download/src/queue.py +++ b/backend/download/src/queue.py @@ -266,12 +266,14 @@ class PendingList(PendingIndex): def _parse_playlist(self, url: str, limit: int | None): """fast parse playlist""" playlist = YoutubePlaylist(url) - playlist.update_playlist(limit=limit) + playlist.update_playlist() if not playlist.youtube_meta: print(f"{url}: playlist metadata extraction failed, skipping") return video_results = playlist.youtube_meta["entries"] + if limit: + video_results = video_results[:limit] total = len(video_results) for idx, video_data in enumerate(video_results, start=1): diff --git a/backend/playlist/src/index.py b/backend/playlist/src/index.py index e676fbbb..a30b4244 100644 --- a/backend/playlist/src/index.py +++ b/backend/playlist/src/index.py @@ -30,7 +30,7 @@ class YoutubePlaylist(YouTubeItem): self.all_members = False self.nav = False - def build_json(self, scrape=False, limit: int | None = None): + def build_json(self, scrape=False): """collection to create json_data""" self.get_from_es() if self.json_data: @@ -40,9 +40,8 @@ class YoutubePlaylist(YouTubeItem): subscribed = False playlist_sort_order = "top" - limit_str = limit if limit is not None else "" sort_order = 1 if playlist_sort_order == "top" else -1 - playlist_items = f":{limit_str}:{sort_order}" + playlist_items = f"::{sort_order}" if scrape or not self.json_data: self.get_from_youtube( @@ -198,9 +197,9 @@ class YoutubePlaylist(YouTubeItem): if status_code == 200: print(f"{self.youtube_id}: removed {video_id} from playlist") - def update_playlist(self, skip_on_empty=False, limit: int | None = None): + def update_playlist(self, skip_on_empty=False): """update metadata for playlist with data from YouTube""" - self.build_json(scrape=True, limit=limit) + self.build_json(scrape=True) if not self.json_data: # return false to deactivate return False