Disabled script: ", $res); $res = preg_replace('/<\/script.*?>/i', "
", $res); /* $res = preg_replace('/(Disabled html object - flash or other embedded content)
", $res); */ return $res; } function send_headlines_digests($link, $limit = 100) { if (!DIGEST_ENABLE) return false; $user_limit = DIGEST_EMAIL_LIMIT; $days = 1; 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, $brief_fmt = true) { $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; } $latest_item = $items[0]; $latest_version = trim(preg_replace("/(Milestone)|(completed)/", "", $latest_item["title"])); $release_url = sanitize_rss($latest_item["link"]); $content = sanitize_rss($latest_item["description"]); if (version_compare(VERSION, $latest_version) == -1) { if ($brief_fmt) { return format_notice(" New version of Tiny-Tiny RSS ($latest_version) is available (click for details)
| ";
}
print "
";
} else {
// old style subtoolbar:
print "". __('Select:')." ".__('All').", ".__('Unread').", ".__('None')." ". __('Toggle:')." ".__('Unread').", ".__('Starred')." ". __('Mark as read:')." ".__('Page').", ".__('Feed').""; if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) { print " ".__('Convert to label').""; } print " | "; } /* if ($search && $feed_id >= 0 && get_pref($link, 'ENABLE_LABELS') && GLOBAL_ENABLE_LABELS) { print "".__('Convert to Label')." | "; } */ print ""; if ($feed_site_url) { if (!$bottom) { $target = "target=\"_blank\""; } print "$feed_title"; } else { print $feed_title; } if ($search) { $search_q = "&q=$search&m=$match_on&smode=$search_mode"; } if ($user_page_offset > 1) { print " [$user_page_offset] "; } if (!$bottom) { print " "; } print " | "; print "
$update_pic | "; print ""; print " | $marked_pic | "; if ($line["feed_title"]) { print "$content_link | "; print "". $line["feed_title"]." | "; } else { print ""; print "" . $line["title"]; if (get_pref($link, 'SHOW_CONTENT_PREVIEW')) { if ($content_preview) { print " - $content_preview"; } } print ""; print " | "; } print "