module Syobocal::RSS

Public Class Methods

get(params = {}) click to toggle source
# File lib/syobocal/rss.rb, line 3
def get(params = {})
  parse(open(url(params)))
end
parse(rss) click to toggle source
# File lib/syobocal/rss.rb, line 11
def parse(rss)
  rss = REXML::Document.new(rss)

  result = Result.new

  channel = rss.elements["rdf:RDF/channel"]
  result.title = channel.elements["title"].text
  result.link = channel.elements["link"].text
  result.description = channel.elements["description"].text

  rss.elements.each("rdf:RDF/item") { |item|
    tv = item.elements["tv:feed"]
    result << {
      :about => item.attribute("rdf:about").to_s,
      :title => item.elements["title"].text,
      :link => item.elements["link"].text,
      :description => item.elements["description"].text,
      :dc_date => Time.parse(item.elements["dc:date"].text),
      :dc_publisher => item.elements["dc:publisher"].text,
      :tv_genre => tv.elements["tv:genre"].text,
      :tv_start_datetime => Time.parse(tv.elements["tv:startDatetime"].text),
      :tv_end_datetime => Time.parse(tv.elements["tv:endDatetime"].text),
      :tv_iepg_url => tv.elements["tv:iepgUrl"].text,
      :tv_performer => tv.elements["tv:performer"].text,
    }
  }

  result
end
url(params = {}) click to toggle source
# File lib/syobocal/rss.rb, line 7
def url(params = {})
  "http://cal.syoboi.jp/rss.php" + Syobocal::Util.format_params(params)
end

Private Instance Methods

get(params = {}) click to toggle source
# File lib/syobocal/rss.rb, line 3
def get(params = {})
  parse(open(url(params)))
end
parse(rss) click to toggle source
# File lib/syobocal/rss.rb, line 11
def parse(rss)
  rss = REXML::Document.new(rss)

  result = Result.new

  channel = rss.elements["rdf:RDF/channel"]
  result.title = channel.elements["title"].text
  result.link = channel.elements["link"].text
  result.description = channel.elements["description"].text

  rss.elements.each("rdf:RDF/item") { |item|
    tv = item.elements["tv:feed"]
    result << {
      :about => item.attribute("rdf:about").to_s,
      :title => item.elements["title"].text,
      :link => item.elements["link"].text,
      :description => item.elements["description"].text,
      :dc_date => Time.parse(item.elements["dc:date"].text),
      :dc_publisher => item.elements["dc:publisher"].text,
      :tv_genre => tv.elements["tv:genre"].text,
      :tv_start_datetime => Time.parse(tv.elements["tv:startDatetime"].text),
      :tv_end_datetime => Time.parse(tv.elements["tv:endDatetime"].text),
      :tv_iepg_url => tv.elements["tv:iepgUrl"].text,
      :tv_performer => tv.elements["tv:performer"].text,
    }
  }

  result
end
url(params = {}) click to toggle source
# File lib/syobocal/rss.rb, line 7
def url(params = {})
  "http://cal.syoboi.jp/rss.php" + Syobocal::Util.format_params(params)
end