X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fproducer%2FRSSProducerNode.java;h=9d62022adf785532213678958d1314fb302212bb;hb=63e0ee1fb8038eb6d8f0190cf38c3b3ab2727216;hp=ac41f2888dda89412325123f33c7f780d0e3b096;hpb=36c394492096600d855a59bba3e19142b37272e5;p=mir.git diff --git a/source/mir/producer/RSSProducerNode.java b/source/mir/producer/RSSProducerNode.java index ac41f288..9d62022a 100755 --- a/source/mir/producer/RSSProducerNode.java +++ b/source/mir/producer/RSSProducerNode.java @@ -32,28 +32,60 @@ package mir.producer; import java.util.Map; import mir.log.LoggerWrapper; +import mir.rss.RSS091Reader; import mir.rss.RSSData; -import mir.rss.*; +import mir.rss.RSSReader; import mir.util.ExceptionFunctions; import mir.util.ParameterExpander; public class RSSProducerNode implements ProducerNode { private String key; private String url; + private String version; + private String encoding; - public RSSProducerNode(String aKey, String anURL) { + public RSSProducerNode(String aKey, String aURL, String aVersion) { + this (aKey, aURL, aVersion, null); + } + + public RSSProducerNode(String aKey, String aURL, String aVersion, String anEncoding) { key = aKey; - url = anURL; + url = aURL; + version = aVersion; + encoding = anEncoding; } public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { try { + RSSData rssData = null; String expandedKey = ParameterExpander.expandExpression( aValueMap, key ); String expandedUrl = ParameterExpander.expandExpression( aValueMap, url ); + String expandedVersion = ParameterExpander.expandExpression( aValueMap, version ); + String expandedEncoding = null; + if (encoding!=null) { + expandedEncoding = ParameterExpander.expandExpression( aValueMap, encoding ); + } ParameterExpander.setValueForKey(aValueMap, expandedKey, null); - RSSReader reader = new RSSReader(); - RSSData rssData = reader.parseUrl(expandedUrl); + + if (expandedVersion.equals("1.0")) { + RSSReader reader = new RSSReader(); + if (expandedEncoding!=null) { + rssData = reader.parseUrl(expandedUrl, expandedEncoding); + } + else { + rssData = reader.parseUrl(expandedUrl); + } + } + else if (expandedVersion.equals("0.91")) { + RSS091Reader reader = new RSS091Reader(); + if (expandedEncoding!=null) { + rssData = reader.parseUrl(expandedUrl, expandedEncoding); + } + else { + rssData = reader.parseUrl(expandedUrl); + } + } ParameterExpander.setValueForKey(aValueMap, expandedKey, rssData); } catch (Throwable t) {