syndication added for bolivia
[mir.git] / source / mirlocal / bolivia.indymedia.org / BoliviaProducerLocalizer.java
index 2d03d2e..78d4c40 100755 (executable)
@@ -7,7 +7,6 @@ import mircoders.localizer.*;
 import mircoders.localizer.basic.*;
 import mircoders.producer.*;
 import mircoders.storage.*;
-import mircoders.entity.adapter.*;
 
 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
 
@@ -17,19 +16,25 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
 
     try {
       contentNode =
-          new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+          new EntityEnumeratingProducerNode( "content", model, "content",
             new CompositeProducerNode( new ProducerNode[] {
-              new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c' and exists(select * from content_x_topic where content_id=${content.id} and topic_id=id)", "",
-                new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
-                  new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
-                      new CompositeProducerNode( new ProducerNode[] {
-                        new GeneratingProducerNode(
-                            "/producer/bolivia.indymedia.org/${city.filename}/article.template",
-                            "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
-                        ),
-                        new ContentMarkingProducerNode( "content" )
-                      } )
-                  )
+              new EntityEnumeratingProducerNode( "language", model, "language", "", "",
+                new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                    new CompositeProducerNode( new ProducerNode[] {
+                      new GeneratingProducerNode(
+                          "/producer/bolivia.indymedia.org/article.template",
+                          "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
+                      ),
+                     new GeneratingProducerNode(
+                          "/producer/bolivia.indymedia.org/printablecontent.template",
+                          "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo"
+                      ),
+                     new PDFGeneratingProducerNode(
+                         "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo",
+                         "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.pdf"
+                      ),
+                      new ContentMarkingProducerNode( "content" )
+                    } )
                 )
               ),
               new ContentMarkingProducerNode( "content")
@@ -50,17 +55,17 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
     aProducerNode.clear();
     try {
       aProducerNode.addSubNode(
-            new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+            new EntityListProducerNode("newswire", model, "content",
                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
-              new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+              new EntityListProducerNode("languages", model, "language",
                             "", "code", 10, 0,
-                new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+                new EntityListProducerNode("startspecial", model, "content",
                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
-                  new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-                          "is_published='1' and to_article_type = ${articletype.feature} and id in (select max(content_id) from content_x_topic, topic t where topic_id=t.id and t.archiv_url='c' group by t.id)", "date desc, webdb_create desc", 10, 0,
-                    new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
+                  new EntityListProducerNode("features", model, "content",
+                          "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
+                    new EntityListProducerNode("breaking", model, "breakingNews",
                               "", "webdb_create desc", 5, 0,
-                      new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+                      new EntityEnumeratingProducerNode( "language", model, "language", "", "",
                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                           new GeneratingProducerNode(
                               "/producer/bolivia.indymedia.org/startpage.template",
@@ -74,34 +79,16 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
               )
             )
       );
-
       aProducerNode.addSubNode(
-          new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "",
-            new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-                    "is_published='1' and to_article_type = ${articletype.newswire} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 40, 0,
-              new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
-                            "", "code", 10, 0,
-                new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-                          "is_published='1' and to_article_type = ${articletype.startspecial} and "+
-                          "exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 1, 0,
-                  new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-                          "is_published='1' and to_article_type = ${articletype.feature} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 10, 0,
-                    new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
-                              "", "webdb_create desc", 5, 0,
-                      new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
-                        new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
-                          new GeneratingProducerNode(
-                              "/producer/bolivia.indymedia.org/${city.filename}/startpage.template",
-                              "${config.storageRoot}/${city.filename}/${language.code}/index.shtml"
-                          )
-                        )
-                      )
-                    )
-                  )
-                )
-              )
-            )
+        new EntityListProducerNode( "articles", model, "content",
+              "is_published='1' and to_article_type = ${articletype.feature}",
+              "webdb_create desc, date desc", 10, 0,
+          new GeneratingProducerNode(
+              "/producer/bolivia.indymedia.org/featuressyndication.template",
+              "${config.storageRoot}/features.1-0.rdf",
+              "UTF-8"
           )
+        )
       );
     }
     catch (Throwable t) {
@@ -114,9 +101,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
 
     try {
       aProducerNode.addSubNode(
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+          new EntityListProducerNode("languages", model, "language",
                   "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                 new GeneratingProducerNode(
                     "/producer/bolivia.indymedia.org/navigation.template",
@@ -126,21 +113,6 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
             )
           )
       );
-      aProducerNode.addSubNode(
-        new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "",
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
-                  "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
-              new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
-                new GeneratingProducerNode(
-                    "/producer/bolivia.indymedia.org/${city.filename}/navigation.template",
-                    "${config.storageRoot}/${city.filename}/${language.code}/navigation.inc"
-                )
-              )
-            )
-          )
-        )
-      );
     }
     catch (Throwable t) {
       logger.printError("BoliviaProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
@@ -150,16 +122,17 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
     aProducerNode.clear();
 
-    EntityBatchingProducerNode topicPageNode = null;
+    EntityBatchingProducerNode topicArchiveNode = null;
+    ProducerNode topicStartpageNode = null;
 
     try {
 // topic pages:
-      topicPageNode =
-        new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-              "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0,
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+      topicArchiveNode =
+        new EntityBatchingProducerNode( "articles", "batch", model, "content",
+              "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 10, 0,
+          new EntityListProducerNode("languages", model, "language",
                   "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                 new GeneratingProducerNode(
                     "/producer/bolivia.indymedia.org/topic.template",
@@ -168,9 +141,9 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
               )
             )
           ),
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+          new EntityListProducerNode("languages", model, "language",
                   "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                 new GeneratingProducerNode(
                     "/producer/bolivia.indymedia.org/topicnavigation.template",
@@ -180,107 +153,123 @@ public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
             )
           )
         );
