1.1 restoration
[mir.git] / source / mir / rss / RSS091Reader.java
index 18bc0af..a6556b7 100755 (executable)
@@ -36,8 +36,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
-import mir.util.xml.*;
 
+import mir.util.HTTPClientHelper;
+import mir.util.xml.*;
 import mir.util.xml.XMLParserEngine;
 
 /**
@@ -95,15 +96,49 @@ public class RSS091Reader {
     }
   }
 
-  public RSSData parseUrl(String anUrl) throws RSSExc, RSSFailure {
+  public RSSData parseInputStream(InputStream aStream, String anEncoding) throws RSSExc, RSSFailure {
     try {
-      InputStream inputStream = (InputStream) new URL(anUrl).getContent(new Class[] {InputStream.class});
+      RSSData result = new RSSData();
+      XMLParserEngine.getInstance().parse("html", aStream, anEncoding, new RootSectionHandler(result));
 
+      return result;
+    }
+    catch (Throwable t) {
+      throw new RSSFailure(t);
+    }
+  }
+
+  public RSSData parseUrl(String anUrl) throws RSSExc, RSSFailure {
+    try {
+      HTTPClientHelper httpClientHelper = new HTTPClientHelper();      
+      InputStream inputStream = httpClientHelper.getUrl(anUrl);
       if (inputStream==null)
         throw new RSSExc("RSSChannel.parseUrl: Can't get url content");
 
-      return parseInputStream(inputStream);
+      RSSData theRSSData =  parseInputStream(inputStream);
+      httpClientHelper.releaseHTTPConnection();
+      return theRSSData;
+
+    }
+    catch (Throwable t) {
+      throw new RSSFailure(t);
+    }
+  }
+
+  public RSSData parseUrl(String anUrl, String anEncoding) throws RSSExc, RSSFailure {
+    try {
+      HTTPClientHelper httpClientHelper = new HTTPClientHelper();      
+      InputStream inputStream = httpClientHelper.getUrl(anUrl);
+
+      if (inputStream==null)
+        throw new RSSExc("RSSChannel.parseUrl: Can't get url content");
+      
+      RSSData theRSSData = parseInputStream(inputStream, anEncoding);
+      httpClientHelper.releaseHTTPConnection();
+      return theRSSData;
     }
+
     catch (Throwable t) {
       throw new RSSFailure(t);
     }
@@ -223,7 +258,6 @@ public class RSS091Reader {
 
     public mir.util.xml.SectionHandler startElement(mir.util.xml.XMLName aTag, Map anAttributes) throws XMLParserExc {
       String tag = aTag.getLocalName();
-      System.out.println(tag);
 
       if (mappedItemProperties.containsKey(tag)) {
         currentTag=(String) mappedItemProperties.get(tag);