From 7e3634d91891d5ab85f8d0b021bc296d728c92c7 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 20 Aug 2006 13:33:37 +0100 Subject: [PATCH] add experimental digest code --- backend.php | 15 +++++++++++++-- functions.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/backend.php b/backend.php index 11e54645..9b38303d 100644 --- a/backend.php +++ b/backend.php @@ -27,6 +27,8 @@ $err_msg = check_configuration_variables(); + $print_exec_time = true; + if ($err_msg) { header("Content-Type: application/xml"); print_error_xml(9, $err_msg); die; @@ -3880,7 +3882,7 @@ if ($op == "getUnread") { $login = db_escape_string($_GET["login"]); - header("Content-Type: text/plain"); + header("Content-Type: text/plain; charset=utf-8"); $result = db_query($link, "SELECT id FROM ttrss_users WHERE login = '$login'"); @@ -3890,11 +3892,20 @@ } else { print "Error: user not found"; } + + $print_exec_time = false; + } + + if ($op == "digestTest") { + header("Content-Type: text/plain"); + echo prepare_headlines_digest($link, $_SESSION["uid"]); + $print_exec_time = false; + } db_close($link); ?> - + diff --git a/functions.php b/functions.php index e2f6c261..7e6a134f 100644 --- a/functions.php +++ b/functions.php @@ -2377,6 +2377,56 @@ return $res; } + function prepare_headlines_digest($link, $user_id, $days = 1, $limit = 100) { + $tmp = "New headlines for last 24 hours, as of " . date("Y/m/d H:m") . "\n"; + $tmp .= "=======================================================\n\n"; + + if (DB_TYPE == "pgsql") { + $interval_query = "ttrss_entries.date_entered < NOW() - INTERVAL '$days days'"; + } else if (DB_TYPE == "mysql") { + $interval_query = "ttrss_entries.date_entered > DATE_SUB(NOW(), INTERVAL $days DAY)"; + } + + $result = db_query($link, "SELECT ttrss_entries.title, + ttrss_feeds.title AS feed_title, + date_entered, + link, + SUBSTRING(last_updated,1,19) AS last_updated + FROM + ttrss_user_entries,ttrss_entries,ttrss_feeds + WHERE + ref_id = ttrss_entries.id AND feed_id = ttrss_feeds.id + AND $interval_query + AND unread = true ORDER BY ttrss_feeds.title, date_entered DESC + LIMIT $limit"); + + $cur_feed_title = ""; + + while ($line = db_fetch_assoc($result)) { + $updated = smart_date_time(strtotime($line["last_updated"])); + $feed_title = $line["feed_title"]; + + if ($cur_feed_title != $feed_title) { + $cur_feed_title = $feed_title; + + $tmp .= "$feed_title\n\n"; + } + + $tmp .= " * " . trim($line["title"]) . " - $updated\n"; + $tmp .= " " . trim($line["link"]) . "\n"; + $tmp .= "\n"; + } + + $tmp .= "--- \n"; + $tmp .= "You have been sent this email because you have enabled\n". + "daily digests in Tiny Tiny RSS at " . DIGEST_HOSTNAME . "\n\n". + "To unsubscribe, visit your configuration options or contact\n". + "instance owner.\n"; + + + return $tmp; + } + function check_for_update($link) { $releases_feed = "http://tt-rss.spb.ru/releases.rss"; -- 2.39.5