class AeRssMaker::News
Public Class Methods
fetch(id, password)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 9 def self.fetch(id, password) News.new.fetch(id, password) end
new()
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 5 def initialize @agent = Mechanize.new end
Public Instance Methods
fetch(id, password)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 13 def fetch(id, password) login(id, password) feeds = [] news_list.each do |node| feed = Feed.new feed.title = title(node) feed.url = url(node) feed.date = date(node) feed.description = description(feed.url) feeds.push(feed) end feeds end
Private Instance Methods
date(node)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 54 def date(node) elm = node.xpath('./p[@class="date"]') elm.empty? ? '' : elm.text[/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/] + ' 00:00:00+09:00' end
description(url)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 59 def description(url) page = @agent.get(url) body = page.search('//div[@class="body"]') body.empty? ? '' : body.to_html end
login(id, password)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 30 def login(id, password) page = @agent.get('https://fc.momoclo.net/pc/login.php') page.forms_with(action: '/pc/login.php').each do |form| form.login_id = id form.password = password @agent.submit(form) end end
news_list()
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 39 def news_list page = @agent.get('http://fc.momoclo.net/pc/information/') page.search('//div[@id="news"]/ul/li') end
title(node)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 44 def title(node) elm = node.xpath('./h3/a') elm.empty? ? '' : elm[0].text end
url(node)
click to toggle source
# File lib/ae_rss_maker/news/fetch.rb, line 49 def url(node) elm = node.xpath('./h3/a') elm.empty? ? '' : URI.join('http://fc.momoclo.net/pc/information/', elm[0][:href]).to_s end