Index: feedapi_node/feedapi_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi_node/Attic/feedapi_node.module,v
retrieving revision 1.1.2.18.2.31
diff -u -p -r1.1.2.18.2.31 feedapi_node.module
--- feedapi_node/feedapi_node.module	5 Jun 2009 13:32:47 -0000	1.1.2.18.2.31
+++ feedapi_node/feedapi_node.module	19 Jun 2009 13:50:09 -0000
@@ -36,6 +36,9 @@ function feedapi_node_nodeapi(&$node, $o
       }
       break;
     case 'insert':
+      if (!isset($node->feedapi_node)) {
+        $node->feedapi_node = _feedapi_node_item_data();
+      }
       if (isset($node->feedapi_node) && $node->feedapi_node->feed_item) {
         // Why do we stick the nid on the feed item here?
         $node->feedapi_node->feed_item->nid = $node->nid;
@@ -238,6 +241,17 @@ function _feedapi_node_expire($feed, $se
 }
 
 /**
+ * Stores the data of the feed item, drupal_execute() cannot pass non-form data
+ */
+function _feedapi_node_item_data($data = NULL) {
+  static $storage;
+  if ($data == NULL) {
+    return $storage;
+  }
+  $storage = $data;
+}
+
+/**
  * Create a node from the feed item
  * Store the relationship between the node and the feed item
  */
@@ -286,6 +300,16 @@ function _feedapi_node_save($feed_item, 
     return FALSE;
   }
   
+  $feed_node = node_load($feed_nid);
+  $form_state = array();
+  $form_state['values']['title'] = $feed_item->title;
+  $form_state['values']['body'] = $feed_item->description;
+  $form_state['values']['format'] = isset($settings['input_format']) ? $settings['input_format'] : FILTER_FORMAT_DEFAULT;
+  $feed_user = user_load($feed_node->uid);
+  $form_state['values']['name'] = $feed_user->name;
+  $form_state['values']['op'] = t('Save');
+  $form_state['values']['changed'] = time();
+  
   // Get the default options from the cont
   $options = variable_get('node_options_'. $node->type, FALSE);
   if (is_array($options)) {
@@ -296,7 +320,6 @@ function _feedapi_node_save($feed_item, 
   else {
     $node->status = 1;
   }
-  $feed_node = node_load($feed_nid);
   $node->title = $feed_item->title;
   $node->body = $feed_item->description;
   $node->format = isset($settings['input_format']) ? $settings['input_format'] : FILTER_FORMAT_DEFAULT;
@@ -318,21 +341,10 @@ function _feedapi_node_save($feed_item, 
   }
   $node->uid = $feed_node->uid;
   
-  // If there are dupes on other feeds, don't create new feed item, but link this feed
-  // to existing feed item.
-  // Heads up: if there is a duplicate on the SAME feed, 
-  // _feedapi_node_save() won't even be called.
-  if (isset($feed_item->feedapi_node->duplicates)) {
-    foreach ($feed_item->feedapi_node->duplicates as $fi_nid => $f_nids) {
-      $feed_item_node = node_load($fi_nid);
-      $feed_item_node->feedapi_node->feed_nids[$feed_nid] = $feed_nid;
-      node_object_prepare($feed_item_node);
-      node_save($feed_item_node);
-    }
-  }
-  else {
-    node_save($node);
-  }
+  $form_state['node'] = (array) $node;
+  _feedapi_node_item_data($node->feedapi_node);
+  @drupal_execute($node->type .'_node_form', $form_state, $node);
+  _feedapi_node_item_data(FALSE);
   return $feed_item;
 }
 
