diff options
-rw-r--r-- | database/database.mssql | 3 | ||||
-rw-r--r-- | database/database.mysql | 3 | ||||
-rw-r--r-- | database/database.pgsql | 3 | ||||
-rw-r--r-- | modules/cloud.module | 15 | ||||
-rw-r--r-- | update.php | 8 |
5 files changed, 22 insertions, 10 deletions
diff --git a/database/database.mssql b/database/database.mssql index 37e083162..c1615a682 100644 --- a/database/database.mssql +++ b/database/database.mssql @@ -257,7 +257,8 @@ CREATE TABLE [dbo].[site] ( [name] [varchar] (128) NOT NULL , [link] [varchar] (255) NOT NULL , [size] [text] NOT NULL , - [timestamp] [int] NOT NULL , + [changed] [int] NOT NULL , + [checked] [int] NOT NULL , [feed] [varchar] (255) NOT NULL , [refresh] [int] NOT NULL , [threshold] [int] NOT NULL diff --git a/database/database.mysql b/database/database.mysql index b1e8c2a35..ab1270732 100644 --- a/database/database.mysql +++ b/database/database.mysql @@ -378,7 +378,8 @@ CREATE TABLE site ( name varchar(128) NOT NULL default '', link varchar(255) NOT NULL default '', size text NOT NULL, - timestamp int(11) NOT NULL default '0', + changed int(11) NOT NULL default '0', + checked int(11) NOT NULL default '0', feed varchar(255) NOT NULL default '', refresh int(11) NOT NULL default '0', threshold int(11) NOT NULL default '0', diff --git a/database/database.pgsql b/database/database.pgsql index c2d2f0969..e0502fc88 100644 --- a/database/database.pgsql +++ b/database/database.pgsql @@ -378,7 +378,8 @@ CREATE TABLE site ( name varchar(128) NOT NULL default '', link varchar(255) NOT NULL default '', size text NOT NULL default '', - timestamp integer NOT NULL default '0', + changed integer NOT NULL default '0', + checked integer NOT NULL default '0', feed varchar(255) NOT NULL default '', refresh integer NOT NULL default '0', threshold integer NOT NULL default '0', diff --git a/modules/cloud.module b/modules/cloud.module index 45e5ae764..d85473e4e 100644 --- a/modules/cloud.module +++ b/modules/cloud.module @@ -23,7 +23,7 @@ function cloud_system($field){ } function cloud_cron() { - $result = db_query("SELECT * FROM site WHERE timestamp = 0 OR timestamp + refresh < ". time()); + $result = db_query("SELECT * FROM site WHERE checked = 0 OR checked + refresh < %d", time()); while ($site = db_fetch_array($result)) { cloud_update($site); @@ -78,7 +78,10 @@ function cloud_update($site) { } if (abs($site["size"] - strlen($data)) >= $site["threshold"]) { - db_query("UPDATE site SET size = '". strlen($data) ."', timestamp = '". time() ."' WHERE link = '%s'", $site["link"]); + db_query("UPDATE site SET size = %d, changed = %d, checked = %d WHERE link = '%s'", strlen($data), time(), time(), $site["link"]); + } + else { + db_query("UPDATE site SET checked = %d WHERE link = '%s'", time(), $site["link"]); } fclose($fp); @@ -130,22 +133,22 @@ function cloud_display() { $header = array(t("site"), t("last update"), array("data" => t("operations"), "colspan" => 2)); while ($site = db_fetch_object($result)) { - $rows[] = array("<a href=\"$site->link\">$site->name</a>", ($site->timestamp ? format_interval(time() - $site->timestamp) ." ago" : "never"), l(t("edit site"), "admin/syndication/cloud/edit/$site->sid"), l(t("update site"), "admin/syndication/cloud/update/$site->sid")); + $rows[] = array("<a href=\"$site->link\">$site->name</a>", ($site->changed ? format_interval(time() - $site->changed) ." ago" : "never"), l(t("edit site"), "admin/syndication/cloud/edit/$site->sid"), l(t("update site"), "admin/syndication/cloud/update/$site->sid")); } return table($header, $rows); } function cloud_list($limit = 10) { - $result = db_query_range("SELECT * FROM site WHERE timestamp > ". (time() - 604800) ." ORDER BY timestamp DESC", 0, $limit); + $result = db_query_range("SELECT * FROM site WHERE changed > ". (time() - 604800) ." ORDER BY changed DESC", 0, $limit); $hour = -1; $list = -1; $inlist = false; $output .= "<div class=\"item-list\">"; while ($site = db_fetch_object($result)) { - if ($hour != floor((time() - $site->timestamp) / 3600)) { - $hour = floor((time() - $site->timestamp) / 3600); + if ($hour != floor((time() - $site->changed) / 3600)) { + $hour = floor((time() - $site->changed) / 3600); if ($hour < 12) { if ($inlist) { $output .= "</ul>"; diff --git a/update.php b/update.php index 1a6efa586..ca23a700d 100644 --- a/update.php +++ b/update.php @@ -66,7 +66,8 @@ $mysql_updates = array( "2003-04-19" => "update_51", "2003-04-20" => "update_52", "2003-05-18" => "update_53", - "2003-05-24" => "update_54" + "2003-05-24" => "update_54", + "2003-05-31" => "update_55" ); // Update functions @@ -714,6 +715,11 @@ function update_54() { update_sql("ALTER TABLE locales CHANGE string string BLOB DEFAULT '' NOT NULL"); } +function update_55() { + update_sql("ALTER TABLE site ADD checked INT(11) NOT NULL;"); + update_sql("ALTER TABLE site CHANGE timestamp changed INT(11) NOT NULL;"); +} + function update_upgrade3() { update_sql("INSERT INTO system VALUES ('archive.module','archive','module','',1)"); update_sql("INSERT INTO system VALUES ('block.module','block','module','',1)"); |