diff options
38 files changed, 1224 insertions, 1720 deletions
diff --git a/classes/api.php b/classes/api.php index e505dcc91..45e4d3062 100755 --- a/classes/api.php +++ b/classes/api.php @@ -379,7 +379,7 @@ class API extends Handler { $article = $p->hook_render_article_api(array("article" => $article)); } - $article['content'] = rewrite_cached_urls($article['content']); + $article['content'] = DiskCache::rewriteUrls($article['content']); array_push($articles, $article); @@ -801,7 +801,7 @@ class API extends Handler { $headline_row = $p->hook_render_article_api(array("headline" => $headline_row)); } - $headline_row['content'] = rewrite_cached_urls($headline_row['content']); + $headline_row['content'] = DiskCache::rewriteUrls($headline_row['content']); array_push($headlines, $headline_row); } diff --git a/classes/article.php b/classes/article.php index c23a1b820..67b1a4a05 100755 --- a/classes/article.php +++ b/classes/article.php @@ -306,9 +306,9 @@ class Article extends Handler_Protected { $sth->execute([$int_id, $_SESSION['uid']]); foreach ($tags as $tag) { - $tag = sanitize_tag($tag); + $tag = Article::sanitize_tag($tag); - if (!tag_is_valid($tag)) { + if (!Article::tag_is_valid($tag)) { continue; } @@ -446,7 +446,7 @@ class Article extends Handler_Protected { foreach ($result as $line) { foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ENCLOSURE_ENTRY) as $plugin) { - $line = $plugin->hook_enclosure_entry($line); + $line = $plugin->hook_enclosure_entry($line, $id); } $url = $line["content_url"]; @@ -673,10 +673,12 @@ class Article extends Handler_Protected { $rv = array(); + $cache = new DiskCache("images"); + while ($line = $sth->fetch()) { - if (file_exists(CACHE_DIR . '/images/' . sha1($line["content_url"]))) { - $line["content_url"] = get_self_url_prefix() . '/public.php?op=cached_url&hash=' . sha1($line["content_url"]); + if ($cache->exists(sha1($line["content_url"]))) { + $line["content_url"] = $cache->getUrl(sha1($line["content_url"])); } array_push($rv, $line); @@ -800,4 +802,25 @@ class Article extends Handler_Protected { return $rv; } + static function sanitize_tag($tag) { + $tag = trim($tag); + + $tag = mb_strtolower($tag, 'utf-8'); + + $tag = preg_replace('/[,\'\"\+\>\<]/', "", $tag); + + if (DB_TYPE == "mysql") { + $tag = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $tag); + } + + return $tag; + } + + static function tag_is_valid($tag) { + if (!$tag || is_numeric($tag) || mb_strlen($tag) > 250) + return false; + + return true; + } + } diff --git a/classes/diskcache.php b/classes/diskcache.php new file mode 100644 index 000000000..2d46ced4c --- /dev/null +++ b/classes/diskcache.php @@ -0,0 +1,149 @@ +<?php +class DiskCache { + private $dir; + + public function __construct($dir) { + $this->dir = CACHE_DIR . "/" . clean_filename($dir); + } + + public function getDir() { + return $this->dir; + } + + public function makeDir() { + if (!is_dir($this->dir)) { + return mkdir($this->dir); + } + } + + public function isWritable($filename = "") { + if ($filename) { + if (file_exists($this->getFullPath($filename))) + return is_writable($this->getFullPath($filename)); + else + return is_writable($this->dir); + } else { + return is_writable($this->dir); + } + } + + public function exists($filename) { + return file_exists($this->getFullPath($filename)); + } + + public function getSize($filename) { + if ($this->exists($filename)) + return filesize($this->getFullPath($filename)); + else + return -1; + } + + public function getFullPath($filename) { + $filename = clean_filename($filename); + + return $this->dir . "/" . $filename; + } + + public function put($filename, $data) { + return file_put_contents($this->getFullPath($filename), $data); + } + + public function touch($filename) { + return touch($this->getFullPath($filename)); + } + + public function get($filename) { + if ($this->exists($filename)) + return file_get_contents($this->getFullPath($filename)); + else + return null; + } + + public function getMimeType($filename) { + if ($this->exists($filename)) + return mime_content_type($this->getFullPath($filename)); + else + return null; + } + + public function send($filename) { + header("Content-Disposition: inline; filename=\"$filename\""); + + return send_local_file($this->getFullPath($filename)); + } + + public function getUrl($filename) { + return get_self_url_prefix() . "/public.php?op=cached_url&file=" . basename($this->dir) . "/" . $filename; + } + + // check for locally cached (media) URLs and rewrite to local versions + // this is called separately after sanitize() and plugin render article hooks to allow + // plugins work on original source URLs used before caching + static public function rewriteUrls($str) + { + $res = trim($str); + if (!$res) return ''; + + $doc = new DOMDocument(); + if ($doc->loadHTML('<?xml encoding="UTF-8">' . $res)) { + $xpath = new DOMXPath($doc); + $cache = new DiskCache("images"); + + $entries = $xpath->query('(//img[@src]|//picture/source[@src]|//video[@poster]|//video/source[@src]|//audio/source[@src])'); + + $need_saving = false; + + foreach ($entries as $entry) { + + if ($entry->hasAttribute('src') || $entry->hasAttribute('poster')) { + + // should be already absolutized because this is called after sanitize() + $src = $entry->hasAttribute('poster') ? $entry->getAttribute('poster') : $entry->getAttribute('src'); + $cached_filename = sha1($src); + + if ($cache->exists($cached_filename)) { + + $src = $cache->getUrl(sha1($src)); + + if ($entry->hasAttribute('poster')) + $entry->setAttribute('poster', $src); + else + $entry->setAttribute('src', $src); + + $need_saving = true; + } + } + } + + if ($need_saving) { + $doc->removeChild($doc->firstChild); //remove doctype + $res = $doc->saveHTML(); + } + } + return $res; + } + + static function expire() { + $dirs = array_filter(glob(CACHE_DIR . "/*"), "is_dir"); + + foreach ($dirs as $cache_dir) { + $num_deleted = 0; + + if (is_writable($cache_dir) && !file_exists("$cache_dir/.no-auto-expiry")) { + $files = glob("$cache_dir/*"); + + if ($files) { + foreach ($files as $file) { + if (time() - filemtime($file) > 86400*CACHE_MAX_DAYS) { + unlink($file); + + ++$num_deleted; + } + } + } + + Debug::log("Expired $cache_dir: removed $num_deleted files."); + } + } + } +} diff --git a/classes/dlg.php b/classes/dlg.php index 4489af51a..d3e82ee59 100644 --- a/classes/dlg.php +++ b/classes/dlg.php @@ -161,7 +161,7 @@ class Dlg extends Handler_Protected { $feed_id = $this->params[0]; $is_cat = (bool) $this->params[1]; - $key = get_feed_access_key($feed_id, $is_cat); + $key = Feeds::get_feed_access_key($feed_id, $is_cat); $url_path = htmlspecialchars($this->params[2]) . "&key=" . $key; diff --git a/classes/feeditem/common.php b/classes/feeditem/common.php index de8d3aefa..3193ed273 100755 --- a/classes/feeditem/common.php +++ b/classes/feeditem/common.php @@ -41,11 +41,14 @@ abstract class FeedItem_Common extends FeedItem { return clean($author->nodeValue); } - $author = $this->xpath->query("dc:creator", $this->elem)->item(0); + $author_elems = $this->xpath->query("dc:creator", $this->elem); + $authors = []; - if ($author) { - return clean($author->nodeValue); + foreach ($author_elems as $author) { + array_push($authors, clean($author->nodeValue)); } + + return implode(", ", $authors); } function get_comments_url() { diff --git a/classes/feeds.php b/classes/feeds.php index 86fa45ea7..b89f4e4ca 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -307,7 +307,7 @@ class Feeds extends Handler_Protected { $line = $p->hook_render_article_cdm($line); } - $line['content'] = rewrite_cached_urls($line['content']); + $line['content'] = DiskCache::rewriteUrls($line['content']); if ($line['note']) $line['note'] = Article::format_article_note($id, $line['note']); @@ -860,7 +860,7 @@ class Feeds extends Handler_Protected { // fall back in case of no plugins if (!$search_qpart) { - list($search_qpart, $search_words) = search_to_sql($search[0], $search[1]); + list($search_qpart, $search_words) = Feeds::search_to_sql($search[0], $search[1]); } } else { $search_qpart = "true"; @@ -1135,9 +1135,9 @@ class Feeds extends Handler_Protected { $pdo = Db::pdo(); - $url = fix_url($url); + $url = Feeds::fix_url($url); - if (!$url || !validate_feed_url($url)) return array("code" => 2); + if (!$url || !Feeds::validate_feed_url($url)) return array("code" => 2); $contents = @fetch_file_contents($url, false, $auth_login, $auth_pass); @@ -1153,8 +1153,8 @@ class Feeds extends Handler_Protected { return array("code" => 5, "message" => $fetch_last_error); } - if (mb_strpos($fetch_last_content_type, "html") !== FALSE && is_html($contents)) { - $feedUrls = get_feeds_from_html($url, $contents); + if (mb_strpos($fetch_last_content_type, "html") !== FALSE && Feeds::is_html($contents)) { + $feedUrls = Feeds::get_feeds_from_html($url, $contents); if (count($feedUrls) == 0) { return array("code" => 3); @@ -1456,7 +1456,7 @@ class Feeds extends Handler_Protected { // fall back in case of no plugins if (!$search_query_part) { - list($search_query_part, $search_words) = search_to_sql($search, $search_language); + list($search_query_part, $search_words) = Feeds::search_to_sql($search, $search_language); } if (DB_TYPE == "pgsql") { @@ -1683,6 +1683,13 @@ class Feeds extends Handler_Protected { $offset_query_part = ""; } + if ($start_ts) { + $start_ts_formatted = date("Y/m/d H:i:s", strtotime($start_ts)); + $start_ts_query_part = "date_entered >= '$start_ts_formatted' AND"; + } else { + $start_ts_query_part = ""; + } + if (is_numeric($feed)) { // proper override_order applied above if ($vfeed_query_part && !$ignore_vfeed_group && get_pref('VFEED_GROUP_BY_FEED', $owner_uid)) { @@ -1706,13 +1713,6 @@ class Feeds extends Handler_Protected { if ($vfeed_query_part) $vfeed_query_part .= "favicon_avg_color,"; - if ($start_ts) { - $start_ts_formatted = date("Y/m/d H:i:s", strtotime($start_ts)); - $start_ts_query_part = "date_entered >= '$start_ts_formatted' AND"; - } else { - $start_ts_query_part = ""; - } - $first_id = 0; $first_id_query_strategy_part = $query_strategy_part; @@ -1845,6 +1845,7 @@ class Feeds extends Handler_Protected { tag_name = ".$pdo->quote($feed)." AND $view_query_part $search_query_part + $start_ts_query_part $query_strategy_part ORDER BY $order_by $limit_query_part $offset_query_part"; @@ -1922,5 +1923,400 @@ class Feeds extends Handler_Protected { return $colormap[$sum]; } + static function get_feeds_from_html($url, $content) { + $url = Feeds::fix_url($url); + $baseUrl = substr($url, 0, strrpos($url, '/') + 1); + + $feedUrls = []; + + $doc = new DOMDocument(); + if ($doc->loadHTML($content)) { + $xpath = new DOMXPath($doc); + $entries = $xpath->query('/html/head/link[@rel="alternate" and '. + '(contains(@type,"rss") or contains(@type,"atom"))]|/html/head/link[@rel="feed"]'); + + foreach ($entries as $entry) { + if ($entry->hasAttribute('href')) { + $title = $entry->getAttribute('title'); + if ($title == '') { + $title = $entry->getAttribute('type'); + } + $feedUrl = rewrite_relative_url( + $baseUrl, $entry->getAttribute('href') + ); + $feedUrls[$feedUrl] = $title; + } + } + } + return $feedUrls; + } + + static function is_html($content) { + return preg_match("/<html|DOCTYPE html/i", substr($content, 0, 8192)) !== 0; + } + + static function validate_feed_url($url) { + $parts = parse_url($url); + + return ($parts['scheme'] == 'http' || $parts['scheme'] == 'feed' || $parts['scheme'] == 'https'); + } + + /** + * Fixes incomplete URLs by prepending "http://". + * Also replaces feed:// with http://, and + * prepends a trailing slash if the url is a domain name only. + * + * @param string $url Possibly incomplete URL + * + * @return string Fixed URL. + */ + static function fix_url($url) { + + // support schema-less urls + if (strpos($url, '//') === 0) { + $url = 'https:' . $url; + } + + if (strpos($url, '://') === false) { + $url = 'http://' . $url; + } else if (substr($url, 0, 5) == 'feed:') { + $url = 'http:' . substr($url, 5); + } + + //prepend slash if the URL has no slash in it + // "http://www.example" -> "http://www.example/" + if (strpos($url, '/', strpos($url, ':') + 3) === false) { + $url .= '/'; + } + + //convert IDNA hostname to punycode if possible + if (function_exists("idn_to_ascii")) { + $parts = parse_url($url); + if (mb_detect_encoding($parts['host']) != 'ASCII') + { + $parts['host'] = idn_to_ascii($parts['host']); + $url = build_url($parts); + } + } + + if ($url != "http:///") + return $url; + else + return ''; + } + + static function add_feed_category($feed_cat, $parent_cat_id = false, $order_id = 0) { + + if (!$feed_cat) return false; + + $feed_cat = mb_substr($feed_cat, 0, 250); + if (!$parent_cat_id) $parent_cat_id = null; + + $pdo = Db::pdo(); + $tr_in_progress = false; + + try { + $pdo->beginTransaction(); + } catch (Exception $e) { + $tr_in_progress = true; + } + + $sth = $pdo->prepare("SELECT id FROM ttrss_feed_categories + WHERE (parent_cat = :parent OR (:parent IS NULL AND parent_cat IS NULL)) + AND title = :title AND owner_uid = :uid"); + $sth->execute([':parent' => $parent_cat_id, ':title' => $feed_cat, ':uid' => $_SESSION['uid']]); + + if (!$sth->fetch()) { + + $sth = $pdo->prepare("INSERT INTO ttrss_feed_categories (owner_uid,title,parent_cat,order_id) + VALUES (?, ?, ?, ?)"); + $sth->execute([$_SESSION['uid'], $feed_cat, $parent_cat_id, (int)$order_id]); + + if (!$tr_in_progress) $pdo->commit(); + + return true; + } + + $pdo->commit(); + + return false; + } + + static function get_feed_access_key($feed_id, $is_cat, $owner_uid = false) { + + if (!$owner_uid) $owner_uid = $_SESSION["uid"]; + + $is_cat = bool_to_sql_bool($is_cat); + + $pdo = Db::pdo(); + + $sth = $pdo->prepare("SELECT access_key FROM ttrss_access_keys + WHERE feed_id = ? AND is_cat = ? + AND owner_uid = ?"); + $sth->execute([$feed_id, $is_cat, $owner_uid]); + + if ($row = $sth->fetch()) { + return $row["access_key"]; + } else { + $key = uniqid_short(); + + $sth = $pdo->prepare("INSERT INTO ttrss_access_keys + (access_key, feed_id, is_cat, owner_uid) + VALUES (?, ?, ?, ?)"); + + $sth->execute([$key, $feed_id, $is_cat, $owner_uid]); + + return $key; + } + } + + /** + * Purge a feed old posts. + * + * @param mixed $link A database connection. + * @param mixed $feed_id The id of the purged feed. + * @param mixed $purge_interval Olderness of purged posts. + * @param boolean $debug Set to True to enable the debug. False by default. + * @access public + * @return void + */ + static function purge_feed($feed_id, $purge_interval) { + + if (!$purge_interval) $purge_interval = Feeds::feed_purge_interval($feed_id); + + $pdo = Db::pdo(); + + $sth = $pdo->prepare("SELECT owner_uid FROM ttrss_feeds WHERE id = ?"); + $sth->execute([$feed_id]); + + $owner_uid = false; + + if ($row = $sth->fetch()) { + $owner_uid = $row["owner_uid"]; + } + + if ($purge_interval == -1 || !$purge_interval) { + if ($owner_uid) { + CCache::update($feed_id, $owner_uid); + } + return; + } + + if (!$owner_uid) return; + + if (FORCE_ARTICLE_PURGE == 0) { + $purge_unread = get_pref("PURGE_UNREAD_ARTICLES", + $owner_uid, false); + } else { + $purge_unread = true; + $purge_interval = FORCE_ARTICLE_PURGE; + } + + if (!$purge_unread) + $query_limit = " unread = false AND "; + else + $query_limit = ""; + + $purge_interval = (int) $purge_interval; + + if (DB_TYPE == "pgsql") { + $sth = $pdo->prepare("DELETE FROM ttrss_user_entries + USING ttrss_entries + WHERE ttrss_entries.id = ref_id AND + marked = false AND + feed_id = ? AND + $query_limit + ttrss_entries.date_updated < NOW() - INTERVAL '$purge_interval days'"); + $sth->execute([$feed_id]); + + } else { + $sth = $pdo->prepare("DELETE FROM ttrss_user_entries + USING ttrss_user_entries, ttrss_entries + WHERE ttrss_entries.id = ref_id AND + marked = false AND + feed_id = ? AND + $query_limit + ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); + $sth->execute([$feed_id]); + + } + + $rows = $sth->rowCount(); + + CCache::update($feed_id, $owner_uid); + + Debug::log("Purged feed $feed_id ($purge_interval): deleted $rows articles"); + + return $rows; + } + + static function feed_purge_interval($feed_id) { + + $pdo = DB::pdo(); + + $sth = $pdo->prepare("SELECT purge_interval, owner_uid FROM ttrss_feeds + WHERE id = ?"); + $sth->execute([$feed_id]); + + if ($row = $sth->fetch()) { + $purge_interval = $row["purge_interval"]; + $owner_uid = $row["owner_uid"]; + + if ($purge_interval == 0) $purge_interval = get_pref( + 'PURGE_OLD_DAYS', $owner_uid); + + return $purge_interval; + + } else { + return -1; + } + } + + static function search_to_sql($search, $search_language) { + + $keywords = str_getcsv(trim($search), " "); + $query_keywords = array(); + $search_words = array(); + $search_query_leftover = array(); + + $pdo = Db::pdo(); + + if ($search_language) + $search_language = $pdo->quote(mb_strtolower($search_language)); + else + $search_language = $pdo->quote("english"); + + foreach ($keywords as $k) { + if (strpos($k, "-") === 0) { + $k = substr($k, 1); + $not = "NOT"; + } else { + $not = ""; + } + + $commandpair = explode(":", mb_strtolower($k), 2); + + switch ($commandpair[0]) { + case "title": + if ($commandpair[1]) { + array_push($query_keywords, "($not (LOWER(ttrss_entries.title) LIKE ". + $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%') ."))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + array_push($search_words, $k); + } + break; + case "author": + if ($commandpair[1]) { + array_push($query_keywords, "($not (LOWER(author) LIKE ". + $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%')."))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + array_push($search_words, $k); + } + break; + case "note": + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))"); + else if ($commandpair[1] == "false") + array_push($query_keywords, "($not (note IS NULL OR note = ''))"); + else + array_push($query_keywords, "($not (LOWER(note) LIKE ". + $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%')."))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + if (!$not) array_push($search_words, $k); + } + break; + case "star": + + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (marked = true))"); + else + array_push($query_keywords, "($not (marked = false))"); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + if (!$not) array_push($search_words, $k); + } + break; + case "pub": + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (published = true))"); + else + array_push($query_keywords, "($not (published = false))"); + + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + if (!$not) array_push($search_words, $k); + } + break; + case "unread": + if ($commandpair[1]) { + if ($commandpair[1] == "true") + array_push($query_keywords, "($not (unread = true))"); + else + array_push($query_keywords, "($not (unread = false))"); + + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + if (!$not) array_push($search_words, $k); + } + break; + default: + if (strpos($k, "@") === 0) { + + $user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']); + $orig_ts = strtotime(substr($k, 1)); + $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC')); + + //$k = date("Y-m-d", strtotime(substr($k, 1))); + + array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')"); + } else { + + if (DB_TYPE == "pgsql") { + $k = mb_strtolower($k); + array_push($search_query_leftover, $not ? "!$k" : $k); + } else { + array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") + OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); + } + + if (!$not) array_push($search_words, $k); + } + } + } + + if (count($search_query_leftover) > 0) { + + if (DB_TYPE == "pgsql") { + + // if there's no joiners consider this a "simple" search and + // concatenate everything with &, otherwise don't try to mess with tsquery syntax + if (preg_match("/[&|]/", implode(" " , $search_query_leftover))) { + $tsquery = $pdo->quote(implode(" ", $search_query_leftover)); + } else { + $tsquery = $pdo->quote(implode(" & ", $search_query_leftover)); + } + + array_push($query_keywords, + "(tsvector_combined @@ to_tsquery($search_language, $tsquery))"); + } + + } + + $search_query_part = implode("AND", $query_keywords); + + return array($search_query_part, $search_words); + } } diff --git a/classes/handler/public.php b/classes/handler/public.php index 318cecd72..eb5363eab 100755 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -75,7 +75,7 @@ class Handler_Public extends Handler { $feed_self_url = get_self_url_prefix() . "/public.php?op=rss&id=$feed&key=" . - get_feed_access_key($feed, false, $owner_uid); + Feeds::get_feed_access_key($feed, false, $owner_uid); if (!$feed_site_url) $feed_site_url = get_self_url_prefix(); @@ -298,23 +298,25 @@ class Handler_Public extends Handler { function share() { $uuid = clean($_REQUEST["key"]); - $sth = $this->pdo->prepare("SELECT ref_id, owner_uid FROM ttrss_user_entries WHERE - uuid = ?"); - $sth->execute([$uuid]); + if ($uuid) { + $sth = $this->pdo->prepare("SELECT ref_id, owner_uid + FROM ttrss_user_entries WHERE uuid = ?"); + $sth->execute([$uuid]); - if ($row = $sth->fetch()) { - header("Content-Type: text/html"); + if ($row = $sth->fetch()) { + header("Content-Type: text/html"); - $id = $row["ref_id"]; - $owner_uid = $row["owner_uid"]; + $id = $row["ref_id"]; + $owner_uid = $row["owner_uid"]; - print $this->format_article($id, $owner_uid); + print $this->format_article($id, $owner_uid); - } else { - header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); - print "Article not found."; + return; + } } + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); + print "Article not found."; } private function get_article_image($enclosures, $content, $site_url) { @@ -380,7 +382,7 @@ class Handler_Public extends Handler { $line = $p->hook_render_article($line); } - $line['content'] = rewrite_cached_urls($line['content']); + $line['content'] = DiskCache::rewriteUrls($line['content']); $enclosures = Article::get_article_enclosures($line["id"]); @@ -728,18 +730,6 @@ class Handler_Public extends Handler { } } - /* function subtest() { - header("Content-type: text/plain; charset=utf-8"); - - $url = clean($_REQUEST["url"]); - - print "$url\n\n"; - - - print_r(get_feeds_from_html($url, fetch_file_contents($url))); - - } */ - function subscribe() { if (SINGLE_USER_MODE) { login_sequence(); @@ -1212,24 +1202,18 @@ class Handler_Public extends Handler { } function cached_url() { - @$req_filename = basename($_GET['hash']); - - // we don't need an extension to find the file, hash is a complete URL - $hash = preg_replace("/\.[^\.]*$/", "", $req_filename); - - if ($hash) { - - $filename = CACHE_DIR . '/images/' . $hash; + list ($cache_dir, $filename) = explode("/", $_GET["file"], 2); - if (file_exists($filename)) { - header("Content-Disposition: inline; filename=\"$req_filename\""); + // we do not allow files with extensions at the moment + $filename = str_replace(".", "", $filename); - send_local_file($filename); + $cache = new DiskCache($cache_dir); - } else { - header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); - echo "File not found."; - } + if ($cache->exists($filename)) { + $cache->send($filename); + } else { + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); + echo "File not found."; } } diff --git a/classes/logger/sql.php b/classes/logger/sql.php index 352d71324..989539e5d 100755 --- a/classes/logger/sql.php +++ b/classes/logger/sql.php @@ -12,8 +12,8 @@ class Logger_SQL { $owner_uid = $_SESSION["uid"] ? $_SESSION["uid"] : null; - if (DB_TYPE == "mysql") - $context = substr($context, 0, 65534); + // limit context length, DOMDocument dumps entire XML in here sometimes, which may be huge + $context = mb_substr($context, 0, 8192); // passed error message may contain invalid unicode characters, failing to insert an error here // would break the execution entirely by generating an actual fatal error instead of a E_WARNING etc diff --git a/classes/opml.php b/classes/opml.php index 720798065..6982aea27 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -31,7 +31,7 @@ class Opml extends Handler_Protected { <body class='claro ttrss_utility'> <h1>".__('OPML Utility')."</h1><div class='content'>"; - add_feed_category("Imported feeds"); + Feeds::add_feed_category("Imported feeds"); $this->opml_notice(__("Importing OPML...")); @@ -515,7 +515,7 @@ class Opml extends Handler_Protected { $order_id = (int) $root_node->attributes->getNamedItem('ttrssSortOrder')->nodeValue; if (!$order_id) $order_id = 0; - add_feed_category($cat_title, $parent_id, $order_id); + Feeds::add_feed_category($cat_title, $parent_id, $order_id); $cat_id = $this->get_feed_category($cat_title, $parent_id); } @@ -627,7 +627,7 @@ class Opml extends Handler_Protected { $url_path = get_self_url_prefix(); $url_path .= "/opml.php?op=publish&key=" . - get_feed_access_key('OPML:Publish', false, $_SESSION["uid"]); + Feeds::get_feed_access_key('OPML:Publish', false, $_SESSION["uid"]); return $url_path; } diff --git a/classes/pluginhost.php b/classes/pluginhost.php index a3c12ecae..001d5bae2 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -470,4 +470,8 @@ class PluginHost { function get_filter_actions() { return $this->plugin_actions; } + + function get_owner_uid() { + return $this->owner_uid; + } } diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 6cbf15a58..c55affd77 100755 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -1166,7 +1166,7 @@ class Pref_Feeds extends Handler_Protected { function addCat() { $feed_cat = trim(clean($_REQUEST["cat"])); - add_feed_category($feed_cat); + Feeds::add_feed_category($feed_cat); } function index() { @@ -1708,7 +1708,7 @@ class Pref_Feeds extends Handler_Protected { foreach ($feeds as $feed) { $feed = trim($feed); - if (validate_feed_url($feed)) { + if (Feeds::validate_feed_url($feed)) { $this->pdo->beginTransaction(); @@ -1750,7 +1750,7 @@ class Pref_Feeds extends Handler_Protected { WHERE feed_id = ? AND is_cat = ? AND owner_uid = ?"); $sth->execute([$feed_id, bool_to_sql_bool($is_cat), $owner_uid]); - return get_feed_access_key($feed_id, $is_cat, $owner_uid); + return Feeds::get_feed_access_key($feed_id, $is_cat, $owner_uid); } // Silent diff --git a/classes/pref/filters.php b/classes/pref/filters.php index 041951b35..a3a0ce77f 100755 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -976,13 +976,14 @@ class Pref_Filters extends Handler_Protected { print "<section>"; print "<input dojoType=\"dijit.form.ValidationTextBox\" - required=\"true\" id=\"filterDlg_regExp\" - style=\"font-size : 16px; width : 20em;\" + required=\"true\" id=\"filterDlg_regExp\" + onchange='Filters.filterDlgCheckRegExp(this)' + onblur='Filters.filterDlgCheckRegExp(this)' + onfocus='Filters.filterDlgCheckRegExp(this)' + style=\"font-size : 16px; width : 500px\" name=\"reg_exp\" value=\"$reg_exp\"/>"; - print "<div dojoType=\"dijit.Tooltip\" connectId=\"filterDlg_regExp\" position=\"below\"> - ".__("Regular expression, without outer delimiters (i.e. slashes)")." - </div>"; + print "<div dojoType='dijit.Tooltip' id='filterDlg_regExp_tip' connectId='filterDlg_regExp' position='below'></div>"; print "<fieldset>"; print "<label class='checkbox'><input id=\"filterDlg_inverse\" dojoType=\"dijit.form.CheckBox\" diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index cb19998ce..e7e7a365e 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -224,7 +224,7 @@ class Pref_Prefs extends Handler_Protected { $_SESSION["prefs_op_result"] = ""; print "<div dojoType='dijit.layout.AccordionContainer' region='center'>"; - print "<div dojoType='dijit.layout.AccordionPane' + print "<div dojoType='dijit.layout.AccordionPane' title=\"<i class='material-icons'>person</i> ".__('Personal data / Authentication')."\">"; print "<div dojoType='dijit.layout.TabContainer'>"; @@ -373,7 +373,7 @@ class Pref_Prefs extends Handler_Protected { evt.preventDefault(); if (this.validate()) { Notify.progress('Disabling OTP', true); - + new Ajax.Request('backend.php', { parameters: dojo.objectToQuery(this.getValues()), onComplete: function(transport) { @@ -469,7 +469,7 @@ class Pref_Prefs extends Handler_Protected { print "</div>"; #pane - print "<div dojoType='dijit.layout.AccordionPane' selected='true' + print "<div dojoType='dijit.layout.AccordionPane' selected='true' title=\"<i class='material-icons'>settings</i> ".__('Preferences')."\">"; print "<form dojoType='dijit.form.Form' id='changeSettingsForm'>"; @@ -678,8 +678,8 @@ class Pref_Prefs extends Handler_Protected { onclick=\"dijit.byId('SSL_CERT_SERIAL').attr('value', '')\">" . __('Clear') . "</button>"; - print "<button dojoType='dijit.form.Button' class='alt-info' - onclick='window.open(\"https://tt-rss.org/wiki/SSL+Certificate+Authentication\")'> + print "<button dojoType='dijit.form.Button' class='alt-info' + onclick='window.open(\"https://tt-rss.org/wiki/SSL%20Certificate%20Authentication\")'> <i class='material-icons'>help</i> ".__("More info...")."</button>"; } else if ($pref_name == 'DIGEST_PREFERRED_TIME') { @@ -741,7 +741,7 @@ class Pref_Prefs extends Handler_Protected { print "</div>"; #pane - print "<div dojoType=\"dijit.layout.AccordionPane\" + print "<div dojoType=\"dijit.layout.AccordionPane\" title=\"<i class='material-icons'>extension</i> ".__('Plugins')."\">"; print "<form dojoType=\"dijit.form.Form\" id=\"changePluginsForm\">"; @@ -801,7 +801,7 @@ class Pref_Prefs extends Handler_Protected { ".htmlspecialchars($about[1]). "</label>"; if (@$about[4]) { - print "<button dojoType='dijit.form.Button' class='alt-info' + print "<button dojoType='dijit.form.Button' class='alt-info' onclick='window.open(\"".htmlspecialchars($about[4])."\")'> <i class='material-icons'>open_in_new</i> ".__("More info...")."</button>"; } @@ -840,7 +840,7 @@ class Pref_Prefs extends Handler_Protected { if (count($tmppluginhost->get_all($plugin)) > 0) { if (in_array($name, $system_enabled) || in_array($name, $user_enabled)) { - print " <button dojoType='dijit.form.Button' + print " <button dojoType='dijit.form.Button' onclick=\"Helpers.clearPluginData('$name')\"> <i class='material-icons'>clear</i> ".__("Clear data")."</button>"; } diff --git a/classes/pref/system.php b/classes/pref/system.php index f36fd07bb..d0f8a8273 100644 --- a/classes/pref/system.php +++ b/classes/pref/system.php @@ -54,7 +54,7 @@ class Pref_System extends Handler_Protected { </tr>"; while ($line = $res->fetch()) { - print "<tr class=\"errrow\">"; + print "<tr>"; foreach ($line as $k => $v) { $line[$k] = htmlspecialchars($v); diff --git a/classes/pref/users.php b/classes/pref/users.php index 680290b74..851d4fa9e 100644 --- a/classes/pref/users.php +++ b/classes/pref/users.php @@ -362,7 +362,7 @@ class Pref_Users extends Handler_Protected { print "</div>"; #pane print "<div style='padding : 0px' dojoType='dijit.layout.ContentPane' region='center'>"; - $sort = validate_field($sort, + $sort = $this->validate_field($sort, ["login", "access_level", "created", "num_feeds", "created", "last_login"], "login"); if ($sort != "login") $sort = "$sort DESC"; @@ -435,4 +435,12 @@ class Pref_Users extends Handler_Protected { print "</div>"; #container } - } + + function validate_field($string, $allowed, $default = "") { + if (in_array($string, $allowed)) + return $string; + else + return $default; + } + +} diff --git a/classes/rpc.php b/classes/rpc.php index 725ca9622..8736cbb65 100755 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -591,7 +591,7 @@ class RPC extends Handler_Protected { $rv = []; if (CHECK_FOR_UPDATES && $_SESSION["access_level"] >= 10 && defined("GIT_VERSION_TIMESTAMP")) { - $content = @fetch_file_contents(["url" => "https://tt-rss.org/version.json"]); + $content = @fetch_file_contents(["url" => "https://srv.tt-rss.org/version.json"]); if ($content) { $content = json_decode($content, true); diff --git a/classes/rssutils.php b/classes/rssutils.php index 68e0255ed..fe4c0a8a3 100755 --- a/classes/rssutils.php +++ b/classes/rssutils.php @@ -507,7 +507,7 @@ class RSSUtils { Debug::log("loading filters & labels...", Debug::$LOG_VERBOSE); - $filters = load_filters($feed, $owner_uid); + $filters = RSSUtils::load_filters($feed, $owner_uid); if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) { print_r($filters); @@ -808,7 +808,7 @@ class RSSUtils { Debug::log("force catchup: $entry_force_catchup", Debug::$LOG_VERBOSE); - if ($cache_images && is_writable(CACHE_DIR . '/images')) + if ($cache_images) RSSUtils::cache_media($entry_content, $site_url); $csth = $pdo->prepare("SELECT id FROM ttrss_entries @@ -871,7 +871,7 @@ class RSSUtils { $entry_ref_id = $ref_id; if (RSSUtils::find_article_filter($article_filters, "filter")) { - Debug::log("article is filtered out, nothing to do."); + Debug::log("article is filtered out, nothing to do.", Debug::$LOG_VERBOSE); $pdo->commit(); continue; } @@ -1033,7 +1033,7 @@ class RSSUtils { } } - if ($cache_images && is_writable(CACHE_DIR . '/images')) + if ($cache_images) RSSUtils::cache_enclosures($enclosures, $site_url); if (Debug::get_loglevel() >= Debug::$LOG_EXTENDED) { @@ -1071,7 +1071,7 @@ class RSSUtils { $manual_tags = trim_array(explode(",", $f["param"])); foreach ($manual_tags as $tag) { - if (tag_is_valid($tag)) { + if (Article::tag_is_valid($tag)) { array_push($entry_tags, $tag); } } @@ -1115,9 +1115,9 @@ class RSSUtils { foreach ($filtered_tags as $tag) { - $tag = sanitize_tag($tag); + $tag = Article::sanitize_tag($tag); - if (!tag_is_valid($tag)) continue; + if (!Article::tag_is_valid($tag)) continue; $tsth->execute([$tag, $entry_int_id, $owner_uid]); @@ -1147,7 +1147,7 @@ class RSSUtils { Debug::log("purging feed...", Debug::$LOG_VERBOSE); - purge_feed($feed, 0); + Feeds::purge_feed($feed, 0); $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_updated = NOW(), last_unconditional = NOW(), last_error = '' WHERE id = ?"); @@ -1181,56 +1181,62 @@ class RSSUtils { } static function cache_enclosures($enclosures, $site_url) { - foreach ($enclosures as $enc) { + $cache = new DiskCache("images"); - if (preg_match("/(image|audio|video)/", $enc[1])) { + if ($cache->isWritable()) { + foreach ($enclosures as $enc) { - $src = rewrite_relative_url($site_url, $enc[0]); + if (preg_match("/(image|audio|video)/", $enc[1])) { + $src = rewrite_relative_url($site_url, $enc[0]); - $local_filename = CACHE_DIR . "/images/" . sha1($src); + $local_filename = sha1($src); - Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::$LOG_VERBOSE); + Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::$LOG_VERBOSE); - if (!file_exists($local_filename)) { - $file_content = fetch_file_contents($src); + if (!$cache->exists($local_filename)) { + $file_content = fetch_file_contents(array("url" => $src, "max_size" => MAX_CACHE_FILE_SIZE)); - if ($file_content && strlen($file_content) > MIN_CACHE_FILE_SIZE) { - file_put_contents($local_filename, $file_content); + if ($file_content) { + $cache->put($local_filename, $file_content); + } + } else if (is_writable($local_filename)) { + $cache->touch($local_filename); } - } else if (is_writable($local_filename)) { - touch($local_filename); } } } } static function cache_media($html, $site_url) { - libxml_use_internal_errors(true); + $cache = new DiskCache("images"); - $doc = new DOMDocument(); - $doc->loadHTML('<?xml encoding="UTF-8">' . $html); - $xpath = new DOMXPath($doc); + if ($cache->isWritable()) { + $doc = new DOMDocument(); + if ($doc->loadHTML($html)) { + $xpath = new DOMXPath($doc); - $entries = $xpath->query('(//img[@src])|(//video/source[@src])|(//audio/source[@src])'); + $entries = $xpath->query('(//img[@src])|(//video/source[@src])|(//audio/source[@src])'); - foreach ($entries as $entry) { - if ($entry->hasAttribute('src') && strpos($entry->getAttribute('src'), "data:") !== 0) { - $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); + foreach ($entries as $entry) { + if ($entry->hasAttribute('src') && strpos($entry->getAttribute('src'), "data:") !== 0) { + $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); - $local_filename = CACHE_DIR . "/images/" . sha1($src); + $local_filename = sha1($src); - Debug::log("cache_media: checking $src", Debug::$LOG_VERBOSE); + Debug::log("cache_media: checking $src", Debug::$LOG_VERBOSE); - if (!file_exists($local_filename)) { - Debug::log("cache_media: downloading: $src to $local_filename", Debug::$LOG_VERBOSE); + if (!$cache->exists($local_filename)) { + Debug::log("cache_media: downloading: $src to $local_filename", Debug::$LOG_VERBOSE); - $file_content = fetch_file_contents($src); + $file_content = fetch_file_contents(array("url" => $src, "max_size" => MAX_CACHE_FILE_SIZE)); - if ($file_content && strlen($file_content) > MIN_CACHE_FILE_SIZE) { - file_put_contents($local_filename, $file_content); + if ($file_content) { + $cache->put($local_filename, $file_content); + } + } else if ($cache->isWritable($local_filename)) { + $cache->touch($local_filename); + } } - } else if (is_writable($local_filename)) { - touch($local_filename); } } } @@ -1285,32 +1291,6 @@ class RSSUtils { Debug::log("Removed $num_deleted old lock files."); } - static function expire_cached_files() { - foreach (array("feeds", "images", "export", "upload") as $dir) { - $cache_dir = CACHE_DIR . "/$dir"; - - Debug::log("Expiring $cache_dir", Debug::$LOG_VERBOSE); - - $num_deleted = 0; - - if (is_writable($cache_dir)) { - $files = glob("$cache_dir/*"); - - if ($files) { - foreach ($files as $file) { - if (time() - filemtime($file) > 86400*CACHE_MAX_DAYS) { - unlink($file); - - ++$num_deleted; - } - } - } - } - - Debug::log("$cache_dir: removed $num_deleted files."); - } - } - /** * Source: http://www.php.net/manual/en/function.parse-url.php#104527 * Returns the url query as associative array @@ -1499,7 +1479,8 @@ class RSSUtils { } static function housekeeping_common() { - RSSUtils::expire_cached_files(); + DiskCache::expire(); + RSSUtils::expire_lock_files(); RSSUtils::expire_error_log(); RSSUtils::expire_feed_archive(); @@ -1517,7 +1498,7 @@ class RSSUtils { $icon_file = ICONS_DIR . "/$feed.ico"; if (!file_exists($icon_file)) { - $favicon_url = get_favicon_url($site_url); + $favicon_url = RSSUtils::get_favicon_url($site_url); if ($favicon_url) { // Limiting to "image" type misses those served with text/plain @@ -1570,4 +1551,155 @@ class RSSUtils { return mb_strpos($feed_data, "\x1f" . "\x8b" . "\x08", 0, "US-ASCII") === 0; } + static function load_filters($feed_id, $owner_uid) { + $filters = array(); + + $feed_id = (int) $feed_id; + $cat_id = (int)Feeds::getFeedCategory($feed_id); + + if ($cat_id == 0) + $null_cat_qpart = "cat_id IS NULL OR"; + else + $null_cat_qpart = ""; + + $pdo = Db::pdo(); + + $sth = $pdo->prepare("SELECT * FROM ttrss_filters2 WHERE + owner_uid = ? AND enabled = true ORDER BY order_id, title"); + $sth->execute([$owner_uid]); + + $check_cats = array_merge( + Feeds::getParentCategories($cat_id, $owner_uid), + [$cat_id]); + + $check_cats_str = join(",", $check_cats); + $check_cats_fullids = array_map(function($a) { return "CAT:$a"; }, $check_cats); + + while ($line = $sth->fetch()) { + $filter_id = $line["id"]; + + $match_any_rule = sql_bool_to_bool($line["match_any_rule"]); + + $sth2 = $pdo->prepare("SELECT + r.reg_exp, r.inverse, r.feed_id, r.cat_id, r.cat_filter, r.match_on, t.name AS type_name + FROM ttrss_filters2_rules AS r, + ttrss_filter_types AS t + WHERE + (match_on IS NOT NULL OR + (($null_cat_qpart (cat_id IS NULL AND cat_filter = false) OR cat_id IN ($check_cats_str)) AND + (feed_id IS NULL OR feed_id = ?))) AND + filter_type = t.id AND filter_id = ?"); + $sth2->execute([$feed_id, $filter_id]); + + $rules = array(); + $actions = array(); + + while ($rule_line = $sth2->fetch()) { + # print_r($rule_line); + + if ($rule_line["match_on"]) { + $match_on = json_decode($rule_line["match_on"], true); + + if (in_array("0", $match_on) || in_array($feed_id, $match_on) || count(array_intersect($check_cats_fullids, $match_on)) > 0) { + + $rule = array(); + $rule["reg_exp"] = $rule_line["reg_exp"]; + $rule["type"] = $rule_line["type_name"]; + $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); + + array_push($rules, $rule); + } else if (!$match_any_rule) { + // this filter contains a rule that doesn't match to this feed/category combination + // thus filter has to be rejected + + $rules = []; + break; + } + + } else { + + $rule = array(); + $rule["reg_exp"] = $rule_line["reg_exp"]; + $rule["type"] = $rule_line["type_name"]; + $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); + + array_push($rules, $rule); + } + } + + if (count($rules) > 0) { + $sth2 = $pdo->prepare("SELECT a.action_param,t.name AS type_name + FROM ttrss_filters2_actions AS a, + ttrss_filter_actions AS t + WHERE + action_id = t.id AND filter_id = ?"); + $sth2->execute([$filter_id]); + + while ($action_line = $sth2->fetch()) { + # print_r($action_line); + + $action = array(); + $action["type"] = $action_line["type_name"]; + $action["param"] = $action_line["action_param"]; + + array_push($actions, $action); + } + } + + $filter = []; + $filter["id"] = $filter_id; + $filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]); + $filter["inverse"] = sql_bool_to_bool($line["inverse"]); + $filter["rules"] = $rules; + $filter["actions"] = $actions; + + if (count($rules) > 0 && count($actions) > 0) { + array_push($filters, $filter); + } + } + + return $filters; + } + + /** + * Try to determine the favicon URL for a feed. + * adapted from wordpress favicon plugin by Jeff Minard (http://thecodepro.com/) + * http://dev.wp-plugins.org/file/favatars/trunk/favatars.php + * + * @param string $url A feed or page URL + * @access public + * @return mixed The favicon URL, or false if none was found. + */ + static function get_favicon_url($url) { + + $favicon_url = false; + + if ($html = @fetch_file_contents($url)) { + + $doc = new DOMDocument(); + if ($doc->loadHTML($html)) { + $xpath = new DOMXPath($doc); + + $base = $xpath->query('/html/head/base[@href]'); + foreach ($base as $b) { + $url = rewrite_relative_url($url, $b->getAttribute("href")); + break; + } + + $entries = $xpath->query('/html/head/link[@rel="shortcut icon" or @rel="icon"]'); + if (count($entries) > 0) { + foreach ($entries as $entry) { + $favicon_url = rewrite_relative_url($url, $entry->getAttribute("href")); + break; + } + } + } + } + + if (!$favicon_url) + $favicon_url = rewrite_relative_url($url, "/favicon.ico"); + + return $favicon_url; + } + } diff --git a/css/default.css b/css/default.css index 9d6b81fd1..0de6b894a 100644 --- a/css/default.css +++ b/css/default.css @@ -1513,17 +1513,20 @@ body.ttrss_prefs fieldset.plugin label.description { body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox { margin-right: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td { +body.ttrss_prefs .prefErrorLog tr td { font-size: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td.errno { +body.ttrss_prefs .prefErrorLog tr .errno { font-style: italic; font-weight: bold; white-space: nowrap; } -body.ttrss_prefs table.prefErrorLog td.filename, -body.ttrss_prefs table.prefErrorLog td.login, -body.ttrss_prefs table.prefErrorLog td.timestamp { +body.ttrss_prefs .prefErrorLog tr .errstr { + word-break: break-all; +} +body.ttrss_prefs .prefErrorLog tr .filename, +body.ttrss_prefs .prefErrorLog tr .login, +body.ttrss_prefs .prefErrorLog tr .timestamp { color: #555; } body.ttrss_prefs hr { @@ -1544,6 +1547,14 @@ body.ttrss_prefs .phpinfo td.v { font-family: monospace; word-break: break-all; } +body.ttrss_prefs #filterNewRuleDlg .invalid, +body.ttrss_main #filterNewRuleDlg .invalid { + background: #ffc0c0; +} +body.ttrss_prefs #filterNewRuleDlg .valid, +body.ttrss_main #filterNewRuleDlg .valid { + background: #c0ffc0; +} body.ttrss_prefs fieldset, body.ttrss_utility fieldset { border-width: 0px; @@ -1762,6 +1773,7 @@ body.ttrss_utility.share_popup .content { } .flat .dijitTree .dijitTreeRow { overflow: hidden; + -moz-user-select: none; text-overflow: ellipsis; } .flat label.dijitButton { diff --git a/css/default.css.map b/css/default.css.map index aec172a0c..9a20fc622 100644 --- a/css/default.css.map +++ b/css/default.css.map @@ -1 +1 @@ -{"version":3,"sources":["default.less","defines.less","tt-rss.less","cdm.less","prefs.less","utility.less","dijit_basic.less","dijit_light.less","zoom.less"],"names":[],"mappings":"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","file":"default.css"}
\ No newline at end of file +{"version":3,"sources":["default.less","defines.less","tt-rss.less","cdm.less","prefs.less","utility.less","dijit_basic.less","dijit_light.less","zoom.less"],"names":[],"mappings":"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","file":"default.css"}
\ No newline at end of file diff --git a/css/dijit_basic.less b/css/dijit_basic.less index 7c13eff84..a00cc5e59 100644 --- a/css/dijit_basic.less +++ b/css/dijit_basic.less @@ -132,6 +132,7 @@ .dijitTreeRow { overflow: hidden; + -moz-user-select: none; text-overflow: ellipsis; } diff --git a/css/prefs.less b/css/prefs.less index bd390bbd2..6eb6ecd0e 100644 --- a/css/prefs.less +++ b/css/prefs.less @@ -105,18 +105,26 @@ body.ttrss_prefs { } } - table.prefErrorLog tr.errrow td { - font-size : 10px; - } + .prefErrorLog { + tr { + td { + font-size: 10px; + } - table.prefErrorLog tr.errrow td.errno { - font-style : italic; - font-weight : bold; - white-space : nowrap; - } + .errno { + font-style : italic; + font-weight : bold; + white-space : nowrap; + } - table.prefErrorLog td.filename, table.prefErrorLog td.login, table.prefErrorLog td.timestamp { - color : @default-text; + .errstr { + word-break: break-all; + } + + .filename, .login, .timestamp { + color : @default-text; + } + } } hr { @@ -145,6 +153,18 @@ body.ttrss_prefs { } body.ttrss_prefs, +body.ttrss_main { + #filterNewRuleDlg { + .invalid { + background : #ffc0c0; + } + .valid { + background : #c0ffc0; + } + } +} + +body.ttrss_prefs, body.ttrss_utility { fieldset { border-width : 0px; diff --git a/include/functions.php b/include/functions.php index 6dc9990e8..c326ac468 100644 --- a/include/functions.php +++ b/include/functions.php @@ -15,6 +15,7 @@ $fetch_curl_used = false; libxml_disable_entity_loader(true); + libxml_use_internal_errors(true); // separate test because this is included before sanity checks if (function_exists("mb_internal_encoding")) mb_internal_encoding("UTF-8"); @@ -53,8 +54,6 @@ // feed limit for one update batch define_default('DAEMON_SLEEP_INTERVAL', 120); // default sleep interval between feed updates (sec) - define_default('MIN_CACHE_FILE_SIZE', 1024); - // do not cache files smaller than that (bytes) define_default('MAX_CACHE_FILE_SIZE', 64*1024*1024); // do not cache files larger than that (bytes) define_default('MAX_DOWNLOAD_FILE_SIZE', 16*1024*1024); @@ -160,108 +159,6 @@ Debug::log($msg); } - /** - * Purge a feed old posts. - * - * @param mixed $link A database connection. - * @param mixed $feed_id The id of the purged feed. - * @param mixed $purge_interval Olderness of purged posts. - * @param boolean $debug Set to True to enable the debug. False by default. - * @access public - * @return void - */ - function purge_feed($feed_id, $purge_interval) { - - if (!$purge_interval) $purge_interval = feed_purge_interval($feed_id); - - $pdo = Db::pdo(); - - $sth = $pdo->prepare("SELECT owner_uid FROM ttrss_feeds WHERE id = ?"); - $sth->execute([$feed_id]); - - $owner_uid = false; - - if ($row = $sth->fetch()) { - $owner_uid = $row["owner_uid"]; - } - - if ($purge_interval == -1 || !$purge_interval) { - if ($owner_uid) { - CCache::update($feed_id, $owner_uid); - } - return; - } - - if (!$owner_uid) return; - - if (FORCE_ARTICLE_PURGE == 0) { - $purge_unread = get_pref("PURGE_UNREAD_ARTICLES", - $owner_uid, false); - } else { - $purge_unread = true; - $purge_interval = FORCE_ARTICLE_PURGE; - } - - if (!$purge_unread) - $query_limit = " unread = false AND "; - else - $query_limit = ""; - - $purge_interval = (int) $purge_interval; - - if (DB_TYPE == "pgsql") { - $sth = $pdo->prepare("DELETE FROM ttrss_user_entries - USING ttrss_entries - WHERE ttrss_entries.id = ref_id AND - marked = false AND - feed_id = ? AND - $query_limit - ttrss_entries.date_updated < NOW() - INTERVAL '$purge_interval days'"); - $sth->execute([$feed_id]); - - } else { - $sth = $pdo->prepare("DELETE FROM ttrss_user_entries - USING ttrss_user_entries, ttrss_entries - WHERE ttrss_entries.id = ref_id AND - marked = false AND - feed_id = ? AND - $query_limit - ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); - $sth->execute([$feed_id]); - - } - - $rows = $sth->rowCount(); - - CCache::update($feed_id, $owner_uid); - - Debug::log("Purged feed $feed_id ($purge_interval): deleted $rows articles"); - - return $rows; - } // function purge_feed - - function feed_purge_interval($feed_id) { - - $pdo = DB::pdo(); - - $sth = $pdo->prepare("SELECT purge_interval, owner_uid FROM ttrss_feeds - WHERE id = ?"); - $sth->execute([$feed_id]); - - if ($row = $sth->fetch()) { - $purge_interval = $row["purge_interval"]; - $owner_uid = $row["owner_uid"]; - - if ($purge_interval == 0) $purge_interval = get_pref( - 'PURGE_OLD_DAYS', $owner_uid); - - return $purge_interval; - - } else { - return -1; - } - } - // TODO: max_size currently only works for CURL transfers // TODO: multiple-argument way is deprecated, first parameter is a hash now function fetch_file_contents($options /* previously: 0: $url , 1: $type = false, 2: $login = false, 3: $pass = false, @@ -544,48 +441,6 @@ } - /** - * Try to determine the favicon URL for a feed. - * adapted from wordpress favicon plugin by Jeff Minard (http://thecodepro.com/) - * http://dev.wp-plugins.org/file/favatars/trunk/favatars.php - * - * @param string $url A feed or page URL - * @access public - * @return mixed The favicon URL, or false if none was found. - */ - function get_favicon_url($url) { - - $favicon_url = false; - - if ($html = @fetch_file_contents($url)) { - - libxml_use_internal_errors(true); - - $doc = new DOMDocument(); - $doc->loadHTML('<?xml encoding="UTF-8">' . $html); - $xpath = new DOMXPath($doc); - - $base = $xpath->query('/html/head/base[@href]'); - foreach ($base as $b) { - $url = rewrite_relative_url($url, $b->getAttribute("href")); - break; - } - - $entries = $xpath->query('/html/head/link[@rel="shortcut icon" or @rel="icon"]'); - if (count($entries) > 0) { - foreach ($entries as $entry) { - $favicon_url = rewrite_relative_url($url, $entry->getAttribute("href")); - break; - } - } - } - - if (!$favicon_url) - $favicon_url = rewrite_relative_url($url, "/favicon.ico"); - - return $favicon_url; - } // function get_favicon_url - function initialize_user_prefs($uid, $profile = false) { if (get_schema_version() < 63) $profile_qpart = ""; @@ -737,6 +592,10 @@ } } + function clean_filename($filename) { + return basename(preg_replace("/\.\.|[\/\\\]/", "", $filename)); + } + function make_password($length = 12) { $password = ""; $possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ*%+^"; @@ -1361,153 +1220,6 @@ return $data; } - function search_to_sql($search, $search_language) { - - $keywords = str_getcsv(trim($search), " "); - $query_keywords = array(); - $search_words = array(); - $search_query_leftover = array(); - - $pdo = Db::pdo(); - - if ($search_language) - $search_language = $pdo->quote(mb_strtolower($search_language)); - else - $search_language = $pdo->quote("english"); - - foreach ($keywords as $k) { - if (strpos($k, "-") === 0) { - $k = substr($k, 1); - $not = "NOT"; - } else { - $not = ""; - } - - $commandpair = explode(":", mb_strtolower($k), 2); - - switch ($commandpair[0]) { - case "title": - if ($commandpair[1]) { - array_push($query_keywords, "($not (LOWER(ttrss_entries.title) LIKE ". - $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%') ."))"); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - array_push($search_words, $k); - } - break; - case "author": - if ($commandpair[1]) { - array_push($query_keywords, "($not (LOWER(author) LIKE ". - $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%')."))"); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - array_push($search_words, $k); - } - break; - case "note": - if ($commandpair[1]) { - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (note IS NOT NULL AND note != ''))"); - else if ($commandpair[1] == "false") - array_push($query_keywords, "($not (note IS NULL OR note = ''))"); - else - array_push($query_keywords, "($not (LOWER(note) LIKE ". - $pdo->quote('%' . mb_strtolower($commandpair[1]) . '%')."))"); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - if (!$not) array_push($search_words, $k); - } - break; - case "star": - - if ($commandpair[1]) { - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (marked = true))"); - else - array_push($query_keywords, "($not (marked = false))"); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - if (!$not) array_push($search_words, $k); - } - break; - case "pub": - if ($commandpair[1]) { - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (published = true))"); - else - array_push($query_keywords, "($not (published = false))"); - - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - if (!$not) array_push($search_words, $k); - } - break; - case "unread": - if ($commandpair[1]) { - if ($commandpair[1] == "true") - array_push($query_keywords, "($not (unread = true))"); - else - array_push($query_keywords, "($not (unread = false))"); - - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - if (!$not) array_push($search_words, $k); - } - break; - default: - if (strpos($k, "@") === 0) { - - $user_tz_string = get_pref('USER_TIMEZONE', $_SESSION['uid']); - $orig_ts = strtotime(substr($k, 1)); - $k = date("Y-m-d", convert_timestamp($orig_ts, $user_tz_string, 'UTC')); - - //$k = date("Y-m-d", strtotime(substr($k, 1))); - - array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')"); - } else { - - if (DB_TYPE == "pgsql") { - $k = mb_strtolower($k); - array_push($search_query_leftover, $not ? "!$k" : $k); - } else { - array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER(".$pdo->quote("%$k%").") - OR UPPER(ttrss_entries.content) $not LIKE UPPER(".$pdo->quote("%$k%")."))"); - } - - if (!$not) array_push($search_words, $k); - } - } - } - - if (count($search_query_leftover) > 0) { - - if (DB_TYPE == "pgsql") { - - // if there's no joiners consider this a "simple" search and - // concatenate everything with &, otherwise don't try to mess with tsquery syntax - if (preg_match("/[&|]/", implode(" " , $search_query_leftover))) { - $tsquery = $pdo->quote(implode(" ", $search_query_leftover)); - } else { - $tsquery = $pdo->quote(implode(" & ", $search_query_leftover)); - } - - array_push($query_keywords, - "(tsvector_combined @@ to_tsquery($search_language, $tsquery))"); - } - - } - - $search_query_part = implode("AND", $query_keywords); - - return array($search_query_part, $search_words); - } - function iframe_whitelisted($entry) { $whitelist = array("youtube.com", "youtu.be", "vimeo.com", "player.vimeo.com"); @@ -1523,71 +1235,11 @@ return false; } - // check for locally cached (media) URLs and rewrite to local versions - // this is called separately after sanitize() and plugin render article hooks to allow - // plugins work on original source URLs used before caching - - function rewrite_cached_urls($str) { - $res = trim($str); if (!$res) return ''; - - $doc = new DOMDocument(); - $doc->loadHTML('<?xml encoding="UTF-8">' . $res); - $xpath = new DOMXPath($doc); - - $entries = $xpath->query('(//img[@src]|//picture/source[@src]|//video[@poster]|//video/source[@src]|//audio/source[@src])'); - - $need_saving = false; - - foreach ($entries as $entry) { - - if ($entry->hasAttribute('src') || $entry->hasAttribute('poster')) { - - // should be already absolutized because this is called after sanitize() - $src = $entry->hasAttribute('poster') ? $entry->getAttribute('poster') : $entry->getAttribute('src'); - $cached_filename = CACHE_DIR . '/images/' . sha1($src); - - if (file_exists($cached_filename)) { - - // this is strictly cosmetic - if ($entry->tagName == 'img') { - $suffix = ".png"; - } else if ($entry->parentNode && $entry->parentNode->tagName == "picture") { - $suffix = ".png"; - } else if ($entry->parentNode && $entry->parentNode->tagName == "video") { - $suffix = ".mp4"; - } else if ($entry->parentNode && $entry->parentNode->tagName == "audio") { - $suffix = ".ogg"; - } else { - $suffix = ""; - } - - $src = get_self_url_prefix() . '/public.php?op=cached_url&hash=' . sha1($src) . $suffix; - - if ($entry->hasAttribute('poster')) - $entry->setAttribute('poster', $src); - else - $entry->setAttribute('src', $src); - - $need_saving = true; - } - } - } - - if ($need_saving) { - $doc->removeChild($doc->firstChild); //remove doctype - $res = $doc->saveHTML(); - } - - return $res; - } - function sanitize($str, $force_remove_images = false, $owner = false, $site_url = false, $highlight_words = false, $article_id = false) { if (!$owner) $owner = $_SESSION["uid"]; $res = trim($str); if (!$res) return ''; - libxml_use_internal_errors(true); - $doc = new DOMDocument(); $doc->loadHTML('<?xml encoding="UTF-8">' . $res); $xpath = new DOMXPath($doc); @@ -1607,9 +1259,6 @@ if ($entry->hasAttribute('src')) { $src = rewrite_relative_url($rewrite_base_url, $entry->getAttribute('src')); - - // cache stuff has gone to rewrite_cached_urls() - $entry->setAttribute('src', $src); } @@ -1798,13 +1447,6 @@ return $tmp; } - function tag_is_valid($tag) { - if (!$tag || is_numeric($tag) || mb_strlen($tag) > 250) - return false; - - return true; - } - function render_login_form() { header('Cache-Control: public'); @@ -1823,20 +1465,6 @@ return $ts; } - function sanitize_tag($tag) { - $tag = trim($tag); - - $tag = mb_strtolower($tag, 'utf-8'); - - $tag = preg_replace('/[,\'\"\+\>\<]/', "", $tag); - - if (DB_TYPE == "mysql") { - $tag = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $tag); - } - - return $tag; - } - function is_server_https() { return (!empty($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] != 'off')) || $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'; } @@ -1864,285 +1492,12 @@ } } // function encrypt_password - function load_filters($feed_id, $owner_uid) { - $filters = array(); - - $feed_id = (int) $feed_id; - $cat_id = (int)Feeds::getFeedCategory($feed_id); - - if ($cat_id == 0) - $null_cat_qpart = "cat_id IS NULL OR"; - else - $null_cat_qpart = ""; - - $pdo = Db::pdo(); - - $sth = $pdo->prepare("SELECT * FROM ttrss_filters2 WHERE - owner_uid = ? AND enabled = true ORDER BY order_id, title"); - $sth->execute([$owner_uid]); - - $check_cats = array_merge( - Feeds::getParentCategories($cat_id, $owner_uid), - [$cat_id]); - - $check_cats_str = join(",", $check_cats); - $check_cats_fullids = array_map(function($a) { return "CAT:$a"; }, $check_cats); - - while ($line = $sth->fetch()) { - $filter_id = $line["id"]; - - $match_any_rule = sql_bool_to_bool($line["match_any_rule"]); - - $sth2 = $pdo->prepare("SELECT - r.reg_exp, r.inverse, r.feed_id, r.cat_id, r.cat_filter, r.match_on, t.name AS type_name - FROM ttrss_filters2_rules AS r, - ttrss_filter_types AS t - WHERE - (match_on IS NOT NULL OR - (($null_cat_qpart (cat_id IS NULL AND cat_filter = false) OR cat_id IN ($check_cats_str)) AND - (feed_id IS NULL OR feed_id = ?))) AND - filter_type = t.id AND filter_id = ?"); - $sth2->execute([$feed_id, $filter_id]); - - $rules = array(); - $actions = array(); - - while ($rule_line = $sth2->fetch()) { - # print_r($rule_line); - - if ($rule_line["match_on"]) { - $match_on = json_decode($rule_line["match_on"], true); - - if (in_array("0", $match_on) || in_array($feed_id, $match_on) || count(array_intersect($check_cats_fullids, $match_on)) > 0) { - - $rule = array(); - $rule["reg_exp"] = $rule_line["reg_exp"]; - $rule["type"] = $rule_line["type_name"]; - $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); - - array_push($rules, $rule); - } else if (!$match_any_rule) { - // this filter contains a rule that doesn't match to this feed/category combination - // thus filter has to be rejected - - $rules = []; - break; - } - - } else { - - $rule = array(); - $rule["reg_exp"] = $rule_line["reg_exp"]; - $rule["type"] = $rule_line["type_name"]; - $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); - - array_push($rules, $rule); - } - } - - if (count($rules) > 0) { - $sth2 = $pdo->prepare("SELECT a.action_param,t.name AS type_name - FROM ttrss_filters2_actions AS a, - ttrss_filter_actions AS t - WHERE - action_id = t.id AND filter_id = ?"); - $sth2->execute([$filter_id]); - - while ($action_line = $sth2->fetch()) { - # print_r($action_line); - - $action = array(); - $action["type"] = $action_line["type_name"]; - $action["param"] = $action_line["action_param"]; - - array_push($actions, $action); - } - } - - $filter = []; - $filter["id"] = $filter_id; - $filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]); - $filter["inverse"] = sql_bool_to_bool($line["inverse"]); - $filter["rules"] = $rules; - $filter["actions"] = $actions; - - if (count($rules) > 0 && count($actions) > 0) { - array_push($filters, $filter); - } - } - - return $filters; - } - function init_plugins() { PluginHost::getInstance()->load(PLUGINS, PluginHost::KIND_ALL); return true; } - function add_feed_category($feed_cat, $parent_cat_id = false, $order_id = 0) { - - if (!$feed_cat) return false; - - $feed_cat = mb_substr($feed_cat, 0, 250); - if (!$parent_cat_id) $parent_cat_id = null; - - $pdo = Db::pdo(); - $tr_in_progress = false; - - try { - $pdo->beginTransaction(); - } catch (Exception $e) { - $tr_in_progress = true; - } - - $sth = $pdo->prepare("SELECT id FROM ttrss_feed_categories - WHERE (parent_cat = :parent OR (:parent IS NULL AND parent_cat IS NULL)) - AND title = :title AND owner_uid = :uid"); - $sth->execute([':parent' => $parent_cat_id, ':title' => $feed_cat, ':uid' => $_SESSION['uid']]); - - if (!$sth->fetch()) { - - $sth = $pdo->prepare("INSERT INTO ttrss_feed_categories (owner_uid,title,parent_cat,order_id) - VALUES (?, ?, ?, ?)"); - $sth->execute([$_SESSION['uid'], $feed_cat, $parent_cat_id, (int)$order_id]); - - if (!$tr_in_progress) $pdo->commit(); - - return true; - } - - $pdo->commit(); - - return false; - } - - /** - * Fixes incomplete URLs by prepending "http://". - * Also replaces feed:// with http://, and - * prepends a trailing slash if the url is a domain name only. - * - * @param string $url Possibly incomplete URL - * - * @return string Fixed URL. - */ - function fix_url($url) { - - // support schema-less urls - if (strpos($url, '//') === 0) { - $url = 'https:' . $url; - } - - if (strpos($url, '://') === false) { - $url = 'http://' . $url; - } else if (substr($url, 0, 5) == 'feed:') { - $url = 'http:' . substr($url, 5); - } - - //prepend slash if the URL has no slash in it - // "http://www.example" -> "http://www.example/" - if (strpos($url, '/', strpos($url, ':') + 3) === false) { - $url .= '/'; - } - - //convert IDNA hostname to punycode if possible - if (function_exists("idn_to_ascii")) { - $parts = parse_url($url); - if (mb_detect_encoding($parts['host']) != 'ASCII') - { - $parts['host'] = idn_to_ascii($parts['host']); - $url = build_url($parts); - } - } - - if ($url != "http:///") - return $url; - else - return ''; - } - - function validate_feed_url($url) { - $parts = parse_url($url); - - return ($parts['scheme'] == 'http' || $parts['scheme'] == 'feed' || $parts['scheme'] == 'https'); - - } - - /* function save_email_address($email) { - // FIXME: implement persistent storage of emails - - if (!$_SESSION['stored_emails']) - $_SESSION['stored_emails'] = array(); - - if (!in_array($email, $_SESSION['stored_emails'])) - array_push($_SESSION['stored_emails'], $email); - } */ - - - function get_feed_access_key($feed_id, $is_cat, $owner_uid = false) { - - if (!$owner_uid) $owner_uid = $_SESSION["uid"]; - - $is_cat = bool_to_sql_bool($is_cat); - - $pdo = Db::pdo(); - - $sth = $pdo->prepare("SELECT access_key FROM ttrss_access_keys - WHERE feed_id = ? AND is_cat = ? - AND owner_uid = ?"); - $sth->execute([$feed_id, $is_cat, $owner_uid]); - - if ($row = $sth->fetch()) { - return $row["access_key"]; - } else { - $key = uniqid_short(); - - $sth = $pdo->prepare("INSERT INTO ttrss_access_keys - (access_key, feed_id, is_cat, owner_uid) - VALUES (?, ?, ?, ?)"); - - $sth->execute([$key, $feed_id, $is_cat, $owner_uid]); - - return $key; - } - } - - function get_feeds_from_html($url, $content) - { - $url = fix_url($url); - $baseUrl = substr($url, 0, strrpos($url, '/') + 1); - - libxml_use_internal_errors(true); - - $doc = new DOMDocument(); - $doc->loadHTML('<?xml encoding="UTF-8">' . $content); - $xpath = new DOMXPath($doc); - $entries = $xpath->query('/html/head/link[@rel="alternate" and '. - '(contains(@type,"rss") or contains(@type,"atom"))]|/html/head/link[@rel="feed"]'); - $feedUrls = array(); - foreach ($entries as $entry) { - if ($entry->hasAttribute('href')) { - $title = $entry->getAttribute('title'); - if ($title == '') { - $title = $entry->getAttribute('type'); - } - $feedUrl = rewrite_relative_url( - $baseUrl, $entry->getAttribute('href') - ); - $feedUrls[$feedUrl] = $title; - } - } - return $feedUrls; - } - - function is_html($content) { - return preg_match("/<html|DOCTYPE html/i", substr($content, 0, 8192)) !== 0; - } - - function url_is_html($url, $login = false, $pass = false) { - return is_html(fetch_file_contents($url, false, $login, $pass)); - } - function build_url($parts) { return $parts['scheme'] . "://" . $parts['host'] . $parts['path']; } @@ -2195,51 +1550,6 @@ } } - function cleanup_tags($days = 14, $limit = 1000) { - - $days = (int) $days; - - if (DB_TYPE == "pgsql") { - $interval_query = "date_updated < NOW() - INTERVAL '$days days'"; - } else if (DB_TYPE == "mysql") { - $interval_query = "date_updated < DATE_SUB(NOW(), INTERVAL $days DAY)"; - } - - $tags_deleted = 0; - - $pdo = Db::pdo(); - - while ($limit > 0) { - $limit_part = 500; - - $sth = $pdo->prepare("SELECT ttrss_tags.id AS id - FROM ttrss_tags, ttrss_user_entries, ttrss_entries - WHERE post_int_id = int_id AND $interval_query AND - ref_id = ttrss_entries.id AND tag_cache != '' LIMIT ?"); - $sth->bindValue(1, $limit_part, PDO::PARAM_INT); - $sth->execute(); - - $ids = array(); - - while ($line = $sth->fetch()) { - array_push($ids, $line['id']); - } - - if (count($ids) > 0) { - $ids = join(",", $ids); - - $usth = $pdo->query("DELETE FROM ttrss_tags WHERE id IN ($ids)"); - $tags_deleted = $usth->rowCount(); - } else { - break; - } - - $limit -= $limit_part; - } - - return $tags_deleted; - } - function print_user_stylesheet() { $value = get_pref('USER_STYLESHEET'); @@ -2251,7 +1561,7 @@ } - function filter_to_sql($filter, $owner_uid) { + /* function filter_to_sql($filter, $owner_uid) { $query = array(); $pdo = Db::pdo(); @@ -2337,7 +1647,7 @@ if ($filter['inverse']) $fullquery = "(NOT $fullquery)"; return $fullquery; - } + } */ if (!function_exists('gzdecode')) { function gzdecode($string) { // no support for 2nd argument @@ -2525,29 +1835,6 @@ } } - function check_mysql_tables() { - $pdo = Db::pdo(); - - $sth = $pdo->prepare("SELECT engine, table_name FROM information_schema.tables WHERE - table_schema = ? AND table_name LIKE 'ttrss_%' AND engine != 'InnoDB'"); - $sth->execute([DB_NAME]); - - $bad_tables = []; - - while ($line = $sth->fetch()) { - array_push($bad_tables, $line); - } - - return $bad_tables; - } - - function validate_field($string, $allowed, $default = "") { - if (in_array($string, $allowed)) - return $string; - else - return $default; - } - function arr_qmarks($arr) { return str_repeat('?,', count($arr) - 1) . '?'; } diff --git a/include/sanity_check.php b/include/sanity_check.php index f06cf0a39..b1b4571b2 100755 --- a/include/sanity_check.php +++ b/include/sanity_check.php @@ -27,7 +27,23 @@ return $url_path; } - /** + function check_mysql_tables() { + $pdo = Db::pdo(); + + $sth = $pdo->prepare("SELECT engine, table_name FROM information_schema.tables WHERE + table_schema = ? AND table_name LIKE 'ttrss_%' AND engine != 'InnoDB'"); + $sth->execute([DB_NAME]); + + $bad_tables = []; + + while ($line = $sth->fetch()) { + array_push($bad_tables, $line); + } + + return $bad_tables; + } + +/** * @SuppressWarnings(PHPMD.UnusedLocalVariable) */ function initial_sanity_check() { diff --git a/include/version.php b/include/version.php index 7602bfbb3..db5c2ec80 100644 --- a/include/version.php +++ b/include/version.php @@ -1,5 +1,5 @@ <?php - define('VERSION_STATIC', '19.2'); + define('VERSION_STATIC', '19.8'); function get_version() { date_default_timezone_set('UTC'); @@ -162,11 +162,11 @@ } ?> - <form id="toolbar-headlines" action="" onsubmit='return false'> + <form id="toolbar-headlines" action="" style="order : 10" onsubmit='return false'> </form> - <form id="toolbar-main" action="" onsubmit='return false'> + <form id="toolbar-main" action="" style="order : 20" onsubmit='return false'> <select name="view_mode" title="<?php echo __('Show articles') ?>" onchange="App.onViewModeChanged()" @@ -207,7 +207,7 @@ </form> - <div class="action-chooser"> + <div class="action-chooser" style="order : 30"> <?php foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_TOOLBAR_BUTTON) as $p) { diff --git a/js/CommonFilters.js b/js/CommonFilters.js index a8171f64f..1538a3fb3 100644 --- a/js/CommonFilters.js +++ b/js/CommonFilters.js @@ -2,6 +2,24 @@ /* global __, ngettext */ define(["dojo/_base/declare"], function (declare) { Filters = { + filterDlgCheckRegExp: function(sender) { + const tooltip = dijit.byId("filterDlg_regExp_tip").domNode; + + try { + sender.domNode.removeClassName("invalid"); + sender.domNode.removeClassName("valid"); + + new RegExp("/" + sender.value + "/"); + + sender.domNode.addClassName("valid"); + tooltip.innerText = __("Regular expression, without outer delimiters (i.e. slashes)"); + + } catch (e) { + sender.domNode.addClassName("invalid"); + + tooltip.innerText = e.message; + } + }, filterDlgCheckAction: function(sender) { const action = sender.value; diff --git a/js/Headlines.js b/js/Headlines.js index 3c5ab2ee6..3c98bef6c 100755 --- a/js/Headlines.js +++ b/js/Headlines.js @@ -272,17 +272,21 @@ define(["dojo/_base/declare"], function (declare) { } } - if (!Feeds.infscroll_disabled) { + if (!Feeds.infscroll_disabled && !Feeds.infscroll_in_progress) { const hsp = $("headlines-spacer"); const container = $("headlines-frame"); - if (hsp && hsp.offsetTop - 250 <= container.scrollTop + container.offsetHeight) { + if (hsp && hsp.previousSibling) { + const last_row = hsp.previousSibling; - hsp.innerHTML = "<span class='loading'><img src='images/indicator_tiny.gif'> " + - __("Loading, please wait...") + "</span>"; + // invoke lazy load if last article in buffer is nearly visible OR is active + if (Article.getActive() == last_row.getAttribute("data-article-id") || last_row.offsetTop - 250 <= container.scrollTop + container.offsetHeight) { + hsp.innerHTML = "<span class='loading'><img src='images/indicator_tiny.gif'> " + + __("Loading, please wait...") + "</span>"; - Headlines.loadMore(); - return; + Headlines.loadMore(); + return; + } } } @@ -558,13 +562,14 @@ define(["dojo/_base/declare"], function (declare) { const headlines_count = reply['headlines-info']['count']; - Feeds.infscroll_disabled = parseInt(headlines_count) < 30; - console.log('received', headlines_count, 'headlines, infscroll disabled=', Feeds.infscroll_disabled); - //this.vgroup_last_feed = reply['headlines-info']['vgroup_last_feed']; this.current_first_id = reply['headlines']['first_id']; + console.log('received', headlines_count, 'headlines'); + if (!append) { + Feeds.infscroll_disabled = parseInt(headlines_count) != 30; + console.log('infscroll_disabled=', Feeds.infscroll_disabled); // TODO: the below needs to be applied again when switching expanded/expandable on the fly // via hotkeys, not just on feed load @@ -663,7 +668,7 @@ define(["dojo/_base/declare"], function (declare) { } } - Feeds.infscroll_disabled = headlines_appended != 30; + Feeds.infscroll_disabled = headlines_appended == 0; console.log('appended', headlines_appended, 'headlines, infscroll_disabled=', Feeds.infscroll_disabled); @@ -682,10 +687,10 @@ define(["dojo/_base/declare"], function (declare) { } } else { - console.log("no new headlines received"); - + Feeds.infscroll_disabled = true; const first_id_changed = reply['headlines']['first_id_changed']; - console.log("first id changed:" + first_id_changed); + + console.log("no headlines received, infscroll_disabled=", Feeds.infscroll_disabled, 'first_id_changed=', first_id_changed); let hsp = $("headlines-spacer"); diff --git a/plugins/af_readability/init.php b/plugins/af_readability/init.php index 8bb368389..7f3c6db4d 100755 --- a/plugins/af_readability/init.php +++ b/plugins/af_readability/init.php @@ -48,7 +48,7 @@ class Af_Readability extends Plugin { function hook_prefs_tab($args) { if ($args != "prefFeeds") return; - print "<div dojoType='dijit.layout.AccordionPane' + print "<div dojoType='dijit.layout.AccordionPane' title=\"<i class='material-icons'>extension</i> ".__('Readability settings (af_readability)')."\">"; if (version_compare(PHP_VERSION, '5.6.0', '<')) { @@ -178,7 +178,7 @@ class Af_Readability extends Plugin { // this is the worst hack yet :( if (strtolower($tmpdoc->encoding) != 'utf-8') { - $tmp = preg_replace("/<meta.*?charset.*?\/>/i", "", $tmp); + $tmp = preg_replace("/<meta.*?charset.*?\/?>/i", "", $tmp); $tmp = mb_convert_encoding($tmp, 'utf-8', $tmpdoc->encoding); } diff --git a/plugins/af_zz_imgproxy/init.php b/plugins/af_zz_imgproxy/init.php index b172d4563..ddc30936f 100755 --- a/plugins/af_zz_imgproxy/init.php +++ b/plugins/af_zz_imgproxy/init.php @@ -4,6 +4,9 @@ class Af_Zz_ImgProxy extends Plugin { /* @var PluginHost $host */ private $host; + /* @var DiskCache $cache */ + private $cache; + function about() { return array(1.0, "Load insecure images via built-in proxy", @@ -18,6 +21,7 @@ class Af_Zz_ImgProxy extends Plugin { function init($host) { $this->host = $host; + $this->cache = new DiskCache("images"); $host->add_hook($host::HOOK_RENDER_ARTICLE, $this); $host->add_hook($host::HOOK_RENDER_ARTICLE_CDM, $this); @@ -50,16 +54,12 @@ class Af_Zz_ImgProxy extends Plugin { return; } - $local_filename = CACHE_DIR . "/images/" . sha1($url); - - if ($_REQUEST["debug"] == "1") { print $url . "\n" . $local_filename; die; } - - header("Content-Disposition: inline; filename=\"".basename($local_filename)."\""); - - if (file_exists($local_filename)) { - - send_local_file($local_filename); + $local_filename = sha1($url); + if ($this->cache->exists($local_filename)) { + header("Location: " . $this->cache->getUrl($local_filename)); + return; + //$this->cache->send($local_filename); } else { $data = fetch_file_contents(["url" => $url, "max_size" => MAX_CACHE_FILE_SIZE]); @@ -67,10 +67,10 @@ class Af_Zz_ImgProxy extends Plugin { $disable_cache = $this->host->get($this, "disable_cache"); - if (!$disable_cache && strlen($data) > MIN_CACHE_FILE_SIZE) { - if (file_put_contents($local_filename, $data)) { - $mimetype = mime_content_type($local_filename); - header("Content-type: $mimetype"); + if (!$disable_cache) { + if ($this->cache->put($local_filename, $data)) { + header("Location: " . $this->cache->getUrl($local_filename)); + return; } } @@ -110,36 +110,40 @@ class Af_Zz_ImgProxy extends Plugin { } } - function rewrite_url_if_needed($url, $all_remote = false) { - $scheme = parse_url($url, PHP_URL_SCHEME); + private function rewrite_url_if_needed($url, $all_remote = false) { + /* we don't need to handle URLs where local cache already exists, tt-rss rewrites those automatically */ + if (!$this->cache->exists(sha1($url))) { - if ($all_remote) { - $host = parse_url($url, PHP_URL_HOST); - $self_host = parse_url(get_self_url_prefix(), PHP_URL_HOST); + $scheme = parse_url($url, PHP_URL_SCHEME); - $is_remote = $host != $self_host; - } else { - $is_remote = false; - } + if ($all_remote) { + $host = parse_url($url, PHP_URL_HOST); + $self_host = parse_url(get_self_url_prefix(), PHP_URL_HOST); + + $is_remote = $host != $self_host; + } else { + $is_remote = false; + } - if (($scheme != 'https' && $scheme != "") || $is_remote) { - if (strpos($url, "data:") !== 0) { - $parts = parse_url($url); - - foreach (explode(" " , $this->ssl_known_whitelist) as $host) { - if (substr(strtolower($parts['host']), -strlen($host)) === strtolower($host)) { - $parts['scheme'] = 'https'; - $url = build_url($parts); - if ($all_remote && $is_remote) { - break; - } else { - return $url; + if (($scheme != 'https' && $scheme != "") || $is_remote) { + if (strpos($url, "data:") !== 0) { + $parts = parse_url($url); + + foreach (explode(" " , $this->ssl_known_whitelist) as $host) { + if (substr(strtolower($parts['host']), -strlen($host)) === strtolower($host)) { + $parts['scheme'] = 'https'; + $url = build_url($parts); + if ($all_remote && $is_remote) { + break; + } else { + return $url; + } } } - } - return get_self_url_prefix() . "/public.php?op=pluginhandler&plugin=af_zz_imgproxy&pmethod=imgproxy&url=" . - urlencode($url); + return get_self_url_prefix() . "/public.php?op=pluginhandler&plugin=af_zz_imgproxy&pmethod=imgproxy&url=" . + urlencode($url); + } } } diff --git a/plugins/cache_starred_images/init.php b/plugins/cache_starred_images/init.php index 714d4cb9b..ae369f56e 100755 --- a/plugins/cache_starred_images/init.php +++ b/plugins/cache_starred_images/init.php @@ -1,90 +1,80 @@ <?php -class Cache_Starred_Images extends Plugin implements IHandler { +class Cache_Starred_Images extends Plugin { /* @var PluginHost $host */ private $host; - private $cache_dir; + /* @var DiskCache $cache */ + private $cache; private $max_cache_attempts = 5; // per-article function about() { return array(1.0, - "Automatically cache Starred articles' images and HTML5 video files", - "fox", - true); - } - - /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - function csrf_ignore($method) { - return false; - } - - /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - function before($method) { - return true; - } - - function after() { - return true; + "Automatically cache media files in Starred articles", + "fox"); } function init($host) { $this->host = $host; + $this->cache = new DiskCache("starred-images"); - $this->cache_dir = CACHE_DIR . "/starred-images/"; - - if (!is_dir($this->cache_dir)) { - mkdir($this->cache_dir); - } + if ($this->cache->makeDir()) + chmod($this->cache->getDir(), 0777); - if (is_dir($this->cache_dir)) { - - if (!is_writable($this->cache_dir)) - chmod($this->cache_dir, 0777); - - if (is_writable($this->cache_dir)) { - $host->add_hook($host::HOOK_UPDATE_TASK, $this); - $host->add_hook($host::HOOK_HOUSE_KEEPING, $this); - $host->add_hook($host::HOOK_SANITIZE, $this); - $host->add_handler("public", "cache_starred_images_getimage", $this); - - } else { - user_error("Starred cache directory is not writable.", E_USER_WARNING); - } + if (!$this->cache->exists(".no-auto-expiry")) + $this->cache->touch(".no-auto-expiry"); + if ($this->cache->isWritable()) { + $host->add_hook($host::HOOK_HOUSE_KEEPING, $this); + $host->add_hook($host::HOOK_ENCLOSURE_ENTRY, $this); + $host->add_hook($host::HOOK_SANITIZE, $this); } else { - user_error("Unable to create starred cache directory.", E_USER_WARNING); + user_error("Starred cache directory ".$this->cache->getDir()." is not writable.", E_USER_WARNING); } } - function cache_starred_images_getimage() { - ob_end_clean(); + /** + * @SuppressWarnings(PHPMD.UnusedLocalVariable) + */ + function hook_house_keeping() { + /* since HOOK_UPDATE_TASK is not available to user plugins, this hook is a next best thing */ + + Debug::log("caching media of starred articles for user " . $this->host->get_owner_uid() . "..."); + + $sth = $this->pdo->prepare("SELECT content, ttrss_entries.title, + ttrss_user_entries.owner_uid, link, site_url, ttrss_entries.id, plugin_data + FROM ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON + (ttrss_user_entries.feed_id = ttrss_feeds.id) + WHERE ref_id = ttrss_entries.id AND + marked = true AND + site_url != '' AND + ttrss_user_entries.owner_uid = ? AND + plugin_data NOT LIKE '%starred_cache_images%' + ORDER BY ".sql_random_function()." LIMIT 100"); - $hash = basename($_REQUEST["hash"]); + if ($sth->execute([$this->host->get_owner_uid()])) { - if ($hash) { + $usth = $this->pdo->prepare("UPDATE ttrss_entries SET plugin_data = ? WHERE id = ?"); - $filename = $this->cache_dir . "/" . basename($hash); + while ($line = $sth->fetch()) { + Debug::log("processing article " . $line["title"], Debug::$LOG_VERBOSE); - if (file_exists($filename)) { - header("Content-Disposition: attachment; filename=\"$hash\""); + if ($line["site_url"]) { + $success = $this->cache_article_images($line["content"], $line["site_url"], $line["owner_uid"], $line["id"]); - send_local_file($filename); - } else { - header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); - echo "File not found."; + if ($success) { + $plugin_data = "starred_cache_images,${line['owner_uid']}:" . $line["plugin_data"]; + + $usth->execute([$plugin_data, $line['id']]); + } + } } } - } - /** - * @SuppressWarnings(PHPMD.UnusedLocalVariable) - */ - function hook_house_keeping() { - $files = glob($this->cache_dir . "/*.{png,mp4,status}", GLOB_BRACE); + /* actual housekeeping */ + + Debug::log("expiring " . $this->cache->getDir() . "..."); + + $files = glob($this->cache->getDir() . "/*.{png,mp4,status}", GLOB_BRACE); $last_article_id = 0; $article_exists = 1; @@ -107,6 +97,16 @@ class Cache_Starred_Images extends Plugin implements IHandler { } } + function hook_enclosure_entry($enc, $article_id) { + $local_filename = $article_id . "-" . sha1($enc["content_url"]); + + if ($this->cache->exists($local_filename)) { + $enc["content_url"] = $this->cache->getUrl($local_filename); + } + + return $enc; + } + /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ @@ -120,15 +120,12 @@ class Cache_Starred_Images extends Plugin implements IHandler { if ($entry->hasAttribute('src')) { $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); - $extension = $entry->tagName == 'source' ? '.mp4' : '.png'; - $local_filename = $this->cache_dir . $article_id . "-" . sha1($src) . $extension; + $local_filename = $article_id . "-" . sha1($src); - if (file_exists($local_filename)) { - $entry->setAttribute("src", get_self_url_prefix() . - "/public.php?op=cache_starred_images_getimage&method=image&hash=" . - $article_id . "-" . sha1($src) . $extension); + if ($this->cache->exists($local_filename)) { + $entry->setAttribute("src", $this->cache->getUrl($local_filename)); + $entry->removeAttribute("srcset"); } - } } } @@ -136,44 +133,42 @@ class Cache_Starred_Images extends Plugin implements IHandler { return $doc; } - function hook_update_task() { - $res = $this->pdo->query("SELECT content, ttrss_user_entries.owner_uid, link, site_url, ttrss_entries.id, plugin_data - FROM ttrss_entries, ttrss_user_entries LEFT JOIN ttrss_feeds ON - (ttrss_user_entries.feed_id = ttrss_feeds.id) - WHERE ref_id = ttrss_entries.id AND - marked = true AND - (UPPER(content) LIKE '%<IMG%' OR UPPER(content) LIKE '%<VIDEO%') AND - site_url != '' AND - plugin_data NOT LIKE '%starred_cache_images%' - ORDER BY ".sql_random_function()." LIMIT 100"); + private function cache_url($article_id, $url) { + $local_filename = $article_id . "-" . sha1($url); - $usth = $this->pdo->prepare("UPDATE ttrss_entries SET plugin_data = ? WHERE id = ?"); + if (!$this->cache->exists($local_filename)) { + Debug::log("cache_images: downloading: $url to $local_filename", Debug::$LOG_VERBOSE); - while ($line = $res->fetch()) { - if ($line["site_url"]) { - $success = $this->cache_article_images($line["content"], $line["site_url"], $line["owner_uid"], $line["id"]); + $data = fetch_file_contents(["url" => $url, "max_size" => MAX_CACHE_FILE_SIZE]); - if ($success) { - $plugin_data = "starred_cache_images,${line['owner_uid']}:" . $line["plugin_data"]; + if ($data) + return $this->cache->put($local_filename, $data);; - $usth->execute([$plugin_data, $line['id']]); - } - } + } else { + //Debug::log("cache_images: local file exists for $url", Debug::$LOG_VERBOSE); + + return true; } + + return false; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - function cache_article_images($content, $site_url, $owner_uid, $article_id) { - libxml_use_internal_errors(true); + private function cache_article_images($content, $site_url, $owner_uid, $article_id) { + $status_filename = $article_id . "-" . sha1($site_url) . ".status"; - $status_filename = $this->cache_dir . $article_id . "-" . sha1($site_url) . ".status"; + /* housekeeping might run as a separate user, in this case status/media might not be writable */ + if (!$this->cache->isWritable($status_filename)) { + Debug::log("status not writable: $status_filename", Debug::$LOG_VERBOSE); + return false; + } - Debug::log("status: $status_filename", Debug::$LOG_EXTENDED); + Debug::log("status: $status_filename", Debug::$LOG_VERBOSE); - if (file_exists($status_filename)) - $status = json_decode(file_get_contents($status_filename), true); + if ($this->cache->exists($status_filename)) + $status = json_decode($this->cache->get($status_filename), true); else $status = []; @@ -182,47 +177,48 @@ class Cache_Starred_Images extends Plugin implements IHandler { // only allow several download attempts for article if ($status["attempt"] > $this->max_cache_attempts) { Debug::log("too many attempts for $site_url", Debug::$LOG_VERBOSE); - return; + return false; } - if (!file_put_contents($status_filename, json_encode($status))) { + if (!$this->cache->put($status_filename, json_encode($status))) { user_error("unable to write status file: $status_filename", E_USER_WARNING); - return; + return false; } $doc = new DOMDocument(); - $doc->loadHTML('<?xml encoding="UTF-8">' . $content); - $xpath = new DOMXPath($doc); - - $entries = $xpath->query('(//img[@src])|(//video/source[@src])'); - $success = false; $has_images = false; + $success = false; + + if ($doc->loadHTML('<?xml encoding="UTF-8">' . $content)) { + $xpath = new DOMXPath($doc); + $entries = $xpath->query('(//img[@src])|(//video/source[@src])'); - foreach ($entries as $entry) { + foreach ($entries as $entry) { - if ($entry->hasAttribute('src') && strpos($entry->getAttribute('src'), "data:") !== 0) { + if ($entry->hasAttribute('src') && strpos($entry->getAttribute('src'), "data:") !== 0) { - $has_images = true; - $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); + $has_images = true; - $extension = $entry->tagName == 'source' ? '.mp4' : '.png'; + $src = rewrite_relative_url($site_url, $entry->getAttribute('src')); - $local_filename = $this->cache_dir . $article_id . "-" . sha1($src) . $extension; + if ($this->cache_url($article_id, $src)) { + $success = true; + } + } + } + } - Debug::log("cache_images: downloading: $src to $local_filename", Debug::$LOG_VERBOSE); + $esth = $this->pdo->prepare("SELECT content_url FROM ttrss_enclosures WHERE post_id = ? AND + (content_type LIKE '%image%' OR content_type LIKE '%video%')"); - if (!file_exists($local_filename)) { - $file_content = fetch_file_contents(["url" => $src, "max_size" => MAX_CACHE_FILE_SIZE]); + if ($esth->execute([$article_id])) { + while ($enc = $esth->fetch()) { - if ($file_content) { - if (strlen($file_content) > MIN_CACHE_FILE_SIZE) { - file_put_contents($local_filename, $file_content); - } + $has_images = true; + $url = rewrite_relative_url($site_url, $enc["content_url"]); - $success = true; - } - } else { + if ($this->cache_url($article_id, $url)) { $success = true; } } diff --git a/plugins/import_export/import_export.js b/plugins/import_export/import_export.js deleted file mode 100644 index 8dc5f7570..000000000 --- a/plugins/import_export/import_export.js +++ /dev/null @@ -1,123 +0,0 @@ -function exportData() { - try { - - var query = "backend.php?op=pluginhandler&plugin=import_export&method=exportData"; - - if (dijit.byId("dataExportDlg")) - dijit.byId("dataExportDlg").destroyRecursive(); - - var exported = 0; - - dialog = new dijit.Dialog({ - id: "dataExportDlg", - title: __("Export Data"), - style: "width: 600px", - prepare: function() { - - Notify.progress("Loading, please wait..."); - - new Ajax.Request("backend.php", { - parameters: "op=pluginhandler&plugin=import_export&method=exportrun&offset=" + exported, - onComplete: function(transport) { - try { - var rv = JSON.parse(transport.responseText); - - if (rv && rv.exported != undefined) { - if (rv.exported > 0) { - - exported += rv.exported; - - $("export_status_message").innerHTML = - "<img src='images/indicator_tiny.gif'> " + - "Exported %d articles, please wait...".replace("%d", - exported); - - setTimeout('dijit.byId("dataExportDlg").prepare()', 2000); - - } else { - - $("export_status_message").innerHTML = - ngettext("Finished, exported %d article. You can download the data <a class='visibleLink' href='%u'>here</a>.", "Finished, exported %d articles. You can download the data <a class='visibleLink' href='%u'>here</a>.", exported) - .replace("%d", exported) - .replace("%u", "backend.php?op=pluginhandler&plugin=import_export&subop=exportget"); - - exported = 0; - - } - - } else { - $("export_status_message").innerHTML = - "Error occured, could not export data."; - } - } catch (e) { - App.Error.report(e); - } - - Notify.close(); - - } }); - - }, - execute: function() { - if (this.validate()) { - - - - } - }, - href: query}); - - dialog.show(); - - - } catch (e) { - App.Error.report(e); - } -} - -function dataImportComplete(iframe) { - try { - if (!iframe.contentDocument.body.innerHTML) return false; - - Element.hide(iframe); - - Notify.close(); - - if (dijit.byId('dataImportDlg')) - dijit.byId('dataImportDlg').destroyRecursive(); - - var content = iframe.contentDocument.body.innerHTML; - - dialog = new dijit.Dialog({ - id: "dataImportDlg", - title: __("Data Import"), - style: "width: 600px", - onCancel: function() { - - }, - content: content}); - - dialog.show(); - - } catch (e) { - App.Error.report(e); - } -} - -function importData() { - - var file = $("export_file"); - - if (file.value.length == 0) { - alert(__("Please choose the file first.")); - return false; - } else { - Notify.progress("Importing, please wait...", true); - - Element.show("data_upload_iframe"); - - return true; - } -} - - diff --git a/plugins/import_export/init.php b/plugins/import_export/init.php deleted file mode 100755 index 714574ab4..000000000 --- a/plugins/import_export/init.php +++ /dev/null @@ -1,522 +0,0 @@ -<?php -class Import_Export extends Plugin implements IHandler { - private $host; - - function init($host) { - $this->host = $host; - - $host->add_hook($host::HOOK_PREFS_TAB, $this); - $host->add_command("xml-import", "import articles from XML", $this, ":", "FILE"); - } - - function about() { - return array(1.0, - "Imports and exports user data using neutral XML format", - "fox"); - } - - function xml_import($args) { - - $filename = $args['xml_import']; - - if (!is_file($filename)) { - print "error: input filename ($filename) doesn't exist.\n"; - return; - } - - Debug::log("please enter your username:"); - - $username = trim(read_stdin()); - - Debug::log("importing $filename for user $username...\n"); - - $sth = $this->pdo->prepare("SELECT id FROM ttrss_users WHERE login = ?"); - $sth->execute($username); - - if ($row = $sth->fetch()) { - $owner_uid = $row['id']; - - $this->perform_data_import($filename, $owner_uid); - } else { - print "error: could not find user $username.\n"; - return; - } - } - - function get_prefs_js() { - return file_get_contents(dirname(__FILE__) . "/import_export.js"); - } - - function hook_prefs_tab($args) { - if ($args != "prefFeeds") return; - - print "<div dojoType='dijit.layout.AccordionPane' - title=\"<i class='material-icons'>import_export</i> ".__('Import and export')."\">"; - - print_notice(__("You can export and import your Starred and Archived articles for safekeeping or when migrating between tt-rss instances of same version.")); - - print "<p>"; - - print "<button dojoType='dijit.form.Button' class='alt-primary' onclick='return exportData()'>". - __('Export my data')."</button> "; - - print "<hr>"; - - print "<iframe id='data_upload_iframe' - name='data_upload_iframe' onload='dataImportComplete(this)' - style='width: 400px; height: 100px; display: none;'></iframe>"; - - print "<form name='import_form' style='display : block' target='data_upload_iframe' - enctype='multipart/form-data' method='POST' - action='backend.php'> - <label class='dijitButton'>".__("Choose file...")." - <input style='display : none' id='export_file' name='export_file' type='file'> - </label> - <input type='hidden' name='op' value='pluginhandler'> - <input type='hidden' name='plugin' value='import_export'> - <input type='hidden' name='method' value='dataimport'> - <button dojoType='dijit.form.Button' onclick='return importData();' class='alt-primary' type='submit'>" . - __('Import') . "</button>"; - - print "</form>"; - - print "</p>"; - - print "</div>"; # pane - } - - function csrf_ignore($method) { - return in_array($method, array("exportget")); - } - - /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - function before($method) { - return $_SESSION["uid"] != false; - } - - function after() { - return true; - } - - /** - * @SuppressWarnings(unused) - */ - function exportget() { - $exportname = CACHE_DIR . "/export/" . - sha1($_SESSION['uid'] . $_SESSION['login']) . ".xml"; - - if (file_exists($exportname)) { - header("Content-type: text/xml"); - - $timestamp_suffix = date("Y-m-d", filemtime($exportname)); - - if (function_exists('gzencode')) { - header("Content-Disposition: attachment; filename=TinyTinyRSS_exported_${timestamp_suffix}.xml.gz"); - echo gzencode(file_get_contents($exportname)); - } else { - header("Content-Disposition: attachment; filename=TinyTinyRSS_exported_${timestamp_suffix}.xml"); - echo file_get_contents($exportname); - } - } else { - echo "File not found."; - } - } - - function exportrun() { - $offset = (int) $_REQUEST['offset']; - $exported = 0; - $limit = 250; - - if ($offset < 10000 && is_writable(CACHE_DIR . "/export")) { - - $sth = $this->pdo->prepare("SELECT - ttrss_entries.guid, - ttrss_entries.title, - content, - marked, - published, - score, - note, - link, - tag_cache, - label_cache, - ttrss_feeds.title AS feed_title, - ttrss_feeds.feed_url AS feed_url, - ttrss_entries.updated - FROM - ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = feed_id), - ttrss_entries - WHERE - (marked = true OR feed_id IS NULL) AND - ref_id = ttrss_entries.id AND - ttrss_user_entries.owner_uid = ? - ORDER BY ttrss_entries.id LIMIT $limit OFFSET $offset"); - - $sth->execute([$_SESSION['uid']]); - - $exportname = sha1($_SESSION['uid'] . $_SESSION['login']); - - if ($offset == 0) { - $fp = fopen(CACHE_DIR . "/export/$exportname.xml", "w"); - fputs($fp, "<articles schema-version=\"".SCHEMA_VERSION."\">"); - } else { - $fp = fopen(CACHE_DIR . "/export/$exportname.xml", "a"); - } - - if ($fp) { - - $exported = 0; - while ($line = $sth->fetch(PDO::FETCH_ASSOC)) { - ++$exported; - - fputs($fp, "<article>\n"); - - foreach ($line as $k => $v) { - - fputs($fp, " "); - - if (is_bool($v)) - $v = (int) $v; - - if (!$v || is_numeric($v)) { - fputs($fp, "<$k>$v</$k>\n"); - } else { - $v = str_replace("]]>", "]]]]><![CDATA[>", $v); - fputs($fp, "<$k><![CDATA[$v]]></$k>\n"); - } - } - - fputs($fp, "</article>\n"); - } - - if ($exported < $limit && $exported > 0) { - fputs($fp, "</articles>"); - } - - fclose($fp); - } - - } - - print json_encode(array("exported" => $exported)); - } - - function perform_data_import($filename, $owner_uid) { - - $num_imported = 0; - $num_processed = 0; - $num_feeds_created = 0; - - libxml_disable_entity_loader(false); - - $doc = new DOMDocument(); - - if (!$doc_loaded = @$doc->load($filename)) { - $contents = file_get_contents($filename); - - if ($contents) { - $data = @gzuncompress($contents); - } - - if (!$data) { - $data = @gzdecode($contents); - } - - if ($data) - $doc_loaded = $doc->loadXML($data); - } - - libxml_disable_entity_loader(true); - - if ($doc_loaded) { - - $xpath = new DOMXpath($doc); - - $container = $doc->firstChild; - - if ($container && $container->hasAttribute('schema-version')) { - $schema_version = $container->getAttribute('schema-version'); - - if ($schema_version != SCHEMA_VERSION) { - print "<p>" .__("Could not import: incorrect schema version.") . "</p>"; - return; - } - - } else { - print "<p>" . __("Could not import: unrecognized document format.") . "</p>"; - return; - } - - $articles = $xpath->query("//article"); - - foreach ($articles as $article_node) { - if ($article_node->childNodes) { - - $ref_id = 0; - - $article = array(); - - foreach ($article_node->childNodes as $child) { - if ($child->nodeName == 'content' || $child->nodeName == 'label_cache') { - $article[$child->nodeName] = $child->nodeValue; - } else { - $article[$child->nodeName] = clean($child->nodeValue); - } - } - - //print_r($article); - - if ($article['guid']) { - - ++$num_processed; - - $this->pdo->beginTransaction(); - - //print 'GUID:' . $article['guid'] . "\n"; - - $sth = $this->pdo->prepare("SELECT id FROM ttrss_entries - WHERE guid = ?"); - $sth->execute([$article['guid']]); - - if ($row = $sth->fetch()) { - $ref_id = $row['id']; - } else { - $sth = $this->pdo->prepare( - "INSERT INTO ttrss_entries - (title, - guid, - link, - updated, - content, - content_hash, - no_orig_date, - date_updated, - date_entered, - comments, - num_comments, - author) - VALUES - (?, ?, ?, ?, ?, ?, - false, - NOW(), - NOW(), - '', - '0', - '')"); - - $sth->execute([ - $article['title'], - $article['guid'], - $article['link'], - $article['updated'], - $article['content'], - sha1($article['content']) - ]); - - $sth = $this->pdo->prepare("SELECT id FROM ttrss_entries - WHERE guid = ?"); - $sth->execute([$article['guid']]); - - if ($row = $sth->fetch()) { - $ref_id = $row['id']; - } - } - - //print "Got ref ID: $ref_id\n"; - - if ($ref_id) { - - $feed = NULL; - - if ($article['feed_url'] && $article['feed_title']) { - - $sth = $this->pdo->prepare("SELECT id FROM ttrss_feeds - WHERE feed_url = ? AND owner_uid = ?"); - $sth->execute([$article['feed_url'], $owner_uid]); - - if ($row = $sth->fetch()) { - $feed = $row['id']; - } else { - // try autocreating feed in Uncategorized... - - $sth = $this->pdo->prepare("INSERT INTO ttrss_feeds (owner_uid, - feed_url, title) VALUES (?, ?, ?)"); - $res = $sth->execute([$owner_uid, $article['feed_url'], $article['feed_title']]); - - if ($res) { - $sth = $this->pdo->prepare("SELECT id FROM ttrss_feeds - WHERE feed_url = ? AND owner_uid = ?"); - $sth->execute([$article['feed_url'], $owner_uid]); - - if ($row = $sth->fetch()) { - ++$num_feeds_created; - - $feed = $row['id']; - } - } - } - } - - if ($feed) - $feed_qpart = "feed_id = " . (int) $feed; - else - $feed_qpart = "feed_id IS NULL"; - - //print "$ref_id / $feed / " . $article['title'] . "\n"; - - $sth = $this->pdo->prepare("SELECT int_id FROM ttrss_user_entries - WHERE ref_id = ? AND owner_uid = ? AND $feed_qpart"); - $sth->execute([$ref_id, $owner_uid]); - - if (!$sth->fetch()) { - - $score = (int) $article['score']; - - $tag_cache = $article['tag_cache']; - $note = $article['note']; - - //print "Importing " . $article['title'] . "<br/>"; - - ++$num_imported; - - $sth = $this->pdo->prepare( - "INSERT INTO ttrss_user_entries - (ref_id, owner_uid, feed_id, unread, last_read, marked, - published, score, tag_cache, label_cache, uuid, note) - VALUES (?, ?, ?, false, - NULL, ?, ?, ?, ?, '', '', ?)"); - - $res = $sth->execute([ - $ref_id, - $owner_uid, - $feed, - (int)sql_bool_to_bool($article['marked']), - (int)sql_bool_to_bool($article['published']), - $score, - $tag_cache, - $note]); - - if ($res) { - - if (DB_TYPE == "pgsql") { - $ts_lang = get_pref('DEFAULT_SEARCH_LANGUAGE', $owner_uid); - // TODO: maybe use per-feed setting if available? - - if (!$ts_lang) - $ts_lang = 'simple'; - - $sth = $this->pdo->prepare("UPDATE ttrss_entries - SET tsvector_combined = to_tsvector(:ts_lang, :ts_content) - WHERE id = :id"); - - $sth->execute([ - "id" => $ref_id, - "ts_lang" => $ts_lang, - "ts_content" => mb_substr(strip_tags($article['title'] . " " . $article['content']), 0, 900000) - ]); - } - - $label_cache = json_decode($article['label_cache'], true); - - if (is_array($label_cache) && $label_cache["no-labels"] != 1) { - foreach ($label_cache as $label) { - Labels::create($label[1], - $label[2], $label[3], $owner_uid); - - Labels::add_article($ref_id, $label[1], $owner_uid); - } - } - } - } - } - - $this->pdo->commit(); - } - } - } - - print "<p>" . - __("Finished: "). - vsprintf(_ngettext("%d article processed, ", "%d articles processed, ", $num_processed), $num_processed). - vsprintf(_ngettext("%d imported, ", "%d imported, ", $num_imported), $num_imported). - vsprintf(_ngettext("%d feed created.", "%d feeds created.", $num_feeds_created), $num_feeds_created). - "</p>"; - - } else { - - print "<p>" . __("Could not load XML document.") . "</p>"; - - } - } - - function exportData() { - - print "<form onsubmit='return false'>"; - - print "<p style='text-align : center' id='export_status_message'>You need to prepare exported data first by clicking the button below.</p>"; - - print "<footer class='text-center'>"; - print "<button dojoType='dijit.form.Button' - type='submit' class='alt-primary' - onclick=\"dijit.byId('dataExportDlg').prepare()\">". - __('Prepare data')."</button>"; - - print "<button dojoType='dijit.form.Button' - onclick=\"dijit.byId('dataExportDlg').hide()\">". - __('Close this window')."</button>"; - - print "</footer>"; - - print "</form>"; - } - - function dataImport() { - header("Content-Type: text/html"); # required for iframe - - print "<footer class='text-center'>"; - - if ($_FILES['export_file']['error'] != 0) { - print_error(T_sprintf("Upload failed with error code %d (%s)", - $_FILES['export_file']['error'], - get_upload_error_message($_FILES['export_file']['error']))); - } else { - - if (is_uploaded_file($_FILES['export_file']['tmp_name'])) { - $tmp_file = tempnam(CACHE_DIR . '/upload', 'export'); - - $result = move_uploaded_file($_FILES['export_file']['tmp_name'], - $tmp_file); - - if (!$result) { - print_error(__("Unable to move uploaded file.")); - return; - } - } else { - print_error(__('Error: please upload OPML file.')); - return; - } - - if (is_file($tmp_file)) { - $this->perform_data_import($tmp_file, $_SESSION['uid']); - unlink($tmp_file); - } else { - print_error(__('No file uploaded.')); - return; - } - } - - print "<button dojoType='dijit.form.Button' - onclick=\"dijit.byId('dataImportDlg').hide()\">". - __('Close this window')."</button>"; - - print "</div>"; - - } - - function api_version() { - return 2; - } - -} diff --git a/themes/night.css b/themes/night.css index 14f7e074f..64f8a0411 100644 --- a/themes/night.css +++ b/themes/night.css @@ -1514,17 +1514,20 @@ body.ttrss_prefs fieldset.plugin label.description { body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox { margin-right: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td { +body.ttrss_prefs .prefErrorLog tr td { font-size: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td.errno { +body.ttrss_prefs .prefErrorLog tr .errno { font-style: italic; font-weight: bold; white-space: nowrap; } -body.ttrss_prefs table.prefErrorLog td.filename, -body.ttrss_prefs table.prefErrorLog td.login, -body.ttrss_prefs table.prefErrorLog td.timestamp { +body.ttrss_prefs .prefErrorLog tr .errstr { + word-break: break-all; +} +body.ttrss_prefs .prefErrorLog tr .filename, +body.ttrss_prefs .prefErrorLog tr .login, +body.ttrss_prefs .prefErrorLog tr .timestamp { color: #ccc; } body.ttrss_prefs hr { @@ -1545,6 +1548,14 @@ body.ttrss_prefs .phpinfo td.v { font-family: monospace; word-break: break-all; } +body.ttrss_prefs #filterNewRuleDlg .invalid, +body.ttrss_main #filterNewRuleDlg .invalid { + background: #ffc0c0; +} +body.ttrss_prefs #filterNewRuleDlg .valid, +body.ttrss_main #filterNewRuleDlg .valid { + background: #c0ffc0; +} body.ttrss_prefs fieldset, body.ttrss_utility fieldset { border-width: 0px; @@ -1763,6 +1774,7 @@ body.ttrss_utility.share_popup .content { } .flat .dijitTree .dijitTreeRow { overflow: hidden; + -moz-user-select: none; text-overflow: ellipsis; } .flat label.dijitButton { @@ -1823,6 +1835,12 @@ body.flat.ttrss_main.ttrss_prefs td.filename, body.flat.ttrss_main.ttrss_prefs div.prefHelp { color: #999999; } +body.flat.ttrss_main.ttrss_prefs #filterNewRuleDlg .invalid { + background: #503030; +} +body.flat.ttrss_main.ttrss_prefs #filterNewRuleDlg .valid { + background: #305030; +} body.flat.ttrss_main { /* .post .content img, diff --git a/themes/night.css.map b/themes/night.css.map index b83e4ac3f..ad42163ab 100644 --- a/themes/night.css.map +++ b/themes/night.css.map @@ -1 +1 @@ -{"version":3,"sources":["night_base.less","night.less","C:/Users/fox/Projects/tt-rss/css/defines.less","C:/Users/fox/Projects/tt-rss/css/tt-rss.less","C:/Users/fox/Projects/tt-rss/css/cdm.less","C:/Users/fox/Projects/tt-rss/css/prefs.less","C:/Users/fox/Projects/tt-rss/css/utility.less","C:/Users/fox/Projects/tt-rss/css/dijit_basic.less"],"names":[],"mappings":"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","file":"night.css"}
\ No newline at end of file +{"version":3,"sources":["night_base.less","night.less","C:/Users/fox/Projects/tt-rss/css/defines.less","C:/Users/fox/Projects/tt-rss/css/tt-rss.less","C:/Users/fox/Projects/tt-rss/css/cdm.less","C:/Users/fox/Projects/tt-rss/css/prefs.less","C:/Users/fox/Projects/tt-rss/css/utility.less","C:/Users/fox/Projects/tt-rss/css/dijit_basic.less"],"names":[],"mappings":"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","file":"night.css"}
\ No newline at end of file diff --git a/themes/night_base.less b/themes/night_base.less index 8e6755b64..4aea57b0e 100644 --- a/themes/night_base.less +++ b/themes/night_base.less @@ -28,6 +28,15 @@ body.flat.ttrss_main.ttrss_prefs { div.prefHelp { color : @fg-text-muted; } + + #filterNewRuleDlg { + .invalid { + background : #503030; + } + .valid { + background : #305030; + } + } } body.flat.ttrss_main { diff --git a/themes/night_blue.css b/themes/night_blue.css index da7fe1a7a..487d149b2 100644 --- a/themes/night_blue.css +++ b/themes/night_blue.css @@ -1514,17 +1514,20 @@ body.ttrss_prefs fieldset.plugin label.description { body.ttrss_prefs fieldset.plugin label.description .dijitCheckBox { margin-right: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td { +body.ttrss_prefs .prefErrorLog tr td { font-size: 10px; } -body.ttrss_prefs table.prefErrorLog tr.errrow td.errno { +body.ttrss_prefs .prefErrorLog tr .errno { font-style: italic; font-weight: bold; white-space: nowrap; } -body.ttrss_prefs table.prefErrorLog td.filename, -body.ttrss_prefs table.prefErrorLog td.login, -body.ttrss_prefs table.prefErrorLog td.timestamp { +body.ttrss_prefs .prefErrorLog tr .errstr { + word-break: break-all; +} +body.ttrss_prefs .prefErrorLog tr .filename, +body.ttrss_prefs .prefErrorLog tr .login, +body.ttrss_prefs .prefErrorLog tr .timestamp { color: #ccc; } body.ttrss_prefs hr { @@ -1545,6 +1548,14 @@ body.ttrss_prefs .phpinfo td.v { font-family: monospace; word-break: break-all; } +body.ttrss_prefs #filterNewRuleDlg .invalid, +body.ttrss_main #filterNewRuleDlg .invalid { + background: #ffc0c0; +} +body.ttrss_prefs #filterNewRuleDlg .valid, +body.ttrss_main #filterNewRuleDlg .valid { + background: #c0ffc0; +} body.ttrss_prefs fieldset, body.ttrss_utility fieldset { border-width: 0px; @@ -1763,6 +1774,7 @@ body.ttrss_utility.share_popup .content { } .flat .dijitTree .dijitTreeRow { overflow: hidden; + -moz-user-select: none; text-overflow: ellipsis; } .flat label.dijitButton { @@ -1823,6 +1835,12 @@ body.flat.ttrss_main.ttrss_prefs td.filename, body.flat.ttrss_main.ttrss_prefs div.prefHelp { color: #999999; } +body.flat.ttrss_main.ttrss_prefs #filterNewRuleDlg .invalid { + background: #503030; +} +body.flat.ttrss_main.ttrss_prefs #filterNewRuleDlg .valid { + background: #305030; +} body.flat.ttrss_main { /* .post .content img, diff --git a/themes/night_blue.css.map b/themes/night_blue.css.map index 020994944..4c8037c5a 100644 --- a/themes/night_blue.css.map +++ b/themes/night_blue.css.map @@ -1 +1 @@ -{"version":3,"sources":["night_base.less","night_blue.less","C:/Users/fox/Projects/tt-rss/css/defines.less","C:/Users/fox/Projects/tt-rss/css/tt-rss.less","C:/Users/fox/Projects/tt-rss/css/cdm.less","C:/Users/fox/Projects/tt-rss/css/prefs.less","C:/Users/fox/Projects/tt-rss/css/utility.less","C:/Users/fox/Projects/tt-rss/css/dijit_basic.less"],"names":[],"mappings":"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","file":"night_blue.css"}
\ No newline at end of file +{"version":3,"sources":["night_base.less","night_blue.less","C:/Users/fox/Projects/tt-rss/css/defines.less","C:/Users/fox/Projects/tt-rss/css/tt-rss.less","C:/Users/fox/Projects/tt-rss/css/cdm.less","C:/Users/fox/Projects/tt-rss/css/prefs.less","C:/Users/fox/Projects/tt-rss/css/utility.less","C:/Users/fox/Projects/tt-rss/css/dijit_basic.less"],"names":[],"mappings":"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","file":"night_blue.css"}
\ No newline at end of file diff --git a/update.php b/update.php index 3817c7e26..5b723277f 100755 --- a/update.php +++ b/update.php @@ -14,6 +14,51 @@ require_once "db.php"; require_once "db-prefs.php"; + function cleanup_tags($days = 14, $limit = 1000) { + + $days = (int) $days; + + if (DB_TYPE == "pgsql") { + $interval_query = "date_updated < NOW() - INTERVAL '$days days'"; + } else if (DB_TYPE == "mysql") { + $interval_query = "date_updated < DATE_SUB(NOW(), INTERVAL $days DAY)"; + } + + $tags_deleted = 0; + + $pdo = Db::pdo(); + + while ($limit > 0) { + $limit_part = 500; + + $sth = $pdo->prepare("SELECT ttrss_tags.id AS id + FROM ttrss_tags, ttrss_user_entries, ttrss_entries + WHERE post_int_id = int_id AND $interval_query AND + ref_id = ttrss_entries.id AND tag_cache != '' LIMIT ?"); + $sth->bindValue(1, $limit_part, PDO::PARAM_INT); + $sth->execute(); + + $ids = array(); + + while ($line = $sth->fetch()) { + array_push($ids, $line['id']); + } + + if (count($ids) > 0) { + $ids = join(",", $ids); + + $usth = $pdo->query("DELETE FROM ttrss_tags WHERE id IN ($ids)"); + $tags_deleted = $usth->rowCount(); + } else { + break; + } + + $limit -= $limit_part; + } + + return $tags_deleted; + } + if (!defined('PHP_EXECUTABLE')) define('PHP_EXECUTABLE', '/usr/bin/php'); |