diff options
author | Andrew Dolgov <[email protected]> | 2005-09-09 05:52:36 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2005-09-09 05:52:36 +0100 |
commit | eb36b4eb5526fca5ea05b635d828e290687b4ea3 (patch) | |
tree | 413bbd74158060d33d9a4f954a5594e073e892ad /functions.php | |
parent | e9e4c6e23a55bc6633293da4a25ea979e8080140 (diff) |
start work on support for technorati tags, schema uses cascade deletes for pgsql
Diffstat (limited to 'functions.php')
-rw-r--r-- | functions.php | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/functions.php b/functions.php index c032364d7..f4628a812 100644 --- a/functions.php +++ b/functions.php @@ -269,12 +269,47 @@ $result = db_query($link, $query); } } - } - if ($result) { - $result = db_query($link, "UPDATE ttrss_feeds SET last_updated = NOW()"); + /* taaaags */ + // <a href="http://technorati.com/tag/Xorg" rel="tag">Xorg</a>, // + + $entry_tags = null; + + preg_match_all("/<a.*?rel=.tag.*?>([^>]+)<\/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<br>"; + + db_query($link, "INSERT INTO ttrss_tags (tag_name,post_id) + VALUES ('$tag', '$entry_id')"); + } + } + } } + db_query($link, "UPDATE ttrss_feeds SET last_updated = NOW()"); + } db_query($link, "COMMIT"); |