package org.araqne.rss.command;
import java.util.Iterator;
import org.araqne.logdb.DriverQueryCommand;
import org.araqne.logdb.Row;
import org.araqne.rss.RssEntry;
import org.araqne.rss.RssFeed;
import org.araqne.rss.RssReader;
public class RssCommand extends DriverQueryCommand {
private RssReader rssReader;
private String rssUrl;
private boolean strip;
public RssCommand(RssReader rssReader, String rssUrl, boolean strip) {
this.rssReader = rssReader;
this.rssUrl = rssUrl;
this.strip = strip;
}
@Override
public void run() {
status = Status.Running;
try {
RssFeed feed = rssReader.read(rssUrl, strip);
Iterator<RssEntry> it = feed.getEntries();
while (it.hasNext())
pushPipe(new Row(it.next().toMap()));
} catch (Throwable t) {
throw new RuntimeException(t.getMessage());
}
}
@Override
public String getName() {
return "rss";
}
}