a643f52cdb3bf14c6ce35fcf7bd37a24a63014d3
[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 EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
72                       new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
73                         new CompositeProducerNode( new ProducerNode[] {
74                           new GeneratingProducerNode(
75                               "/producer/indymedia.nl/newswire.template",
76                               "${config.storageRoot}/${language.code}/newswire.inc"
77                           ),
78                           new AssignmentProducerNode( "staticinclude", "1",
79                             new EvaluatedAssignmentProducerNode( "topinclude", "${config.storageRoot}/${language.code}/top.inc",
80                             new EvaluatedAssignmentProducerNode( "bottominclude", "${config.storageRoot}/${language.code}/bottom.inc",
81                             new EvaluatedAssignmentProducerNode( "navinclude", "${config.storageRoot}/${language.code}/nav.inc",
82                             new EvaluatedAssignmentProducerNode( "newswireinclude", "${config.storageRoot}/${language.code}/newswire.inc",
83                             new EvaluatedAssignmentProducerNode( "featuresinclude", "${config.storageRoot}/${language.code}/features.inc",
84                               new GeneratingProducerNode(
85                                   "/producer/indymedia.nl/start.template",
86                                   "${config.storageRoot}/${language.code}/start.shtml"
87                               )
88                             )))))
89                           )
90                         } )
91                       )
92                     )
93                 )
94             );
95     }
96     catch (Throwable t) {
97     }
98
99     aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
100 /*
101     aStartPageFactory.addFactory(
102       new StartPageProducerFactory(
103           "producer/start.template",
104           "bundles.admin",
105           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
106           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
107           0));
108
109     aStartPageFactory.addFactory(
110       new StartPageProducerFactory(
111           "producer/newswire.template",
112           "bundles.admin",
113           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
114           0,
115           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
116 */
117   }
118
119   protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
120     if(MirGlobal.getConfigBooleanProperty("Rsync")){
121       aSynchronizationFactory.addFactory(
122         new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
123     }
124     else {
125       NullProducerFactory nullFactory = new NullProducerFactory();
126       nullFactory.addVerb("run");
127       aSynchronizationFactory.addFactory(nullFactory);
128     }
129   }
130
131   protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
132     ProducerNode staticNode = null;
133
134     try {
135       staticNode =
136           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
137                   "", "code", 10,
138               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
139                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
140                   new CompositeProducerNode( new ProducerNode[] {
141                     new GeneratingProducerNode(
142                         "/producer/indymedia.nl/nav.template",
143                         "${config.storageRoot}/${language.code}/nav.inc"
144                     ),
145                     new GeneratingProducerNode(
146                         "/producer/indymedia.nl/top.template",
147                         "${config.storageRoot}/${language.code}/top.inc"
148                     ),
149                     new GeneratingProducerNode(
150                         "/producer/indymedia.nl/bottom.template",
151                         "${config.storageRoot}/${language.code}/bottom.inc"
152                     ),
153                     new GeneratingProducerNode(
154                         "/producer/indymedia.nl/style.template",
155                         "${config.storageRoot}/${language.code}/style.css"
156                     ),
157                     new GeneratingProducerNode(
158                         "/producer/indymedia.nl/top.template",
159                         "${config.storageRoot}/${language.code}/top.inc"
160                     ),
161                     new GeneratingProducerNode(
162                         "/producer/indymedia.nl/articlepre.template",
163                         "${config.storageRoot}/${language.code}/articlepre.shtml"
164                     ),
165                     new GeneratingProducerNode(
166                         "/producer/indymedia.nl/articlepost.template",
167                         "${config.storageRoot}/${language.code}/articlepost.shtml"
168                     ),
169                     new AssignmentProducerNode( "staticinclude", "0",
170                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
171                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
172                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
173                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
174                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/features.inc",
175                         new GeneratingProducerNode(
176                             "/producer/indymedia.nl/start.template",
177                             "${config.storageRoot}/${language.code}/start.shtml"
178                         )
179                       )))))
180                     ),
181                     new AssignmentProducerNode( "staticinclude", "0",
182                       new EvaluatedAssignmentProducerNode( "topinclude", "/${language.code}/top.inc",
183                       new EvaluatedAssignmentProducerNode( "bottominclude", "/${language.code}/bottom.inc",
184                       new EvaluatedAssignmentProducerNode( "navinclude", "/${language.code}/nav.inc",
185                       new EvaluatedAssignmentProducerNode( "newswireinclude", "/${language.code}/newswire.inc",
186                       new EvaluatedAssignmentProducerNode( "featuresinclude", "/${language.code}/try/features.inc",
187                         new GeneratingProducerNode(
188                             "/producer/indymedia.nl/start.template",
189                             "${config.storageRoot}/try/${language.code}/start.shtml"
190                         )
191                       )))))
192                     )
193                   } )
194                 )
195               )
196           );
197     }
198     catch (Throwable t) {
199     }
200
201     aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
202   }
203
204   protected void setupFactories(Map aFactoriesMap ) {
205     super.setupFactories(aFactoriesMap);
206
207     ProducerNode node = null;
208
209     try {
210       node =
211           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
212                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
213             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
214                       "", "webdb_create desc", 5,
215               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
216                         "", "code", 10,
217                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
218                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
219                       new GeneratingProducerNode(
220                           "/producer/indymedia.nl/features.template",
221                           "${config.storageRoot}/${language.code}/features.inc"
222                       )
223                   )
224                 )
225               )
226             )
227           );
228     }
229     catch (Throwable t) {
230     }
231
232     aFactoriesMap.put("features", new NodedProducerFactory( node ) );
233
234     try {
235       node =
236           new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
237                   "is_published='1' and to_article_type = 2", "date desc, webdb_create desc", 10,
238             new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
239                       "", "webdb_create desc", 5,
240               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
241                         "", "code", 10,
242                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
243                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
244                       new GeneratingProducerNode(
245                           "/producer/indymedia.nl/features.template",
246                           "${config.storageRoot}/${language.code}/try/features.inc"
247                       )
248                   )
249                 )
250               )
251             )
252           );
253     }
254     catch (Throwable t) {
255     }
256     aFactoriesMap.put("featurestest", new NodedProducerFactory( node ) );
257
258 /*
259     aStartPageFactory.addFactory(
260       new StartPageProducerFactory(
261           "producer/start.template",
262           "bundles.admin",
263           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/start.shtml",
264           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Items"),
265           0));
266
267     aStartPageFactory.addFactory(
268       new StartPageProducerFactory(
269           "producer/newswire.template",
270           "bundles.admin",
271           MirGlobal.getConfigProperty("Producer.StorageRoot") + "/nl/newswire.inc",
272           0,
273           MirGlobal.getConfigIntegerProperty("Producer.StartPage.Newswire")));
274 */
275   }
276 }