fixed serious bug in MySQL schema (cascade deletes were unfunctional), add yet another content: subtype workaround

This commit is contained in:
Andrew Dolgov 2005-10-12 11:54:09 +01:00
parent fcfc3519b4
commit 1696229f9d
2 changed files with 19 additions and 7 deletions

View File

@ -27,9 +27,9 @@
$result = db_query($link, "SELECT feed_url,id,last_updated FROM ttrss_feeds"); $result = db_query($link, "SELECT feed_url,id,last_updated FROM ttrss_feeds");
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
if (!$line["last_updated"] || time() - strtotime($line["last_updated"]) > 1800) { // if (!$line["last_updated"] || time() - strtotime($line["last_updated"]) > 1800) {
update_rss_feed($link, $line["feed_url"], $line["id"]); update_rss_feed($link, $line["feed_url"], $line["id"]);
} // }
} }
purge_old_posts($link); purge_old_posts($link);
@ -158,17 +158,23 @@
if (!$entry_title) continue; if (!$entry_title) continue;
if (!$entry_link) continue; if (!$entry_link) continue;
$entry_content = $item["description"]; $entry_content = $item["content:escaped"];
if (!$entry_content) $entry_content = $item["content:escaped"];
if (!$entry_content) $entry_content = $item["content:encoded"];
if (!$entry_content) $entry_content = $item["content"]; if (!$entry_content) $entry_content = $item["content"];
if (!$entry_content) $entry_content = $item["description"];
// if (!$entry_content) continue; // if (!$entry_content) continue;
// WTF // WTF
if (is_array($entry_content)) { if (is_array($entry_content)) {
$entry_content = $entry_content["encoded"]; $entry_content = $entry_content["encoded"];
if (!$entry_content) $entry_content = $entry_content["escaped"];
} }
// print_r($item);
// print_r($entry_content);
$content_hash = "SHA1:" . sha1(strip_tags($entry_content)); $content_hash = "SHA1:" . sha1(strip_tags($entry_content));
$entry_comments = $item["comments"]; $entry_comments = $item["comments"];
@ -188,6 +194,8 @@
WHERE WHERE
guid = '$entry_guid'"); guid = '$entry_guid'");
// print db_num_rows($result) . "$entry_guid<br/>";
if (db_num_rows($result) == 0) { if (db_num_rows($result) == 0) {
error_reporting(0); error_reporting(0);

View File

@ -29,7 +29,7 @@ insert into ttrss_feeds (title,feed_url) values ('Technocrat.net',
'http://syndication.technocrat.net/rss'); 'http://syndication.technocrat.net/rss');
create table ttrss_entries (id integer not null primary key auto_increment, create table ttrss_entries (id integer not null primary key auto_increment,
feed_id integer not null references ttrss_feeds(id) ON DELETE CASCADE, feed_id integer not null,
updated datetime not null, updated datetime not null,
title text not null, title text not null,
guid varchar(255) not null unique, guid varchar(255) not null unique,
@ -41,7 +41,9 @@ create table ttrss_entries (id integer not null primary key auto_increment,
date_entered datetime not null, date_entered datetime not null,
no_orig_date bool not null default 0, no_orig_date bool not null default 0,
comments varchar(250) not null default '', comments varchar(250) not null default '',
unread bool not null default 1) TYPE=InnoDB; unread bool not null default 1,
index (feed_id),
foreign key (feed_id) references ttrss_feeds(id) ON DELETE CASCADE) TYPE=InnoDB;
drop table if exists ttrss_filters; drop table if exists ttrss_filters;
drop table if exists ttrss_filter_types; drop table if exists ttrss_filter_types;
@ -72,5 +74,7 @@ insert into ttrss_labels (sql_exp,description) values ('unread = true',
create table ttrss_tags (id integer primary key auto_increment, create table ttrss_tags (id integer primary key auto_increment,
tag_name varchar(250) not null, tag_name varchar(250) not null,
post_id integer references ttrss_entries(id) ON DELETE CASCADE) TYPE=InnoDB; post_id integer not null,
index (post_id),
foreign key (post_id) references ttrss_entries(id) ON DELETE CASCADE) TYPE=InnoDB;