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