diff options
| author | Ben Sima <ben@bsima.me> | 2025-11-15 23:13:56 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bsima.me> | 2025-11-15 23:13:56 -0500 |
| commit | a4f7427540840d31195ad37d7c68955ec7a36584 (patch) | |
| tree | 948a022b0feb7859cf48ccf222821aef83c6fd14 /Biz/PodcastItLater/Worker.py | |
| parent | 1e616e0ab8e93fc0be4caf64e4d1584883eca0d3 (diff) | |
Implement episode deduplication in submission flow
- Check for existing episodes by URL hash before processing - Reuse
existing episodes when user submits duplicate URL - Add episode
to user's feed if they don't have it - Track 'added' metrics when
episode added to feed - Worker now creates user_episodes link and
tracks metrics - Show appropriate messages for already-in-feed vs
newly-added episodes
Diffstat (limited to 'Biz/PodcastItLater/Worker.py')
| -rw-r--r-- | Biz/PodcastItLater/Worker.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Biz/PodcastItLater/Worker.py b/Biz/PodcastItLater/Worker.py index 202e512..75a111c 100644 --- a/Biz/PodcastItLater/Worker.py +++ b/Biz/PodcastItLater/Worker.py @@ -519,6 +519,7 @@ class ArticleProcessor: duration = ArticleProcessor.estimate_duration(audio_data) # Step 5: Create episode record + url_hash = Core.hash_url(url) episode_id = Core.Database.create_episode( title=title, audio_url=audio_url, @@ -527,8 +528,19 @@ class ArticleProcessor: user_id=job.get("user_id"), author=job.get("author"), # Pass author from job original_url=url, # Pass the original article URL + original_url_hash=url_hash, ) + # Add episode to user's feed + user_id = job.get("user_id") + if user_id: + Core.Database.add_episode_to_user(user_id, episode_id) + Core.Database.track_episode_event( + episode_id, + "added", + user_id, + ) + # Step 6: Mark job as complete Core.Database.update_job_status( job_id, |
