(no commit message)
[utils] / crawler / kiss / src / org / wamblee / crawler / kiss / Program.java
index 7cb86cfdeecea92ccb66b2f2a3a4eae7b5e485a8..89c3c88ce1704612eda0dc5044abac95474f6349 100644 (file)
@@ -29,13 +29,25 @@ import org.wamblee.crawler.PageException;
  */
 public class Program {
     
+    /**
+     * Lexicographical comparison of programs based on (time, title, channel). 
+     *
+     */
     public static class TimeSorter implements Comparator<Program> { 
      
         /* (non-Javadoc)
          * @see java.util.Comparator#compare(T, T)
          */
         public int compare(Program o1, Program o2) { 
-            return o1.getInterval().getBegin().compareTo(o2.getInterval().getBegin());
+            int value = o1.getInterval().getBegin().compareTo(o2.getInterval().getBegin());
+            if ( value != 0 ) { 
+                return value; 
+            }
+            value = o1.getName().compareTo(o2.getName()); 
+            if (value != 0 ) { 
+                return value; 
+            }
+            return o1.getChannel().compareTo(o2.getChannel());
         }
     }
     
@@ -196,15 +208,23 @@ public class Program {
      * @return Status describing the result of recording.
      */
     public RecordingResult record() {
+        LOG.info("Recording " + this);
+        if ( SystemProperties.isRecordDisabled() ) { 
+            return RecordingResult.OK;
+        }
         try {
             Action record = _programInfo.execute().getAction(RECORD_ACTION);
             if (record == null) {
+                LOG.info("  result: " + RecordingResult.OLDSHOW);
                 return RecordingResult.OLDSHOW;
             }
             Page result = record.execute();
-            return RecordingResult.valueOf(result.getContent().getText());
+            RecordingResult recordingResult = RecordingResult.valueOf(result.getContent().getText());
+            LOG.info("  result: " + recordingResult);
+            return recordingResult;
         } catch (PageException e) {
             LOG.warn("Technical problem recording program: '" + this + "'", e);
+            LOG.info("  result: " + RecordingResult.ERROR);
             return RecordingResult.ERROR;
         }
     }