rss 0.9 fix
[mir.git] / source / mir / rss / RSSReader.java
index 52547a7..31be421 100755 (executable)
@@ -52,6 +52,7 @@ import mir.util.*;
 public class RSSReader {
   public static final String RDF_NAMESPACE_URI = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
   public static final String RSS_1_0_NAMESPACE_URI = "http://purl.org/rss/1.0/";
+  public static final String RSS_0_9_NAMESPACE_URI = "http://my.netscape.com/rdf/simple/0.9/";
   public static final String DUBLINCORE_NAMESPACE_URI = "http://purl.org/dc/elements/1.1/";
   public static final String EVENT_NAMESPACE_URI = "http://purl.org/rss/1.0/modules/event/";
   public static final String TAXONOMY_NAMESPACE_URI = "http://web.resource.org/rss/1.0/modules/taxonomy/";
@@ -80,24 +81,25 @@ public class RSSReader {
 
     registerModule(new RSSBasicModule(RDF_NAMESPACE_URI, "RDF module"), "rdf");
     registerModule(new RSSBasicModule(RSS_1_0_NAMESPACE_URI, "RSS 1.0 module"), "rss");
+    registerModule(new RSSBasicModule(RSS_0_9_NAMESPACE_URI, "RSS 0.9 module"), "rss");
 
     RSSBasicModule dcModule = new RSSBasicModule(DUBLINCORE_NAMESPACE_URI, "RSS Dublin Core 1.1");
-    dcModule.addProperty("date", dcModule.W3CDTF_PROPERTY_TYPE);
+    dcModule.addProperty("date", RSSModule.W3CDTF_PROPERTY_TYPE);
     registerModule(dcModule, "dc");
 
     RSSBasicModule dcTermsModule = new RSSBasicModule(DUBLINCORE_TERMS_NAMESPACE_URI, "RSS Qualified Dublin core");
-    dcTermsModule.addProperty("created", dcModule.W3CDTF_PROPERTY_TYPE);
-    dcTermsModule.addProperty("issued", dcModule.W3CDTF_PROPERTY_TYPE);
-    dcTermsModule.addProperty("modified", dcModule.W3CDTF_PROPERTY_TYPE);
-    dcTermsModule.addProperty("dateAccepted", dcModule.W3CDTF_PROPERTY_TYPE);
-    dcTermsModule.addProperty("dateCopyrighted", dcModule.W3CDTF_PROPERTY_TYPE);
-    dcTermsModule.addProperty("dateSubmitted", dcModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("created", RSSModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("issued", RSSModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("modified", RSSModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("dateAccepted", RSSModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("dateCopyrighted", RSSModule.W3CDTF_PROPERTY_TYPE);
+    dcTermsModule.addProperty("dateSubmitted", RSSModule.W3CDTF_PROPERTY_TYPE);
     registerModule(dcTermsModule, "dcterms");
 
     RSSBasicModule v2vTermsModule = new RSSBasicModule(V2V_NAMESPACE_URI, "indymedia v2v RSS module");
-    dcTermsModule.addMultiValuedProperty("topic", dcModule.PCDATA_PROPERTY_TYPE);
-    dcTermsModule.addMultiValuedProperty("genre", dcModule.PCDATA_PROPERTY_TYPE);
-    dcTermsModule.addMultiValuedProperty("link", dcModule.PCDATA_PROPERTY_TYPE);
+    v2vTermsModule.addMultiValuedProperty("topic", RSSModule.PCDATA_PROPERTY_TYPE);
+    v2vTermsModule.addMultiValuedProperty("genre", RSSModule.PCDATA_PROPERTY_TYPE);
+    v2vTermsModule.addMultiValuedProperty("link", RSSModule.PCDATA_PROPERTY_TYPE);
     registerModule(v2vTermsModule, "v2v");
 
     registerModule(new RSSBasicModule(EVENT_NAMESPACE_URI, "Event RSS module"), "ev");
@@ -289,6 +291,10 @@ public class RSSReader {
     };
 
     public RDFResource getResource() {
+      if (resource.getIdentifier()==null || resource.getIdentifier().length()==0) {
+        resource.setIdentifier(resource.get("rss:link").toString());
+      }
+
       return resource;
     }
   }