class ShowRSS::Feed

Attributes

results[R]

Public Class Methods

new(url) click to toggle source
# File lib/showrss/feed.rb, line 9
def initialize(url)
  @url = URI.encode(url)
  @results = fetch_results
end

Protected Instance Methods

fetch_results() click to toggle source
# File lib/showrss/feed.rb, line 16
def fetch_results
  retryable(tries: 5) do
    rss = Mash.new(HTTParty.get(@url).parsed_response["rss"])
    rss.channel.item.collect do |item|
      parse_metadata(item)
    end
  end
end
parse_metadata(item) click to toggle source
# File lib/showrss/feed.rb, line 25
def parse_metadata(item)
  metadata = item.title.gsub(/#{Regexp.escape(item.showname)}\s(\d+\-\d+\-\d+|\d+x\d+).*/, '\1')
  if metadata =~ /\d+x\d+/
    item.season, item.episode = metadata.split("x").collect{ |i| i.to_i }
  elsif metadata =~ /\d+\-\d+\-\d+/
    year, month, day = metadata.split("-").collect{ |i| i.to_i }
    item.first_aired = Time.new(year, month, day)
  end
  item.quality = item.title.include?("720p") ? "720p" : "SDTV"
  item
end