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