# A Simple RSS reader # Copyright (C) 2015 Harald Eilertsen # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . require 'rss' require 'open-uri' require 'yaml' class Item attr_reader :title, :author, :date, :summary, :url def initialize(item) @title = item.title.content @author = item.author.name.content @date = item.updated.content @summary = item.summary.content.strip @url = item.link.href end end class Feed attr_reader :title, :url, :items def initialize(title, args) @title, @url = title, args['url'] @items = [] slurp end private def slurp open(url) do |rss| feed = RSS::Parser.parse(rss) feed.entries.each do |item| add Item.new(item) end end end def add(item) @items << item end end feeds = YAML.load(IO.read('feeds.yml')) items = [] feeds.each do |t, f| feed = Feed.new(t, f) feed.items.each do |item| puts %{
} puts %{
} puts %{

#{item.title}

} puts %{
Posted by #{item.author} at #{item.date}
} puts %{
} puts %{
#{item.summary}} puts %{ } puts %{
} puts end end