-      topicPageNode.addVerb("new", 3);
-      topicPageNode.addVerb("all", -1);
+      topicArchiveNode.addVerb("new", 3);
+      topicArchiveNode.addVerb("all", -1);
 
       aProducerNode.addSubNode(
-          new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "((main_url is null) or main_url<>'c')", "",
-            new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
+          new EntityEnumeratingProducerNode( "topic", model, "topic", "filename != ''", "",
+            new EntityListProducerNode("topicspecial", model, "content",
                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
-              topicPageNode
+              topicArchiveNode
+            )
+          )
+      );
+
+      aProducerNode.addSubNode(
+        new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
+          new EntityListProducerNode("topicspecial", model, "content",
+                "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
+            new EntityListProducerNode("newswire", model, "content",
+                    "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 40, 0,
+              new EntityListProducerNode("features", model, "content",
+                      "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date desc, webdb_create desc", 10, 0,
+                  new EntityListProducerNode("languages", model, "language",
+                                "", "code", 10, 0,
+                      new EntityEnumeratingProducerNode( "language", model, "language", "", "",
+                        new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                          new GeneratingProducerNode(
+                              "/producer/bolivia.indymedia.org/topicstartpage.template",
+                              "${config.storageRoot}/${language.code}/${topic.filename}/index.shtml"
+                          )
+                        )
+                      )
+
+                  )
+              )
             )
           )
+        )
       );
 
-// topic pages per city:
-      topicPageNode =
-        new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-              "is_published='1' and to_article_type = ${articletype.newswire} and " +
-              "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and " +
-              "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date asc, webdb_create asc", 6, 5, 0,
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+    }
+    catch (Throwable t) {
+      logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
+    }
+  }
+
+  protected void setupFactories(Map aFactoriesMap ) {
+    EntityBatchingProducerNode archiveNode = null;
+
+    try {
+      super.setupFactories(aFactoriesMap);
+
+// newswire archive:
+      archiveNode =
+        new EntityBatchingProducerNode( "articles", "batch", model, "content",
+              "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
+          new EntityListProducerNode("languages", model, "language",
                   "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                 new GeneratingProducerNode(
-                    "/producer/bolivia.indymedia.org/${city.filename}/topic.template",
-                    "${config.storageRoot}/${city.filename}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
+                    "/producer/bolivia.indymedia.org/newswire.template",
+                    "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
                 )
               )
             )
           ),
-          new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
+          new EntityListProducerNode("languages", model, "language",
                   "", "code", 10, 0,
-            new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
                 new GeneratingProducerNode(
-                    "/producer/bolivia.indymedia.org/${city.filename}/topicnavigation.template",
-                    "${config.storageRoot}/${city.filename}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
+                    "/producer/bolivia.indymedia.org/newswirenavigation.template",
+                    "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
                 )
               )
             )
           )
         );
-      topicPageNode.addVerb("new", 3);
-      topicPageNode.addVerb("all", -1);
-
-      aProducerNode.addSubNode(
-          new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "",
-            new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "((main_url is null) or main_url<>'c')", "",
-              new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
-                    "is_published='1' and to_article_type = ${articletype.topicspecial} and "+
-                    "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and "+
-                    "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date, webdb_create", 1, 0,
-                topicPageNode
-              )
-            )
-          )
-      );
-    }
-    catch (Throwable t) {
-      logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
-    }
-  }
+      archiveNode.addVerb("new", 3);
+      archiveNode.addVerb("all", -1);
 
-  protected void setupFactories(Map aFactoriesMap ) {
-    super.setupFactories(aFactoriesMap);
-    try {
+      aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
 
-      ProducerNode node = null;
-      EntityBatchingProducerNode batchingNode =
-          new EntityBatchingProducerNode( "comments", "batch", DatabaseComment.getInstance(), CommentAdapterDefinition.getInstance(),
-                "", "id desc", 25, 15, 0,
-            new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
-                    "", "code", 10, 0,
-              new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
-                new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
-                  new GeneratingProducerNode(
-                      "/producer/indymedia.nl/commentsindex.template",
-                      "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
-                  )
+// feature archive:
+      archiveNode =
+        new EntityBatchingProducerNode( "articles", "batch", model, "content",
+              "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
+          new EntityListProducerNode("languages", model, "language",
+                  "", "code", 10, 0,
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
+              new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                new GeneratingProducerNode(
+                    "/producer/bolivia.indymedia.org/feature.template",
+                    "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
                 )
               )
-            ),
-            new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
-                    "", "code", 10, 0,
-              new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
-                new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
-                  new GeneratingProducerNode(
-                      "/producer/indymedia.nl/commentsindexnavigation.template",
-                      "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
-                  )
+            )
+          ),
+          new EntityListProducerNode("languages", model, "language",
+                  "", "code", 10, 0,
+            new EntityEnumeratingProducerNode( "language", model, "language", "", "",
+              new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+                new GeneratingProducerNode(
+                    "/producer/bolivia.indymedia.org/featurenavigation.template",
+                    "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
                 )
               )
             )
-          );
-      batchingNode.addVerb("new", 3);
-      batchingNode.addVerb("all", -1);
+          )
+        );
+      archiveNode.addVerb("new", 3);
+      archiveNode.addVerb("all", -1);
+
+      aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
 
-      aFactoriesMap.put("commentsindex", new NodedProducerFactory( batchingNode ));
     }
     catch (Throwable t) {
       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
     }
-
   }
 }