", $str); $res = preg_replace('/<\/script>/i', "
", $res); return $res; } function send_headlines_digests($link, $limit = 100) { if (!DIGEST_ENABLE) return false; $user_limit = DIGEST_EMAIL_LIMIT; $days = DIGEST_DAYS_BACK; print "Sending digests, batch of max $user_limit users, days = $days, headline limit = $limit\n\n"; if (DB_TYPE == "pgsql") { $interval_query = "last_digest_sent < NOW() - INTERVAL '$days days'"; } else if (DB_TYPE == "mysql") { $interval_query = "last_digest_sent < DATE_SUB(NOW(), INTERVAL $days DAY)"; } $result = db_query($link, "SELECT id,email FROM ttrss_users WHERE email != '' AND (last_digest_sent IS NULL OR $interval_query)"); while ($line = db_fetch_assoc($result)) { if (get_pref($link, 'DIGEST_ENABLE', $line['id'], false)) { print "Sending digest for UID:" . $line['id'] . " - " . $line["email"] . " ... "; $tuple = prepare_headlines_digest($link, $line["id"], $days, $limit); $digest = $tuple[0]; $headlines_count = $tuple[1]; if ($headlines_count > 0) { $rc = mail($line["login"] . " <" . $line["email"] . ">", "[tt-rss] New headlines for last 24 hours", $digest, "From: " . MAIL_FROM . "\n". "Content-Type: text/plain; charset=\"utf-8\"\n". "Content-Transfer-Encoding: 8bit\n"); print "RC=$rc\n"; db_query($link, "UPDATE ttrss_users SET last_digest_sent = NOW() WHERE id = " . $line["id"]); } else { print "No headlines\n"; } } } // $digest = prepare_headlines_digest($link, $user_id, $days, $limit); } 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 include_in_digest = true AND $interval_query AND ttrss_user_entries.owner_uid = $user_id AND unread = true ORDER BY ttrss_feeds.title, date_entered DESC LIMIT $limit"); $cur_feed_title = ""; $headlines_count = db_num_rows($result); 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 daily digests in Tiny Tiny RSS at " . DIGEST_HOSTNAME . "\n". "To unsubscribe, visit your configuration options or contact instance owner.\n"; return array($tmp, $headlines_count); } function check_for_update($link) { $releases_feed = "http://tt-rss.spb.ru/releases.rss"; if (!CHECK_FOR_NEW_VERSION || $_SESSION["access_level"] < 10) { return; } error_reporting(0); $rss = fetch_rss($releases_feed); error_reporting (DEFAULT_ERROR_LEVEL); if ($rss) { $items = $rss->items; if (!$items || !is_array($items)) $items = $rss->entries; if (!$items || !is_array($items)) $items = $rss; if (!is_array($items) || count($items) == 0) { return; } $last_item = $items[0]; $last_version = trim(preg_replace("/(Milestone)|(completed)/", "", $last_item["title"])); $cur_version = preg_replace("/\.99/", "", VERSION); $release_url = sanitize_rss($last_item["link"]); $content = sanitize_rss($last_item["description"]); if ($cur_version != $last_version) { return ""; } } } ?>