class AtomicTV::EpisodeMetadata
Constants
- ArtworkBaseURL
Attributes
episode[R]
posters[R]
series[R]
Public Class Methods
new(series, episode)
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 6 def initialize(series, episode) @series, @episode = series, episode end
Public Instance Methods
actors()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 68 def actors (Array(series.actors).map {|a| a.name} + episode.guest_stars).uniq end
air_date()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 64 def air_date episode.air_date && episode.air_date.to_s + 'T00:00:00Z' end
album()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 24 def album "#{series.name}, Season #{episode.season_number}" end
artist()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 16 def artist series.name end
description()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 32 def description episode.overview.to_s[0,255].gsub(/\.(.*)\Z/, '.') end
directors()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 72 def directors parse_names(episode.director) end
genre()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 28 def genre series.genres.first end
long_description()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 36 def long_description episode.overview.to_s end
media_type()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 12 def media_type 'TV Show' end
title()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 20 def title episode.name end
track_number()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 60 def track_number episode.number end
tv_episode()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 48 def tv_episode "#{episode.season_number}#{episode.number.to_s.rjust(2, '0')}" end
tv_episode_number()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 56 def tv_episode_number episode.number end
tv_network()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 40 def tv_network series.network end
tv_season_number()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 52 def tv_season_number episode.season_number end
tv_show_name()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 44 def tv_show_name series.name end
with_loaded_posters() { || ... }
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 82 def with_loaded_posters temporary_directory = Dir.mktmpdir season_posters = series.season_posters(episode.season_number, 'en') season_posters = series.posters('en') if season_posters.empty? @posters = season_posters.map do |poster| url = ArtworkBaseURL + poster.path file = File.new(File.join(temporary_directory, File.basename(url)), 'w') file.write(open(url).read) file.close file end yield ensure FileUtils.rm_rf(temporary_directory) @posters = nil end
writers()
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 76 def writers parse_names(episode.writer) end
Private Instance Methods
parse_names(str)
click to toggle source
# File lib/AtomicTV/episode_metadata.rb, line 104 def parse_names(str) return [] if str.nil? str.gsub!(/\A\|/, '') str.gsub!(/\|\Z/, '') str.split(/\|+/) end