syndication added for bolivia
[mir.git] / source / mirlocal / bolivia.indymedia.org / BoliviaProducerLocalizer.java
1 package mirlocal.bolivia.indymedia.org;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10
11 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
12
13   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
14     EntityEnumeratingProducerNode contentNode = null;
15     aProducerNode.clear();
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", model, "content",
20             new CompositeProducerNode( new ProducerNode[] {
21               new EntityEnumeratingProducerNode( "language", model, "language", "", "",
22                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
23                     new CompositeProducerNode( new ProducerNode[] {
24                       new GeneratingProducerNode(
25                           "/producer/bolivia.indymedia.org/article.template",
26                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
27                       ),
28                       new GeneratingProducerNode(
29                           "/producer/bolivia.indymedia.org/printablecontent.template",
30                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo"
31                       ),
32                       new PDFGeneratingProducerNode(
33                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.fo",
34                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.pdf"
35                       ),
36                       new ContentMarkingProducerNode( "content" )
37                     } )
38                 )
39               ),
40               new ContentMarkingProducerNode( "content")
41             } )
42           );
43     }
44     catch (Throwable t) {
45       logger.printError("BoliviaProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
46     }
47
48     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
49     contentNode.addVerb( "all", "is_published='1'", "" );
50
51     aProducerNode.addSubNode( contentNode );
52   }
53
54   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
55     aProducerNode.clear();
56     try {
57       aProducerNode.addSubNode(
58             new EntityListProducerNode("newswire", model, "content",
59                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
60               new EntityListProducerNode("languages", model, "language",
61                             "", "code", 10, 0,
62                 new EntityListProducerNode("startspecial", model, "content",
63                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
64                   new EntityListProducerNode("features", model, "content",
65                           "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
66                     new EntityListProducerNode("breaking", model, "breakingNews",
67                               "", "webdb_create desc", 5, 0,
68                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
69                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
70                           new GeneratingProducerNode(
71                               "/producer/bolivia.indymedia.org/startpage.template",
72                               "${config.storageRoot}/${language.code}/index.shtml"
73                           )
74                         )
75                       )
76                     )
77                   )
78                 )
79               )
80             )
81       );
82       aProducerNode.addSubNode(
83         new EntityListProducerNode( "articles", model, "content",
84               "is_published='1' and to_article_type = ${articletype.feature}",
85               "webdb_create desc, date desc", 10, 0,
86           new GeneratingProducerNode(
87               "/producer/bolivia.indymedia.org/featuressyndication.template",
88               "${config.storageRoot}/features.1-0.rdf",
89               "UTF-8"
90           )
91         )
92       );
93     }
94     catch (Throwable t) {
95       logger.printError("BoliviaProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
96     }
97   }
98
99   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
100     aProducerNode.clear();
101
102     try {
103       aProducerNode.addSubNode(
104           new EntityListProducerNode("languages", model, "language",
105                   "", "code", 10, 0,
106             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
107               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
108                 new GeneratingProducerNode(
109                     "/producer/bolivia.indymedia.org/navigation.template",
110                     "${config.storageRoot}/${language.code}/navigation.inc"
111                 )
112               )
113             )
114           )
115       );
116     }
117     catch (Throwable t) {
118       logger.printError("BoliviaProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
119     }
120   }
121
122   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
123     aProducerNode.clear();
124
125     EntityBatchingProducerNode topicArchiveNode = null;
126     ProducerNode topicStartpageNode = null;
127
128     try {
129 // topic pages:
130       topicArchiveNode =
131         new EntityBatchingProducerNode( "articles", "batch", model, "content",
132               "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,
133           new EntityListProducerNode("languages", model, "language",
134                   "", "code", 10, 0,
135             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
136               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
137                 new GeneratingProducerNode(
138                     "/producer/bolivia.indymedia.org/topic.template",
139                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
140                 )
141               )
142             )
143           ),
144           new EntityListProducerNode("languages", model, "language",
145                   "", "code", 10, 0,
146             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
147               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
148                 new GeneratingProducerNode(
149                     "/producer/bolivia.indymedia.org/topicnavigation.template",
150                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
151                 )
152               )
153             )
154           )
155         );
156       topicArchiveNode.addVerb("new", 3);
157       topicArchiveNode.addVerb("all", -1);
158
159       aProducerNode.addSubNode(
160           new EntityEnumeratingProducerNode( "topic", model, "topic", "filename != ''", "",
161             new EntityListProducerNode("topicspecial", model, "content",
162                   "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,
163               topicArchiveNode
164             )
165           )
166       );
167
168       aProducerNode.addSubNode(
169         new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
170           new EntityListProducerNode("topicspecial", model, "content",
171                 "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,
172             new EntityListProducerNode("newswire", model, "content",
173                     "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,
174               new EntityListProducerNode("features", model, "content",
175                       "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,
176                   new EntityListProducerNode("languages", model, "language",
177                                 "", "code", 10, 0,
178                       new EntityEnumeratingProducerNode( "language", model, "language", "", "",
179                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
180                           new GeneratingProducerNode(
181                               "/producer/bolivia.indymedia.org/topicstartpage.template",
182                               "${config.storageRoot}/${language.code}/${topic.filename}/index.shtml"
183                           )
184                         )
185                       )
186
187                   )
188               )
189             )
190           )
191         )
192       );
193
194     }
195     catch (Throwable t) {
196       logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
197     }
198   }
199
200   protected void setupFactories(Map aFactoriesMap ) {
201     EntityBatchingProducerNode archiveNode = null;
202
203     try {
204       super.setupFactories(aFactoriesMap);
205
206 // newswire archive:
207       archiveNode =
208         new EntityBatchingProducerNode( "articles", "batch", model, "content",
209               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
210           new EntityListProducerNode("languages", model, "language",
211                   "", "code", 10, 0,
212             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
213               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
214                 new GeneratingProducerNode(
215                     "/producer/bolivia.indymedia.org/newswire.template",
216                     "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
217                 )
218               )
219             )
220           ),
221           new EntityListProducerNode("languages", model, "language",
222                   "", "code", 10, 0,
223             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
224               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
225                 new GeneratingProducerNode(
226                     "/producer/bolivia.indymedia.org/newswirenavigation.template",
227                     "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
228                 )
229               )
230             )
231           )
232         );
233       archiveNode.addVerb("new", 3);
234       archiveNode.addVerb("all", -1);
235
236       aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( archiveNode ) );
237
238 // feature archive:
239       archiveNode =
240         new EntityBatchingProducerNode( "articles", "batch", model, "content",
241               "is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})", "date asc, webdb_create asc", 20, 10, 0,
242           new EntityListProducerNode("languages", model, "language",
243                   "", "code", 10, 0,
244             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
245               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
246                 new GeneratingProducerNode(
247                     "/producer/bolivia.indymedia.org/feature.template",
248                     "${config.storageRoot}/${language.code}/feature/feature${batch.current.identifier}.shtml"
249                 )
250               )
251             )
252           ),
253           new EntityListProducerNode("languages", model, "language",
254                   "", "code", 10, 0,
255             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
256               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
257                 new GeneratingProducerNode(
258                     "/producer/bolivia.indymedia.org/featurenavigation.template",
259                     "${config.storageRoot}/${language.code}/feature/featurenavigation.inc"
260                 )
261               )
262             )
263           )
264         );
265       archiveNode.addVerb("new", 3);
266       archiveNode.addVerb("all", -1);
267
268       aFactoriesMap.put( "featurearchive", new NodedProducerFactory( archiveNode ) );
269
270     }
271     catch (Throwable t) {
272       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
273     }
274   }
275 }