#!/usr/bin/ruby =begin Feed2Imap - RSS/Atom Aggregator uploading to an IMAP Server Copyright (c) 2005 Lucas Nussbaum This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA =end $:.unshift File.join(File.dirname(__FILE__), '..', 'lib') require 'rexml/document' require 'yaml' DEFAULTIMAPFOLDER = 'imap://login:password@imapserver/folder.folder2' opml = ARGV[0] doc = nil doc = REXML::Document::new(IO.read(opml)) feeds = [] doc.root.each_element('//outline') do |e| if u = e.attribute('xmlUrl') || e.attribute('htmlUrl') # dirty liferea hack next if u.value == 'vfolder' # get title t = e.attribute('text') || e.attribute('Title') || nil if t.nil? title = '*** FEED TITLE (must be unique) ***' else title = t.value end url = u.value feeds.push({'name' => title, 'url' => url, 'target' => DEFAULTIMAPFOLDER}) end end YAML::dump({'feeds' => feeds}, $stdout)