class TivoHMO::Adapters::Plex::Movie
Attributes
delegate[R]
Public Class Methods
new(delegate, subtitle=nil)
click to toggle source
Calls superclass method
TivoHMO::API::Item::new
# File lib/tivohmo/adapters/plex/movie.rb, line 11 def initialize(delegate, subtitle=nil) # delegate is a Plex::Movie @delegate = delegate super(delegate.key) self.file = CGI.unescape(delegate.medias.first.parts.first.file) self.subtitle = subtitle self.title = delegate.title self.title = "[#{subtitle.language_code} #{subtitle.type} sub] #{self.title}" if subtitle self.modified_at = Time.at(delegate.updated_at.to_i) self.created_at = Time.parse(delegate.originally_available_at) rescue nil self.created_at ||= Time.at(delegate.added_at.to_i) end
Public Instance Methods
metadata()
click to toggle source
Calls superclass method
TivoHMO::API::Item#metadata
# File lib/tivohmo/adapters/plex/movie.rb, line 28 def metadata md = super begin md.movie_year = Time.parse(delegate.originally_available_at).year rescue nil rating_name = delegate.content_rating.upcase rescue nil rating_value = TivoHMO::API::Metadata::MPAA_RATINGS[rating_name] if rating_value md.mpaa_rating = {name: rating_name, value: rating_value} end md.actors = delegate.roles.collect(&:tag) rescue nil md.program_genres = delegate.genres.collect(&:tag) rescue nil %w[writers directors producers].each do |md_name| md.send("#{md_name}=", delegate.send(md_name).collect(&:tag)) rescue nil end rescue => e logger.log_exception e, "Failed to read plex metadata for #{self}" end md end