diff --git a/backend.php b/backend.php index 198252dc6..e89163dec 100644 --- a/backend.php +++ b/backend.php @@ -1,18 +1,21 @@ "; + print ""; $lnum = 0; @@ -33,8 +36,6 @@ $unread = $line["unread"]; $class = ($lnum % 2) ? "even" : "odd"; - -// if ($lnum == 2 || $lnum == 0) $feed = "$feed"; if ($unread > 0) $class .= "Unread"; @@ -49,6 +50,9 @@ ++$lnum; } + print ""; + print "
+ Update all feeds
"; } @@ -86,95 +90,17 @@ if ($ext == "undefined") $ext = ""; - $result = pg_query("SELECT * FROM ttrss_feeds WHERE id = '$feed'"); + $result = pg_query("SELECT *, + EXTRACT(EPOCH FROM NOW()) - EXTRACT(EPOCH FROM last_updated) as update_timeout + FROM ttrss_feeds WHERE id = '$feed'"); if ($result) { $line = pg_fetch_assoc($result); - if (!$ext) { - - $rss = fetch_rss($line["feed_url"]); - - if ($rss) { - - foreach ($rss->items as $item) { - - $entry_guid = $item["id"]; - - if (!$entry_guid) $entry_guid = $item["guid"]; - if (!$entry_guid) $entry_guid = $item["link"]; - - $entry_timestamp = $item["pubdate"]; - if (!$entry_timestamp) $entry_timestamp = $item["modified"]; - if (!$entry_timestamp) $entry_timestamp = $item["updated"]; - - $entry_timestamp = strtotime($entry_timestamp); - - $entry_title = $item["title"]; - $entry_link = $item["link"]; - - $entry_content = $item["description"]; - if (!$entry_content) $entry_content = $item["content"]; - - $entry_content = pg_escape_string($entry_content); - $entry_title = pg_escape_string($entry_title); - - $content_md5 = md5($entry_content); - - $result = pg_query(" - SELECT - id,unread,md5_hash - FROM - ttrss_entries - WHERE - guid = '$entry_guid' OR md5_hash = '$content_md5'"); - - if (pg_num_rows($result) == 0) { - - $entry_timestamp = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp); - - $query = "INSERT INTO ttrss_entries - (title, guid, link, updated, content, feed_id, md5_hash) - VALUES - ('$entry_title', '$entry_guid', '$entry_link', - '$entry_timestamp', '$entry_content', '$feed', - '$content_md5')"; - - pg_query($query); - - } else { - - $entry_id = pg_fetch_result($result, 0, "id"); - $entry_timestamp = strftime("%Y/%m/%d %H:%M:%S", $entry_timestamp); - - $unread = pg_fetch_result($result, 0, "unread"); - $md5_hash = pg_fetch_result($result, 0, "md5_hash"); - - if ($md5_hash != $content_md5) - $unread = "false"; - - $query = "UPDATE ttrss_entries - SET - title ='$entry_title', - link = '$entry_link', - updated = '$entry_timestamp', - content = '$entry_content', - md5_hash = '$content_md5', - unread = '$unread' - WHERE - id = '$entry_id'"; - - $result = pg_query($query); - - // print "$entry_guid - $entry_timestamp - $entry_title - - // $entry_link - $entry_id
"; - - } - - } - - } + if (!$ext && $line["update_timeout"] > MIN_UPDATE_TIME) { + + update_rss_feed($link, $line["feed_url"], $feed); } else { @@ -183,7 +109,6 @@ pg_query("UPDATE ttrss_entries SET unread = false WHERE feed_id = '$feed'"); } - } } diff --git a/config.php-dist b/config.php-dist index 99319da6e..834925a03 100644 --- a/config.php-dist +++ b/config.php-dist @@ -2,5 +2,6 @@ define(DB_CONN, "host=localhost dbname=fox user=fox password=XXXXXXXXXXX"); define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache'); define(HEADLINES_PER_PAGE, 15); + define(MIN_UPDATE_TIME, 600); ?> diff --git a/tt-rss.css b/tt-rss.css index 13c3b66aa..7b89286e2 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -39,6 +39,15 @@ td.headlineToolbar { padding-top : 10px; } +table.feeds td.footer { + font-weight : bold; + border-width : 1px 0px 0px 0px; + border-color : #d0d0d0; + border-style : solid; + text-align : right; + font-size : small; +} + table.headlines td.title { font-weight : bold; font-size : large; diff --git a/tt-rss.js b/tt-rss.js index 2cedbc0eb..a6f88d3d8 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -92,6 +92,8 @@ function view_callback() { function update_feed_list() { + document.getElementById("feeds").innerHTML = "Updating feeds, please wait..."; + xmlhttp.open("GET", "backend.php?op=feeds", true); xmlhttp.onreadystatechange=feedlist_callback; xmlhttp.send(null); diff --git a/tt-rss.php b/tt-rss.php index a43f567f6..f63369bda 100644 --- a/tt-rss.php +++ b/tt-rss.php @@ -17,12 +17,12 @@ Preferences - Refresh + - Here be feeds +   Please select the feed. diff --git a/ttrss_schema.sql b/ttrss_schema.sql index 62446a8b3..747cb7fe6 100644 --- a/ttrss_schema.sql +++ b/ttrss_schema.sql @@ -10,7 +10,6 @@ insert into ttrss_feeds (id,title,feed_url) values (0, 'Daily Strips', 'http://n insert into ttrss_feeds (id,title,feed_url) values (1, 'Footnotes', 'http://gnomedesktop.org/node/feed'); insert into ttrss_feeds (id,title,feed_url) values (2, 'Freedesktop.org', 'http://planet.freedesktop.org/rss20.xml'); insert into ttrss_feeds (id,title,feed_url) values (3, 'Planet Debian', 'http://planet.debian.org/rss20.xml'); -insert into ttrss_feeds (id,title,feed_url) values (4, 'Planet Ubuntu', 'http://planet.ubuntulinux.org/rss20.xml'); insert into ttrss_feeds (id,title,feed_url) values (5, 'Planet GNOME', 'http://planet.gnome.org/rss20.xml'); insert into ttrss_feeds (id,title,feed_url) values (6, 'Monologue', 'http://www.go-mono.com/monologue/index.rss'); insert into ttrss_feeds (id,title,feed_url) values (7, 'Art.Gnome.Org Releases', 'http://art.gnome.org/backend.php');