*** empty log message ***
[mir.git] / source / mirlocal / indymedia.nl / IndyNLProducerLocalizer.java
1 package mirlocal.indymedia.nl;
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 import mircoders.entity.adapter.*;
11
12 public class IndyNLProducerLocalizer extends MirBasicProducerLocalizer {
13
14   protected void setupContentFactory(CompositeProducerFactory aContentFactory) {
15     EntityEnumeratingProducerNode contentNode = null;
16
17     try {
18       contentNode =
19           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
20             new CompositeProducerNode( new ProducerNode[] {
21               new GeneratingProducerNode(
22                   "/producer/indymedia.nl/content.template",
23                   "${config.storageRoot}/content/${content.date.year}/${content.date.month}/${content.id}.inc"
24               ),
25               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
26                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
27                     new GeneratingProducerNode(
28                         "/producer/indymedia.nl/article.template",
29                         "${config.storageRoot}/${language.code}/${content.date.year}/${content.date.month}/${content.id}.shtml"
30                     )
31                 )
32               )
33             } )
34           );
35     }
36     catch (Throwable t) {
37     }
38
39     contentNode.addVerb( "all", "is_published='1'", "" );
40     contentNode.addVerb( "all", "is_published='1' and is_produced='f'", "" );
41
42     aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
43
44
45 /*
46     aContentFactory.addFactory(
47       new ContentProducerFactory(
48       "producer/content.template",
49       "bundles.admin",
50       MirGlobal.getConfigProperty("Producer.StorageRoot") + "/content/${contentyear}/${contentmonth}/${contentid}.inc",
51       Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
52
53     aContentFactory.addFactory(
54       new ContentProducerFactory(
55       "producer/article.template",
56       "bundles.admin",
57       MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/${contentyear}/${contentmonth}/${contentid}.shtml",
58       Integer.parseInt(MirGlobal.getConfigProperty("Producer.Content.Batchsize"))));
59  */
60   }
61
62   protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
63     ProducerNode startPageNode = null;
64
65     try {
66       startPageNode =
67             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
68                     "is_published='1' and to_article_type = 1", "date desc, webdb_create desc", 40,
69               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
70                             "", "code", 10,
71                     new CompositeProducerNode( new ProducerNode[] {
72                         new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
73                           new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
74                               new GeneratingProducerNode(
75                                   "/producer/indymedia.nl/newswire.template",
76                                   "${config.storageRoot}/${language.code}/newswire.inc"
77                               )
78                           )
79                         ),
80                         new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
81                                 "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
82                           new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
83                                     "", "webdb_create desc", 5,
84                             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "code='nl'", "",
85                                 new AssignmentProducerNode( "staticinclude", "1",
86                                   new EvaluatedAssignmentProducerNode( "topinclude", "/producer/indymedia.nl/top.template",
87                                   new EvaluatedAssignmentProducerNode( "bottominclude", "/producer/indymedia.nl/bottom.template",
88                                   new EvaluatedAssignmentProducerNode( "navinclude", "/producer/indymedia.nl/nav.template",
89                                   new EvaluatedAssignmentProducerNode( "newswireinclude", "/producer/indymedia.nl/newswire.template",
90                                   new EvaluatedAssignmentProducerNode( "featuresinclude", "/producer/indymedia.nl/features.template",
91                                     new GeneratingProducerNode(
92                                         "/producer/indymedia.nl/start.template",
93                                         "${config.storageRoot}/index.shtml"
94                                     )
95                                   )))))
96                                 )
97                             )
98                           )
99                         )
100                     })
101               )
102             );
103     }
104     catch (Throwable t) {
105     }
106
107     aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
108 /*
109     aStartPageFactory.addFactory(
110       new StartPageProducerFactory(
111           "producer/start.template",
112           "bundles.admin",
113           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
114           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
115           0));
116
117     aStartPageFactory.addFactory(
118       new StartPageProducerFactory(
119           "producer/newswire.template",
120           "bundles.admin",
121           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
122           0,
123           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
124 */
125   }
126
127   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
128     if(MirGlobal.getConfigBooleanProperty("Rsync")){
129       aSynchronizationFactory.addFactory(
130         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
131     }
132     else {
133       NullProducerFactory nullFactory = new NullProducerFactory();
134       nullFactory.addVerb("run");
135       aSynchronizationFactory.addFactory(nullFactory);
136     }
137   }
138
139   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
140     ProducerNode staticNode = null;
141
142     try {
143       staticNode =
144           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
145                   "", "code", 10,
146               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
147                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
148                   new CompositeProducerNode( new ProducerNode[] {
149                     new GeneratingProducerNode(
150                         "/producer/indymedia.nl/nav.template",
151                         "${config.storageRoot}/${language.code}/nav.inc"
152                     ),
153                     new GeneratingProducerNode(
154                         "/producer/indymedia.nl/top.template",
155                         "${config.storageRoot}/${language.code}/top.inc"
156                     ),
157                     new GeneratingProducerNode(
158                         "/producer/indymedia.nl/bottom.template",
159                         "${config.storageRoot}/${language.code}/bottom.inc"
160                     ),
161                     new GeneratingProducerNode(
162                         "/producer/indymedia.nl/style.template",
163                         "${config.storageRoot}/${language.code}/style.css"
164                     ),
165                     new GeneratingProducerNode(
166                         "/producer/indymedia.nl/top.template",
167                         "${config.storageRoot}/${language.code}/top.inc"
168                     ),
169                     new GeneratingProducerNode(
170                         "/producer/indymedia.nl/articlepre.template",
171                         "${config.storageRoot}/${language.code}/articlepre.shtml"
172                     ),
173                     new GeneratingProducerNode(
174                         "/producer/indymedia.nl/articlepost.template",
175                         "${config.storageRoot}/${language.code}/articlepost.shtml"
176                     ),
177                     new AssignmentProducerNode( "staticinclude", "0",
178                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
179                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
180                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
181                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
182                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
183                         new GeneratingProducerNode(
184                             "/producer/indymedia.nl/start.template",
185                             "${config.storageRoot}/${language.code}/start.shtml"
186                         )
187                       )))))
188                     ),
189                     new AssignmentProducerNode( "staticinclude", "0",
190                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
191                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
192                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
193                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
194                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/try/${language.code}/features.inc",
195                         new GeneratingProducerNode(
196                             "/producer/indymedia.nl/start.template",
197                             "${config.storageRoot}/try/${language.code}/start.shtml"
198                         )
199                       )))))
200                     )
201                   } )
202                 )
203               )
204           );
205     }
206     catch (Throwable t) {
207     }
208
209     aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
210   }
211
212   protected void setupFactories(Map aFactoriesMap ) {
213     super.setupFactories(aFactoriesMap);
214
215     ProducerNode node = null;
216
217     try {
218       node =
219           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
220                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
221             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
222                       "", "webdb_create desc", 5,
223               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
224                         "", "code", 10,
225                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
226                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
227                       new GeneratingProducerNode(
228                           "/producer/indymedia.nl/features.template",
229                           "${config.storageRoot}/${language.code}/features.inc"
230                       )
231                   )
232                 )
233               )
234             )
235           );
236     }
237     catch (Throwable t) {
238     }
239
240     aFactoriesMap.put("features", new NodedProducerFactory( node ) );
241
242     try {
243       node =
244           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
245                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
246             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
247                       "", "webdb_create desc", 5,
248               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
249                         "", "code", 10,
250                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
251                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
252                       new GeneratingProducerNode(
253                           "/producer/indymedia.nl/features.template",
254                           "${config.storageRoot}/try/${language.code}/features.inc"
255                       )
256                   )
257                 )
258               )
259             )
260           );
261     }
262     catch (Throwable t) {
263     }
264     aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
265
266 /*
267     aStartPageFactory.addFactory(
268       new StartPageProducerFactory(
269           "producer/start.template",
270           "bundles.admin",
271           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
272           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
273           0));
274
275     aStartPageFactory.addFactory(
276       new StartPageProducerFactory(
277           "producer/newswire.template",
278           "bundles.admin",
279           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
280           0,
281           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
282 */
283   }
284 }