From d9e4fc4bac4a49fd4336d3a529c57c2c246ffa0f Mon Sep 17 00:00:00 2001 From: Blondel MONDESIR Date: Wed, 27 Mar 2024 22:52:25 -0400 Subject: [PATCH 1/2] Add a timestamp to playlist path after download Fixes #150, enabling subsequent [re]downloads of playlists --- cps/tasks/metadata_extract.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cps/tasks/metadata_extract.py b/cps/tasks/metadata_extract.py index 4f6ec53e96..e32320139c 100644 --- a/cps/tasks/metadata_extract.py +++ b/cps/tasks/metadata_extract.py @@ -171,6 +171,8 @@ def run(self, worker_thread): self._update_metadata(requested_urls) self._calculate_views_per_day(requested_urls, conn) requested_urls = self._sort_and_limit_requested_urls(requested_urls) + conn.execute("UPDATE playlists SET path = ? WHERE extractor_playlist_id = ?", (f"{self.media_url}×tamp={int(datetime.now().timestamp())}", self.media_url.split("list=")[-1])) + else: try: extractor_id = conn.execute("SELECT extractor_id FROM media WHERE ? LIKE '%' || extractor_id || '%'", (self.media_url,)).fetchone()[0] From 33616bf3e585df6fe85ce1983c16f52519ddf0c0 Mon Sep 17 00:00:00 2001 From: Blondel MONDESIR Date: Wed, 27 Mar 2024 23:40:31 -0400 Subject: [PATCH 2/2] Use path instead of extractor_playlist_id This prevents UNIQUE CONSTRAINT error --- cps/tasks/metadata_extract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/tasks/metadata_extract.py b/cps/tasks/metadata_extract.py index e32320139c..19c1a94eed 100644 --- a/cps/tasks/metadata_extract.py +++ b/cps/tasks/metadata_extract.py @@ -171,7 +171,7 @@ def run(self, worker_thread): self._update_metadata(requested_urls) self._calculate_views_per_day(requested_urls, conn) requested_urls = self._sort_and_limit_requested_urls(requested_urls) - conn.execute("UPDATE playlists SET path = ? WHERE extractor_playlist_id = ?", (f"{self.media_url}×tamp={int(datetime.now().timestamp())}", self.media_url.split("list=")[-1])) + conn.execute("UPDATE playlists SET path = ? WHERE path = ?", (f"{self.media_url}×tamp={int(datetime.now().timestamp())}", self.media_url)) else: try: