Index: calais.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/opencalais/Attic/calais.admin.inc,v
retrieving revision 1.1.2.8.2.14
diff -u -p -r1.1.2.8.2.14 calais.admin.inc
--- calais.admin.inc	3 Sep 2010 20:41:37 -0000	1.1.2.8.2.14
+++ calais.admin.inc	15 Nov 2010 18:31:37 -0000
@@ -105,9 +105,10 @@ function calais_build_nodetype_settings(
 
   $node_types = node_get_types('types', NULL, TRUE);
   $request_options = array(
-    CALAIS_REQUEST_NO     => t('NEVER: not processed by Calais'),
-    CALAIS_REQUEST_MANUAL => t("MANUAL: initiate requests from the 'Calais' tab"),
-    CALAIS_REQUEST_AUTO   => t('AUTOMATIC: every time you save content'),
+    CALAIS_REQUEST_NO             => t('NEVER: not processed by Calais'),
+    CALAIS_REQUEST_MANUAL         => t("MANUAL: initiate requests from the 'Calais' tab"),
+    CALAIS_REQUEST_AUTO           => t('AUTOMATIC: every time you save content, published or unpublished'),
+    CALAIS_REQUEST_AUTO_PUBLISHED => t('AUTOMATIC PUBLISHED: every time you save published content'),
   );
   $process_options = array(
     CALAIS_PROCESS_MANUAL    => t('NEVER: suggest the terms, but let me tag the content'),
@@ -156,7 +157,7 @@ function calais_build_nodetype_settings(
       '#default_value' => variable_get("calais_threshold_{$key}", 0.0),
       '#description' => t('Determine how relevant a term must be in order for Calais to suggest it for a particular node.  Based on a 0.00-1.00 scale, with 0.00 being least relevant (i.e. many terms appear).'),
     );
-
+    
     calais_build_entity_settings($form, $key, $name, TRUE);
   }
 }
Index: calais.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/opencalais/calais.module,v
retrieving revision 1.3.2.16.2.22.2.19
diff -u -p -r1.3.2.16.2.22.2.19 calais.module
--- calais.module	19 Oct 2010 18:09:17 -0000	1.3.2.16.2.22.2.19
+++ calais.module	15 Nov 2010 18:31:37 -0000
@@ -15,10 +15,10 @@
  */
 
 // Request constants
-define('CALAIS_REQUEST_NO',     0);
-define('CALAIS_REQUEST_MANUAL', 1);
-define('CALAIS_REQUEST_AUTO',   2);
-
+define('CALAIS_REQUEST_NO',             0);
+define('CALAIS_REQUEST_MANUAL',         1);
+define('CALAIS_REQUEST_AUTO',           2);
+define('CALAIS_REQUEST_AUTO_PUBLISHED', 3);
 
 // Constants for how to apply tags once retrieved
 define('CALAIS_PROCESS_AUTO',       'AUTO');
@@ -172,6 +172,17 @@ function calais_theme() {
 }
 
 /**
+ * Implementation of hook_scheduler_api().
+ *
+ * Update the Calais terms if scheduler is ran to publish a node.
+ */
+function calais_scheduler_api(&$node, $action){
+  if($action == 'published'){
+    node_invoke_nodeapi($node, 'update');
+  }
+}
+
+/**
  * Implementation of hook_nodeapi().
  *
  * Process node updates and if applicable, update the Calais terms.
@@ -183,7 +194,7 @@ function calais_nodeapi(&$node, $op, $a3
       break;
     case "insert":
     case "update":
-      if (calais_get_request_type($node) == CALAIS_REQUEST_AUTO) {
+      if (calais_get_request_type($node) == CALAIS_REQUEST_AUTO || (calais_get_request_type($node) == CALAIS_REQUEST_AUTO_PUBLISHED && $node->status == 1)) {
         $process_type = calais_get_processing_type($node);
         $threshold = calais_get_node_threshold($node->type);
         calais_process_node($node, $process_type, $threshold, $op);
