]> git.wh0rd.org Git - tt-rss.git/commitdiff
initial split ttrss_entries work
authorAndrew Dolgov <fox@bah.spb.su>
Sat, 19 Nov 2005 05:48:02 +0000 (06:48 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sat, 19 Nov 2005 05:48:02 +0000 (06:48 +0100)
backend.php
functions.php
schema/ttrss_schema_pgsql.sql

index ab82cc3c3ef25d78e5867fc2214e6c18a54097a1..d0200236ed346d66cf44d10e07820a31fe46205f 100644 (file)
        /* FIXME this needs reworking */
 
        function getGlobalCounters($link) {
-               $result = db_query($link, "SELECT count(id) as c_id FROM ttrss_entries
-                       WHERE unread = true AND owner_uid = " . $_SESSION["uid"]);
+               $result = db_query($link, "SELECT count(id) as c_id FROM ttrss_entries,ttrss_user_entries
+                       WHERE unread = true AND 
+                       ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                       owner_uid = " . $_SESSION["uid"]);
                $c_id = db_fetch_result($result, 0, "c_id");
                print "<counter id='global-unread' counter='$c_id'/>";
        }
 
        function getTagCounters($link) {
                $result = db_query($link, "SELECT tag_name,count(ttrss_entries.id) AS count
-                       FROM ttrss_tags,ttrss_entries WHERE
+                       FROM ttrss_tags,ttrss_entries,ttrss_user_entries WHERE
+                       ttrss_user_entries.ref_id = ttrss_entries.id AND 
                        ttrss_tags.owner_uid = ".$_SESSION["uid"]." AND
                        post_id = ttrss_entries.id AND unread = true GROUP BY tag_name 
                UNION
@@ -81,8 +84,9 @@
 
        function getLabelCounters($link) {
 
-               $result = db_query($link, "SELECT count(id) as count FROM ttrss_entries
-                       WHERE marked = true AND unread = true AND owner_uid = ".$_SESSION["uid"]);
+               $result = db_query($link, "SELECT count(id) as count FROM ttrss_entries,ttrss_user_entries
+                       WHERE marked = true AND ttrss_user_entries.ref_id = ttrss_entries.id AND 
+                       unread = true AND owner_uid = ".$_SESSION["uid"]);
 
                $count = db_fetch_result($result, 0, "count");
 
 
                        error_reporting (0);
 
-                       $tmp_result = db_query($link, "SELECT count(id) as count FROM ttrss_entries
+                       $tmp_result = db_query($link, "SELECT count(id) as count FROM ttrss_user_entries,ttrss_entries
                                WHERE (" . $line["sql_exp"] . ") AND unread = true AND 
+                               ttrss_user_entries.ref_id = ttrss_entries.id AND 
                                owner_uid = ".$_SESSION["uid"]);
 
                        $count = db_fetch_result($tmp_result, 0, "count");
        function getFeedCounter($link, $id) {
        
                $result = db_query($link, "SELECT 
-                               count(id) as count FROM ttrss_entries
-                       WHERE feed_id = '$id' AND unread = true");
+                               count(id) as count FROM ttrss_entries,ttrss_user_entries
+                       WHERE feed_id = '$id' AND unread = true
+                       AND ttrss_user_entries.ref_id = ttrss_entries.id");
        
                        $count = db_fetch_result($result, 0, "count");
                        
        function getFeedCounters($link) {
        
                $result = db_query($link, "SELECT id,
-                       (SELECT count(id) FROM ttrss_entries WHERE feed_id = ttrss_feeds.id 
+                       (SELECT count(id) 
+                               FROM ttrss_entries,ttrss_user_entries 
+                               WHERE feed_id = ttrss_feeds.id AND ttrss_user_entries.ref_id = ttrss_entries.id
                                AND unread = true AND owner_uid = ".$_SESSION["uid"].") as count
                        FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]);
        
                        /* virtual feeds */
 
                        $result = db_query($link, "SELECT count(id) as num_starred 
-                               FROM ttrss_entries WHERE marked = true AND unread = true AND owner_uid = '$owner_uid'");
+                               FROM ttrss_entries,ttrss_user_entries 
+                               WHERE marked = true AND 
+                               ttrss_user_entries.ref_id = ttrss_entries.id AND
+                               unread = true AND owner_uid = '$owner_uid'");
                        $num_starred = db_fetch_result($result, 0, "num_starred");
 
                        $class = "virt";
        
                                        error_reporting (0);
                
-                                       $tmp_result = db_query($link, "SELECT count(id) as count FROM ttrss_entries
-                                               WHERE (" . $line["sql_exp"] . ") AND unread = true 
+                                       $tmp_result = db_query($link, "SELECT count(id) as count FROM ttrss_entries,ttrss_user_entries
+                                               WHERE (" . $line["sql_exp"] . ") AND unread = true AND
+                                               ttrss_user_entries.ref_id = ttrss_entries.id
                                                AND owner_uid = '$owner_uid'");
        
                                        $count = db_fetch_result($tmp_result, 0, "count");
                        print "<li><hr></li>";
 
                        $result = db_query($link, "SELECT *,
-                               (SELECT count(id) FROM ttrss_entries 
-                                       WHERE feed_id = ttrss_feeds.id AND owner_uid = '$owner_uid') AS total,
-                               (SELECT count(id) FROM ttrss_entries
+                               (SELECT count(id) FROM ttrss_entries,ttrss_user_entries
+                                       WHERE feed_id = ttrss_feeds.id AND 
+                                       ttrss_user_entries.ref_id = ttrss_entries.id AND
+                                       owner_uid = '$owner_uid') AS total,
+                               (SELECT count(id) FROM ttrss_entries,ttrss_user_entries
                                        WHERE feed_id = ttrss_feeds.id AND unread = true
+                                               AND ttrss_user_entries.ref_id = ttrss_entries.id
                                                AND owner_uid = '$owner_uid') as unread
                                FROM ttrss_feeds WHERE owner_uid = '$owner_uid' ORDER BY title");                       
        
                $id = $_GET["id"];
                $feed_id = $_GET["feed"];
 
-               $result = db_query($link, "UPDATE ttrss_entries SET unread = false,last_read = NOW() WHERE id = '$id'");
+               $result = db_query($link, "UPDATE ttrss_user_entries 
+                       SET unread = false,last_read = NOW() 
+                       WHERE ref_id = '$id' AND feed_id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]);
 
                $addheader = $_GET["addheader"];
 
                $result = db_query($link, "SELECT title,link,content,feed_id,comments,
                        (SELECT icon_url FROM ttrss_feeds WHERE id = feed_id) as icon_url 
-                       FROM ttrss_entries
-                       WHERE   id = '$id'");
+                       FROM ttrss_entries,ttrss_user_entries
+                       WHERE   id = '$id' AND ref_id = id");
 
                if ($addheader) {
                        print "<html><head>
                                        $vfeed_query_part
                                        SUBSTRING(updated,1,19) as updated_noms
                                FROM
-                                       ttrss_entries 
+                                       ttrss_entries,ttrss_user_entries
                                WHERE
+                               ttrss_user_entries.ref_id = ttrss_entries.id AND
                                owner_uid = '".$_SESSION["uid"]."' AND
                                $search_query_part
                                $view_query_part
index 3b63a24e7b0ca5e5a82c8e47478617527076dfeb..3dee285a889c6715df4b85e1de2a828e751255d8 100644 (file)
@@ -4,12 +4,11 @@
        require_once 'config.php';
        require_once 'db-prefs.php';
 
-//     $_SESSION["uid"] = PLACEHOLDER_UID; // FIXME: placeholder
-//     $_SESSION["name"] = PLACEHOLDER_NAME;
-
        define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
 
        function purge_feed($link, $feed_id, $purge_interval) {
+
+               return; // FIXME disabled for now
        
                if (DB_TYPE == "pgsql") {
                        db_query($link, "DELETE FROM ttrss_entries WHERE
 
                                $entry_guid = db_escape_string($entry_guid);
 
-                               $result = db_query($link, "
+                               $result = db_query($link, "SELECT id FROM       ttrss_entries WHERE guid = '$entry_guid'");
+
+                               $owner_uid = $_SESSION["uid"];
+
+                               if (db_num_rows($result) == 0) {
+
+                                       // base post entry does not exist, create it
+
+                                       error_reporting(0);
+                                       if (is_filtered($entry_title, $entry_content, $filters)) {
+                                               continue;
+                                       }
+                                       error_reporting (E_ERROR | E_WARNING | E_PARSE);
+
+                                       $entry_content = db_escape_string($entry_content);
+                                       $entry_title = db_escape_string($entry_title);
+                                       $entry_link = db_escape_string($entry_link);
+                                       $entry_comments = db_escape_string($entry_comments);
+
+                                       $result = db_query($link,
+                                               "INSERT INTO ttrss_entries 
+                                                       (title,
+                                                       guid,
+                                                       link,
+                                                       updated,
+                                                       content,
+                                                       content_hash,
+                                                       no_orig_date,
+                                                       date_entered,
+                                                       comments)
+                                               VALUES
+                                                       ('$entry_title', 
+                                                       '$entry_guid', 
+                                                       '$entry_link',
+                                                       '$entry_timestamp_fmt', 
+                                                       '$entry_content', 
+                                                       '$content_hash',
+                                                       $no_orig_date, 
+                                                       NOW(), 
+                                                       '$entry_comments')");
+                               }
+
+                               // now it should exist, if not - bad luck then
+
+                               $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$entry_guid'");
+
+                               if (db_num_rows($result) == 1) {
+
+                                               $ref_id = db_fetch_result($result, 0, "id");
+
+                                               // check for user post link to main table
+
+                                               $result = db_query($link,
+                                                       "SELECT ref_id FROM ttrss_user_entries WHERE
+                                                               ref_id = '$ref_id' AND owner_uid = '$owner_uid' AND feed_id = '$feed'");
+
+                                               // okay it doesn't exist - create user entry
+
+                                               if (db_num_rows($result) == 0) {
+
+                                                       $result = db_query($link,
+                                                               "INSERT INTO ttrss_user_entries 
+                                                                       (ref_id, owner_uid, feed_id) 
+                                                               VALUES ('$ref_id', '$owner_uid', '$feed')");
+
+                                               }
+                               }
+
+/*                             $result = db_query($link, "
                                        SELECT 
                                                id,last_read,no_orig_date,title,feed_id,content_hash,
                                                substring(updated,1,19) as updated
                                                owner_uid = " . $_SESSION["uid"]." AND
                                                feed_id = '$feed'");
 
-//                             print db_num_rows($result) . "$entry_guid<br/>";
-
                                if (db_num_rows($result) == 0) {
 
                                        error_reporting(0);
 
                                                $result = db_query($link, $query);
                                        }
-                               }
+                               } */
 
                                /* taaaags */
                                // <a href="http://technorati.com/tag/Xorg" rel="tag">Xorg</a>, //
 
-                               $entry_tags = null;
+/*                             $entry_tags = null;
 
                                preg_match_all("/<a.*?rel=.tag.*?>([^>]+)<\/a>/i", $entry_content,
                                        $entry_tags);
                                                                VALUES ('".$_SESSION["uid"]."','$tag', '$entry_id')");
                                                }                                                       
                                        }
-                               }
-                       }
+                               } */
+                       } 
 
                        db_query($link, "UPDATE ttrss_feeds 
                                SET last_updated = NOW(), last_error = '' WHERE id = '$feed'");
index f9a4900d56fbcca13a5303af25cafad40ba9c12c..a11e2e33735a06bcfb68e0736c0999c6963bbad0 100644 (file)
@@ -37,7 +37,6 @@ insert into ttrss_feeds (owner_uid,title,feed_url) values (1,'Technocrat.net',
    'http://syndication.technocrat.net/rss');
 
 create table ttrss_entries (id serial not null primary key, 
-       feed_id int references ttrss_feeds(id) ON DELETE CASCADE not null, 
        title text not null, 
        guid text not null unique, 
        link text not null, 
@@ -49,7 +48,8 @@ create table ttrss_entries (id serial not null primary key,
        comments varchar(250) not null default '');
 
 create table ttrss_user_entries (
-       id integer unique not null references ttrss_entries(id) ON DELETE CASCADE,
+       ref_id integer not null references ttrss_entries(id) ON DELETE CASCADE,
+       feed_id int references ttrss_feeds(id) ON DELETE CASCADE not null, 
        owner_uid integer not null references ttrss_users(id) ON DELETE CASCADE,
        marked boolean not null default false,
        last_read timestamp,