diff --git a/backend.php b/backend.php
index 3442b862..19020ac8 100644
--- a/backend.php
+++ b/backend.php
@@ -668,10 +668,7 @@
$ids = split(",", $_GET["ids"]);
foreach ($ids as $id) {
- db_query($link, "BEGIN");
- db_query($link, "DELETE FROM ttrss_entries WHERE feed_id = '$id'");
db_query($link, "DELETE FROM ttrss_feeds WHERE id = '$id'");
- db_query($link, "COMMIT");
if (file_exists(ICONS_DIR . "/$id.ico")) {
unlink(ICONS_DIR . "/$id.ico");
diff --git a/functions.php b/functions.php
index c032364d..f4628a81 100644
--- a/functions.php
+++ b/functions.php
@@ -269,11 +269,46 @@
$result = db_query($link, $query);
}
}
+
+ /* taaaags */
+ // Xorg, //
+
+ $entry_tags = null;
+
+ preg_match_all("/([^>]+)<\/a>/i", $entry_content,
+ $entry_tags);
+
+ $entry_tags = $entry_tags[1];
+
+ if (count($entry_tags) > 0) {
+
+ $result = db_query($link, "SELECT id FROM ttrss_entries
+ WHERE guid = '$entry_guid'");
+
+ if (!$result || db_num_rows($result) != 1) {
+ return;
+ }
+
+ $entry_id = db_fetch_result($result, 0, "id");
+
+ foreach ($entry_tags as $tag) {
+ $tag = db_escape_string(strtolower($tag));
+
+ $result = db_query($link, "SELECT id FROM ttrss_tags
+ WHERE tag_name = '$tag' AND post_id = '$entry_id' LIMIT 1");
+
+ if ($result && db_num_rows($result) == 0) {
+
+// print "tagging $entry_id as $tag
";
+
+ db_query($link, "INSERT INTO ttrss_tags (tag_name,post_id)
+ VALUES ('$tag', '$entry_id')");
+ }
+ }
+ }
}
- if ($result) {
- $result = db_query($link, "UPDATE ttrss_feeds SET last_updated = NOW()");
- }
+ db_query($link, "UPDATE ttrss_feeds SET last_updated = NOW()");
}
diff --git a/schema/ttrss_schema_mysql.sql b/schema/ttrss_schema_mysql.sql
index ae736cb6..87742192 100644
--- a/schema/ttrss_schema_mysql.sql
+++ b/schema/ttrss_schema_mysql.sql
@@ -1,3 +1,4 @@
+drop table if exists ttrss_tags;
drop table if exists ttrss_entries;
drop table if exists ttrss_feeds;
@@ -69,3 +70,7 @@ create table ttrss_labels (id integer primary key auto_increment,
insert into ttrss_labels (sql_exp,description) values ('unread = true',
'Unread articles');
+create table ttrss_tags (id integer primary key auto_increment,
+ tag_name varchar(250) not null,
+ post_id integer references ttrss_entries(id)) TYPE=InnoDB;
+
diff --git a/schema/ttrss_schema_pgsql.sql b/schema/ttrss_schema_pgsql.sql
index 31183173..3c084996 100644
--- a/schema/ttrss_schema_pgsql.sql
+++ b/schema/ttrss_schema_pgsql.sql
@@ -1,3 +1,4 @@
+drop table ttrss_tags;
drop table ttrss_entries;
drop table ttrss_feeds;
@@ -28,7 +29,7 @@ insert into ttrss_feeds (title,feed_url) values ('Technocrat.net',
'http://syndication.technocrat.net/rss');
create table ttrss_entries (id serial not null primary key,
- feed_id int references ttrss_feeds(id) not null,
+ feed_id int references ttrss_feeds(id) ON DELETE CASCADE not null,
updated timestamp not null,
title varchar(250) not null,
guid varchar(300) not null unique,
@@ -68,3 +69,7 @@ create table ttrss_labels (id serial primary key,
insert into ttrss_labels (sql_exp,description) values ('unread = true',
'Unread articles');
+create table ttrss_tags (id serial primary key,
+ tag_name varchar(250) not null,
+ post_id integer references ttrss_entries(id) ON DELETE CASCADE not null);
+