From 4de80127216876cfc220be1d4c4c7c195158e701 Mon Sep 17 00:00:00 2001 From: Sam Vevang Date: Wed, 26 Apr 2023 13:09:59 -0500 Subject: [PATCH] Remove audio version templates --- app/models/episode_import.rb | 61 ------------------------------ app/models/podcast_import.rb | 46 ---------------------- test/models/episode_import_test.rb | 9 ----- test/models/podcast_import_test.rb | 13 +++---- 4 files changed, 6 insertions(+), 123 deletions(-) diff --git a/app/models/episode_import.rb b/app/models/episode_import.rb index d4cd8c064..65fe08cd8 100644 --- a/app/models/episode_import.rb +++ b/app/models/episode_import.rb @@ -32,13 +32,6 @@ class EpisodeImport < ActiveRecord::Base RETRYING = "retrying".freeze EPISODE_SAVED = "episode saved".freeze - def audio_versions - @audio_versions ||= [] - @audio_versions - end - - attr_writer :audio_versions - def unlock_podcast if podcast_import.finished? podcast_import.podcast.update(locked: false) @@ -150,8 +143,6 @@ def update_episode_with_entry! episode.url = episode_url(entry) || default_episode_url(episode) episode.itunes_type = entry[:itunes_episode_type] unless entry[:itunes_episode_type].blank? - update_audio - episode end @@ -185,58 +176,6 @@ def update_image to_insert end - def update_audio - if audio.blank? || audio[:files].blank? - audio_versions.clear - return [] - end - - if audio_versions.blank? - template = get_or_create_template(audio, entry["enclosure"]["type"]) - version = { - audio_version_template: template, - label: "Podcast Audio", - explicit: explicit(entry[:itunes_explicit]), - audio_files: [] - } - audio_versions << version - else - version = audio_versions.first - end - - audio_files = version[:audio_files] || [] - to_insert = [] - to_destroy = [] - - if audio_files.size > audio[:files].size - to_destroy = audio_files[audio[:files].size..(audio[:files].size - 1)] - end - - audio[:files].each_with_index do |audio_url, i| - existing_audio = audio_files[i] - - if existing_audio && !files_match?(existing_audio, audio_url) - to_destroy << existing_audio - existing_audio = nil - end - - if !existing_audio - new_audio = { - upload: audio_url.gsub(" ", "%20"), - label: "Segment #{i + 1}", - position: (i + 1) - } - to_insert << new_audio - end - end - - version.audio_files.reject { |i| to_destroy.any? { |d| d.equal?(id) } } if to_destroy.size > 0 - - to_insert.each { |af| version[:audio_files] << af } - - to_insert - end - def entry_description(entry) atr = entry_description_attribute(entry) clean_text(entry[atr]) diff --git a/app/models/podcast_import.rb b/app/models/podcast_import.rb index 8bfa79923..09bbce42f 100644 --- a/app/models/podcast_import.rb +++ b/app/models/podcast_import.rb @@ -28,13 +28,6 @@ class PodcastImport < ActiveRecord::Base MP3_CONTENT_TYPE = "audio/mpeg".freeze VIDEO_CONTENT_TYPE = "video/mpeg".freeze - def audio_version_templates - @audio_versions ||= [] - @audio_versions - end - - attr_writer :audio_version_templates - def episode_import_placeholders EpisodeImport.where(podcast_import_id: id).having_duplicate_guids end @@ -333,45 +326,6 @@ def parse_keywords(feed) (ikey + mkey).compact.uniq end - def get_or_create_template(audio_files, enclosure_type = nil) - num_segments = [audio_files[:files].count, 1].max - template = nil - contains_video = enclosure_type&.starts_with?("video/") - content_type = contains_video ? VIDEO_CONTENT_TYPE : MP3_CONTENT_TYPE - - podcast.with_lock do - template = audio_version_templates - .find { |avt| avt[:segment_count] == num_segments && avt[:content_type] == content_type } - if !template - template = - { - label: podcast_label(contains_video, num_segments), - content_type: content_type, - segment_count: num_segments, - promos: false, - length_minimum: 0, - length_maximum: 0, - audio_file_templates: [] - } - - audio_version_templates << template - - num_segments.times do |x| - num = x + 1 - template[:audio_file_templates] << - { - position: num, - label: "Segment #{num}", - length_minimum: 0, - length_maximum: 0 - } - end - end - end - - template - end - def podcast_label(contains_video, num_segments) label = contains_video ? "Podcast Video" : "Podcast Audio" label += " #{num_segments} #{"segment".pluralize(num_segments)}" diff --git a/test/models/episode_import_test.rb b/test/models/episode_import_test.rb index d3bce139e..cc9fcdd6a 100644 --- a/test/models/episode_import_test.rb +++ b/test/models/episode_import_test.rb @@ -62,15 +62,6 @@ _(f.podcast_id).must_equal podcast.id _(f.published_at).must_equal Time.zone.parse("2017-01-20 03:04:12") - _(episode_import.audio_versions.count).must_equal 1 - config_audio = "https://dts.podtrac.com/redirect.mp3/media.blubrry.com/transistor/cdn-transistor.prx.org/wp-content/uploads/Smithsonian3_Transistor.mp3" - version = episode_import.audio_versions.first - _(version[:label]).must_equal "Podcast Audio" - _(version[:explicit]).must_be_nil - - _(version[:audio_files][0][:position]).must_equal 1 - _(version[:audio_files][0][:upload]).must_equal config_audio - _(f.contents.count).must_equal 1 _(f.contents.first.status).must_equal "created" diff --git a/test/models/podcast_import_test.rb b/test/models/podcast_import_test.rb index 6b5267359..e56ab017c 100644 --- a/test/models/podcast_import_test.rb +++ b/test/models/podcast_import_test.rb @@ -80,24 +80,23 @@ # get the memoized importer importer = importer.episode_imports.first.podcast_import _(importer.episode_imports.count).must_equal 2 - _(importer.audio_version_templates.count).must_equal 2 end it "imports a feed" do importer.import end - it "handles audio and video templates in episodes" do + it "handles audio and video in episodes" do importer.url = "http://feeds.prx.org/feed_with_video" importer.import eps = importer.episode_imports.reset eps.map(&:import) - importer = eps.first.podcast_import - _(importer.audio_version_templates.count).must_equal 2 - _(importer.audio_version_templates - .count { |avt| avt[:content_type] == PodcastImport::VIDEO_CONTENT_TYPE }).must_equal 1 + _(eps.length).must_equal 2 + + _(eps[0].episode.contents.map(&:url).all? { |u| u =~ /\.mp4$/ }).must_equal true + _(eps[1].episode.contents.map(&:url).all? { |u| u =~ /\.mp3$/ }).must_equal true end describe "episodes only" do @@ -298,7 +297,7 @@ ep2 = importer.episode_imports[1] ep1.update! status: EpisodeImport::FAILED - ep2.update! status: EpisodeImport::STORY_SAVED + ep2.update! status: EpisodeImport::EPISODE_SAVED importer.reload