1 package mircoders.producer;
6 import freemarker.template.*;
12 import mircoders.module.*;
13 import mircoders.storage.*;
14 import mircoders.entity.*;
17 public class ProducerStartPage extends Producer {
19 private static String startPageTemplate = MirConfig.getProp("Producer.StartPage.Template");
20 private static int itemsPerPage = Integer.parseInt(MirConfig.getProp("Producer.StartPage.Items"));
21 private static int newsPerPage = Integer.parseInt(MirConfig.getProp("Producer.StartPage.Newswire"));
23 public static void main(String argv[]){
25 // Why are we reloading the configuration here?
26 // is there something I'm missing?
27 // mh. <heckmann@hbe.ca>
28 // Configuration.initConfig(argv[0]);
29 new ProducerStartPage().handle(new PrintWriter(System.out), null);
30 } catch(Exception e) {
31 System.err.println(e.toString());
35 public void handle(PrintWriter htmlout, EntityUsers user, boolean force,boolean sync)
36 throws StorageObjectException, ModuleException
38 long startTime = System.currentTimeMillis();
39 printHTML(htmlout, "Producer.StartPage: started");
40 SimpleHash startPageModel = new SimpleHash();
43 ModuleBreaking breakingModule = new ModuleBreaking(DatabaseBreaking.getInstance());
44 startPageModel.put("breakingnews", breakingModule.getBreakingNews());
45 startPageModel.put("topics", topicsModule.getTopicsList());
46 startPageModel.put("newswire", contentModule.getNewsWire(0,newsPerPage));
47 startPageModel.put("startspecial", contentModule.getStartArticle());
48 startPageModel.put("features", contentModule.getFeatures(0,itemsPerPage));
50 /** @todo switch to compressed */
51 produce(startPageTemplate, producerDocRoot + "/index.shtml", startPageModel, htmlout);
54 logHTMLFinish(htmlout, "Startpage", 1, startTime, System.currentTimeMillis());
57 logHTML(htmlout, "Producer.Startpage: rsyncing...");
59 logHTML(htmlout, "Producer.Startpage: rsync done");