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