]> git.wh0rd.org - tt-rss.git/commitdiff
basic functionality pass 2
authorAndrew Dolgov <fox@bah.spb.su>
Sun, 21 Aug 2005 15:23:44 +0000 (16:23 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sun, 21 Aug 2005 15:23:44 +0000 (16:23 +0100)
backend.php
config.php-dist
tt-rss.css
tt-rss.js
tt-rss.php
ttrss_schema.sql

index 198252dc6b94e9491b97c948e9c3f46bd6ee7310..e89163dec954a3582ef80c158ad3fb822fd38cd5 100644 (file)
@@ -1,18 +1,21 @@
 <?
        header("Content-Type: application/xml");
 
-       include "config.php";
+       require_once "config.php";
+       require_once "functions.php";
+       require_once "magpierss/rss_fetch.inc";
 
-       require_once('magpierss/rss_fetch.inc');
 
        $link = pg_connect(DB_CONN);    
 
        pg_query("set client_encoding = 'utf-8'");
 
        $op = $_GET["op"];
-       
+               
        if ($op == "feeds") {
 
+               update_all_feeds($link);
+
                $result = pg_query("SELECT *,
                        (SELECT count(id) FROM ttrss_entries 
                                WHERE feed_id = ttrss_feeds.id) AS total,
@@ -20,7 +23,7 @@
                                WHERE feed_id = ttrss_feeds.id AND unread = true) as unread
                        FROM ttrss_feeds ORDER BY title");                      
 
-               print "<table width=\"100%\">";
+               print "<table width=\"100%\" class=\"feeds\">";
 
                $lnum = 0;
 
@@ -33,8 +36,6 @@
                        $unread = $line["unread"];
                        
                        $class = ($lnum % 2) ? "even" : "odd";
-                       
-//                     if ($lnum == 2 || $lnum == 0) $feed = "<b>$feed</b>";
 
                        if ($unread > 0) $class .= "Unread";
 
@@ -49,6 +50,9 @@
                        ++$lnum;
                }
 
+               print "<tr><td class=\"footer\" colspan=\"3\">
+                       <a href=\"javascript:update_feed_list()\">Update all feeds</a></td></tr>";
+
                print "</table>";
 
        }
 
                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<br>";
-       
-                                               }
-       
-                                       }
-               
-                               }
+                       if (!$ext && $line["update_timeout"] > MIN_UPDATE_TIME) {
+                               
+                               update_rss_feed($link, $line["feed_url"], $feed);
 
                        } else {
 
                                        pg_query("UPDATE ttrss_entries SET unread = false 
                                                WHERE feed_id = '$feed'");
                                }
-
                        }
                }
 
index 99319da6e3d465091fd5d884b9b4b05e6f64575f..834925a03a9a3c908d24d0beaeeeaec3e919a863 100644 (file)
@@ -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);
 ?>
 
index 13c3b66aa0d92b7661000f85eb0853fe2cf760f7..7b89286e2add8c16d73f8b379b3d210041283bdb 100644 (file)
@@ -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;
index 2cedbc0ebaa63714daf413990d8e39bfada4d12e..a6f88d3d8bbb61d850f79225c5c01f8798e187e6 100644 (file)
--- 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);
index a43f567f655354570dc752c964a417640e490de3..f63369bda251c9be222108487a099580a47a95ff 100644 (file)
 <tr>
        <td class="toolbar" valign="middle" colspan="2">        
                <a class="button">Preferences</a>
-               <a class="button" href="javascript:refresh()">Refresh</a>
+               <!-- <a class="button" href="javascript:refresh()">Refresh</a> -->
        </td>
 </tr>
 <tr>
        <td valign="top" rowspan="2" id="feeds" class="feeds"> 
-               Here be feeds
+               &nbsp;
        </td>
        <td id="headlines" class="headlines" valign="top">
                Please select the feed.
index 62446a8b3125d433d0bcbcf7007ddf1146dca60f..747cb7fe624b436d075b625b74d1994e08702211 100644 (file)
@@ -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');