4d196038e3640a694ace1f3fd034757a6883ceaa
[mir.git] / source / mirlocal / euskalherria.indymedia.org / EHProducerLocalizer.java
1 package mirlocal.euskalherria.indymedia.org;
2
3 import java.io.*;
4 import java.util.*;
5 import mir.producer.*;
6 import mircoders.global.*;
7 import mircoders.localizer.*;
8 import mircoders.localizer.basic.*;
9 import mircoders.producer.*;
10 import mircoders.storage.*;
11 import mircoders.entity.adapter.*;
12
13 public class EHProducerLocalizer extends MirBasicProducerLocalizer {
14
15   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
16     EntityEnumeratingProducerNode contentNode = null;
17     aProducerNode.clear();
18
19     try {
20       contentNode =
21           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
22             new CompositeProducerNode( new ProducerNode[] {
23               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
24                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
25                     new CompositeProducerNode( new ProducerNode[] {
26                       new GeneratingProducerNode(
27                           "/producer/euskalherria.indymedia.org/article.template",
28                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
29                       ),
30                       new FileDateSettingProducerNode(
31                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
32                           "content.date.date"
33                       )
34                     } )
35                 )
36               ),
37               new ContentMarkingProducerNode( "content")
38             } )
39           );
40     }
41     catch (Throwable t) {
42     }
43
44     contentNode.addVerb( "all", "is_published='1'", "" );
45     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
46
47     aProducerNode.addSubNode( contentNode );
48
49   }
50
51   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
52     aProducerNode.clear();
53     try {
54       aProducerNode.addSubNode(
55             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
56                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
57               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
58                             "", "code", 10, 0,
59                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
60                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
61                     new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
62                               "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
63                       new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
64                               "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
65                         new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
66                                   "", "webdb_create desc", 5, 0,
67                           new GeneratingProducerNode(
68                               "/producer/euskalherria.indymedia.org/startpage.template",
69                               "${config.storageRoot}/${language.code}/index.shtml"
70                           )
71                         )
72                       )
73                     )
74                   )
75                 )
76               )
77             )
78       );
79     }
80     catch (Throwable t) {
81       try {
82         PrintWriter log = new PrintWriter(new FileWriter(new File("/tmp/errorbla.log")));
83         log.println(t.getMessage());
84         t.printStackTrace(log);
85       }
86       catch (Throwable q) {
87       }
88     }
89   }
90
91   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
92     aProducerNode.clear();
93
94     try {
95       aProducerNode.addSubNode(
96           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
97                   "", "code", 10, 0,
98             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
99               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
100                 new GeneratingProducerNode(
101                     "/producer/euskalherria.indymedia.org/navigation.template",
102                     "${config.storageRoot}/${language.code}/navigation.inc"
103                 )
104               )
105             )
106           )
107       );
108     }
109     catch (Throwable t) {
110     }
111   }
112
113   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
114     aProducerNode.clear();
115
116     EntityBatchingProducerNode topicPageNode = null;
117
118     try {
119       topicPageNode =
120         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
121               "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 6, 5, 0,
122           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
123                   "", "code", 10, 0,
124             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
125               new ResourceBundleProducerNode("lang", "producer_${language.code}",
126                 new GeneratingProducerNode(
127                     "/producer/euskalherria.indymedia.org/topic.template",
128                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
129                 )
130               )
131             )
132           ),
133           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
134                   "", "code", 10, 0,
135             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
136               new ResourceBundleProducerNode("lang", "producer_${language.code}",
137                 new GeneratingProducerNode(
138                     "/producer/euskalherria.indymedia.org/topicnavigation.template",
139                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
140                 )
141               )
142             )
143           )
144         );
145       topicPageNode.addVerb("all", -1);
146       topicPageNode.addVerb("new", 3);
147
148       aProducerNode.addSubNode(
149           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
150             new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
151                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
152               new EntityListProducerNode("topicfeatures", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
153                     "is_published='1' and to_article_type = ${articletype.feature} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 10, 0,
154                 topicPageNode
155               )
156             )
157           )
158       );
159     }
160     catch (Throwable t) {
161     }
162
163   }
164
165   protected void setupFactories(Map aFactoriesMap ) {
166     super.setupFactories(aFactoriesMap);
167   }
168 }