first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / mircoders / producer / ProducerImages.java
index f3ef690..0e0f94a 100755 (executable)
@@ -20,16 +20,19 @@ public class ProducerImages extends Producer {
 
        public static void main(String argv[]){
                try {
-                       new ProducerContent().handle(new PrintWriter(System.out), null, false,false);
+                       new ProducerContent().handle(new PrintWriter(System.out), null,
+                                        false,false);
                } catch(Exception e) { System.err.println(e.toString()); }
        }
 
-       public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync)
+       public void handle(PrintWriter htmlout, EntityUsers user, boolean force,
+                        boolean sync)
                throws StorageObjectException, ModuleException {
                handle(htmlout,user,force,sync,null);
        }
 
-       public void handle(PrintWriter htmlout, EntityUsers user, boolean force, boolean sync, String id)
+       public void handle(PrintWriter htmlout, EntityUsers user, boolean force,
+                        boolean sync, String id)
                throws StorageObjectException, ModuleException
        {
                long                sessionConnectTime = 0;
@@ -40,11 +43,13 @@ public class ProducerImages extends Producer {
                String              productionPath;
                EntityImages         currentImage;
                EntityList          batchEntityList;
+        String              orderBy = "date desc, webdb_lastchange desc";
 
-    int contentBatchsize = Integer.parseInt(MirConfig.getProp("Producer.Content.Batchsize"));
-    String imageHost = MirConfig.getProp("Producer.Image.Host");
-         String imagePath = MirConfig.getProp("Producer.Image.Path");
-         String iconPath = MirConfig.getProp("Producer.Image.IconPath");
+        int contentBatchsize = Integer.parseInt(MirConfig.getProp(
+                                        "Producer.Content.Batchsize"));
+        String imageHost = MirConfig.getProp("Producer.Image.Host");
+        String imagePath = MirConfig.getProp("Producer.Image.Path");
+        String iconPath = MirConfig.getProp("Producer.Image.IconPath");
 
                // get batch of non-produced images, that are to be published
                whereClause="is_published='1'";
@@ -52,7 +57,8 @@ public class ProducerImages extends Producer {
                        whereClause += " and id="+id;
                if (force==false) whereClause += " and icon_is_produced='0'";
 
-               batchEntityList = imageModule.getByWhereClause(whereClause, null, 0, contentBatchsize);
+               batchEntityList = imageModule.getByWhereClause(whereClause, orderBy, 0,
+                                                        contentBatchsize);
                theLog.printDebugInfo("whereclause: " + whereClause);
 
 
@@ -61,48 +67,71 @@ public class ProducerImages extends Producer {
                                theLog.printDebugInfo("trying image: " + i);
                                currentImage = (EntityImages)batchEntityList.elementAt(i);
 
+            try {
                                // make filenames
                                String date = currentImage.getValue("date");
+                String datePath = StringUtil.webdbDate2path(date);
 
-                               iconFilename = producerDocRoot + iconPath + StringUtil.webdbDate2path(date) +
-                                       currentImage.getId() + (( currentImage.getValue("to_img_type").equals("0") ) ? ".jpg":".gif");
+                               iconFilename=producerDocRoot + iconPath + datePath +
+                             currentImage.getId() +
+                             ((currentImage.getValue("to_img_type").equals("0"))
+                             ? ".jpg":".gif");
 
-                               imageFilename = currentImage.getId() + (( currentImage.getValue("to_img_type").equals("0") ) ? ".jpg":".gif");
+                               imageFilename=datePath + currentImage.getId() +
+                             ((currentImage.getValue("to_img_type").equals("0"))
+                             ? ".jpg":".gif");
                                productionPath = imagePath + "/" + imageFilename ;
 
                                currentImage.setValueForProperty("icon_path",iconFilename);
-                               //currentImage.setValueForProperty("publish_path","imc/germany/" + imageFilename);
-        currentImage.setValueForProperty("publish_path",imageFilename);
+                currentImage.setValueForProperty("publish_path",imageFilename);
                                currentImage.setValueForProperty("publish_server", imageHost);
 
-                               if (currentImage.getValue("icon_data")!= null && currentImage.getValue("image_data")!= null) {
+                               if (currentImage.getValue("icon_data")!= null &&
+                    currentImage.getValue("image_data")!= null) {
                                        // make icon
-                                       boolean iconProduced = produceFile(iconFilename, currentImage.getIcon(), htmlout, true);
-                                       logHTML(htmlout,"icon : " + iconFilename + (( iconProduced==true )? " succeded":" <font color=\"Red\" failed!</font>"));
+                                       boolean iconProduced = produceFile(iconFilename,
+                                                       currentImage.getIcon(),
+                                                       htmlout, true);
+                                       logHTML(htmlout,"icon : "+iconFilename+((
+                            iconProduced==true )?
+                            " succeded":" <font color=\"Red\" failed!</font>"));
                                        // make image
-                                       boolean imageProduced = produceFile(productionPath, currentImage.getImage(), htmlout, false);
-                                       logHTML(htmlout,"image: " + productionPath + ((imageProduced==true)?" succeded":" <font color=\"Red\" failed!</font>"));
+                                       boolean imageProduced = produceFile(productionPath,
+                                                        currentImage.getImage(),
+                                                        htmlout, false);
+                                       logHTML(htmlout,"image: "+productionPath +
+                            ((imageProduced==true)?
+                            " succeded":" <font color=\"Red\" failed!</font>"));
 
                                        // update image-data
                                        if (iconProduced && imageProduced) {
-                                               currentImage.setValueForProperty("icon_is_produced", "1");
+                                               currentImage.setValueForProperty("icon_is_produced",
+                                                        "1");
                                                currentImage.update();
                                        }
 
                                }
-                       }
+            } catch (Exception e) {
+               logHTML(htmlout, "Producer.Images ERROR with: image ID "+
+                       currentImage.getId() +
+                       " <font color=\"Red\"> failed!</font>");
+            }
+                       }//end for
 
                        // if next batch get it...
                        if (batchEntityList.hasNextBatch()){
-                               batchEntityList = imageModule.getByWhereClause(whereClause, null, batchEntityList.getNextBatch(),contentBatchsize);
+                               batchEntityList = imageModule.getByWhereClause(whereClause, 
+                                    orderBy, batchEntityList.getNextBatch(),
+                                    contentBatchsize);
                        } else {
                                batchEntityList=null;
                        }
                }
                // Finish
                sessionConnectTime = new java.util.Date().getTime() - startTime;
-               logHTML(htmlout, "Producer.Images finished: " + sessionConnectTime + " ms.");
+               logHTML(htmlout, "Producer.Images finished: " + sessionConnectTime +
+                " ms.");
 
        }
 
-}
\ No newline at end of file
+}