Index: simplefeed.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/simplefeed/simplefeed.install,v retrieving revision 1.10.2.4 diff -u -p -r1.10.2.4 simplefeed.install --- simplefeed.install 12 Jun 2008 09:38:05 -0000 1.10.2.4 +++ simplefeed.install 24 Sep 2008 07:22:32 -0000 @@ -15,6 +15,7 @@ function simplefeed_install() { expires int NOT NULL default '0', refresh int NOT NULL default '0', checked int NOT NULL default '0', + error int(1) NOT NULL default '0', hash varchar(32), PRIMARY KEY (vid), KEY nid (nid) @@ -28,6 +29,7 @@ function simplefeed_install() { expires int NOT NULL default '0', refresh int NOT NULL default '0', checked int NOT NULL default '0', + error int(1) NOT NULL default '0', hash varchar(32), PRIMARY KEY (vid) )"); @@ -64,3 +66,15 @@ function simplefeed_update_2() { $ret[] = update_sql("ALTER TABLE {simplefeed_feed} CHANGE url url text"); return $ret; } + +function simplefeed_update_3() { + $ret = array(); + $ret[] = update_sql("ALTER TABLE {simplefeed_feed} ADD COLUMN error int(1) NOT NULL DEFAULT 0"); + if ($GLOBALS['db_type'] == 'pgsql') { + db_query("CREATE INDEX {simplefeed_feed}_error_idx ON {simplefeed_feed} (error)"); + } + else { + db_query("CREATE INDEX {simplefeed_error} ON {simplefeed_feed} (error)"); + } + return $ret; +} Index: simplefeed.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/simplefeed/simplefeed.module,v retrieving revision 1.44.2.11 diff -u -p -r1.44.2.11 simplefeed.module --- simplefeed.module 13 Aug 2008 22:28:17 -0000 1.44.2.11 +++ simplefeed.module 24 Sep 2008 07:22:32 -0000 @@ -471,7 +461,7 @@ function simplefeed_feed_refresh($nid = $limit = variable_get('simplefeed_cron_throttle', 50); // limit in ASC order so we grab the top N that haven't been checked recently // we can only update feed nodes that have a valid refresh time set; ignore "never" and "manual" options - $query = 'SELECT n.nid FROM {node} n INNER JOIN {simplefeed_feed} s ON n.vid = s.vid WHERE ((%d - s.checked) >= s.refresh) AND n.status = 1 AND s.refresh > 1 ORDER BY s.checked ASC'; + $query = 'SELECT n.nid FROM {node} n INNER JOIN {simplefeed_feed} s ON n.vid = s.vid WHERE ((%d - s.checked) >= s.refresh) AND n.status = 1 AND s.refresh > 1 AND s.error = 0 ORDER BY s.checked ASC'; if ($limit != 'unlimited') { $process_feeds = db_query_range($query, time(), 0, $limit); } @@ -535,6 +533,7 @@ function simplefeed_feed_process($nid) { } else if (isset($feed->error)) { watchdog('simplefeed', t('The feed %feed could not be processed due to the following error: %error', array('%feed' => $process_feed->title, '%error' => $feed->error)), WATCHDOG_ERROR, l('view', 'node/'. $process_feed->nid)); + db_query("UPDATE {simplefeed_feed} SET error = 1 WHERE vid = %d", $process_feed->vid); } }