include: convert some spaces to tabs

This commit is contained in:
Andrew Dolgov 2018-01-30 10:44:31 +03:00
parent 2aec1b030c
commit 7f4a404566
3 changed files with 173 additions and 173 deletions

View File

@ -18,8 +18,8 @@ class RSSUtils {
// Strips utf8mb4 characters (i.e. emoji) for mysql // Strips utf8mb4 characters (i.e. emoji) for mysql
static function strip_utf8mb4($str) { static function strip_utf8mb4($str) {
return preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str); return preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $str);
} }
static function update_feedbrowser_cache() { static function update_feedbrowser_cache() {
@ -422,15 +422,15 @@ class RSSUtils {
_debug("not using CURL due to open_basedir restrictions"); _debug("not using CURL due to open_basedir restrictions");
} }
if (time() - strtotime($last_unconditional) > MAX_CONDITIONAL_INTERVAL) { if (time() - strtotime($last_unconditional) > MAX_CONDITIONAL_INTERVAL) {
_debug("maximum allowed interval for conditional requests exceeded, forcing refetch"); _debug("maximum allowed interval for conditional requests exceeded, forcing refetch");
$force_refetch = true; $force_refetch = true;
} else { } else {
_debug("stored last modified for conditional request: $stored_last_modified", $debug_enabled); _debug("stored last modified for conditional request: $stored_last_modified", $debug_enabled);
} }
_debug("fetching [$fetch_url] (force_refetch: $force_refetch)...", $debug_enabled); _debug("fetching [$fetch_url] (force_refetch: $force_refetch)...", $debug_enabled);
$feed_data = fetch_file_contents([ $feed_data = fetch_file_contents([
"url" => $fetch_url, "url" => $fetch_url,
@ -572,8 +572,8 @@ class RSSUtils {
$filters = load_filters($feed, $owner_uid); $filters = load_filters($feed, $owner_uid);
if ($debug_enabled) { if ($debug_enabled) {
print_r($filters); print_r($filters);
} }
_debug("" . count($filters) . " filters loaded.", $debug_enabled); _debug("" . count($filters) . " filters loaded.", $debug_enabled);
@ -1050,14 +1050,14 @@ class RSSUtils {
// Yet another episode of "mysql utf8_general_ci is gimped" // Yet another episode of "mysql utf8_general_ci is gimped"
if (DB_TYPE == "mysql") { if (DB_TYPE == "mysql") {
for ($i = 0; $i < count($e_item); $i++) { for ($i = 0; $i < count($e_item); $i++) {
if (is_string($e_item[$i])) { if (is_string($e_item[$i])) {
$e_item[$i] = RSSUtils::strip_utf8mb4($e_item[$i]); $e_item[$i] = RSSUtils::strip_utf8mb4($e_item[$i]);
} }
} }
} }
array_push($enclosures, $e_item); array_push($enclosures, $e_item);
} }
} }

130
include/controls.php Normal file → Executable file
View File

@ -71,106 +71,106 @@ function print_radio($id, $default, $true_is, $values, $attributes = "") {
} }
function print_feed_multi_select($id, $default_ids = [], function print_feed_multi_select($id, $default_ids = [],
$attributes = "", $include_all_feeds = true, $attributes = "", $include_all_feeds = true,
$root_id = null, $nest_level = 0) { $root_id = null, $nest_level = 0) {
$pdo = DB::pdo(); $pdo = DB::pdo();
print_r(in_array("CAT:6",$default_ids)); print_r(in_array("CAT:6",$default_ids));
if (!$root_id) { if (!$root_id) {
print "<select multiple=\true\" id=\"$id\" name=\"$id\" $attributes>"; print "<select multiple=\true\" id=\"$id\" name=\"$id\" $attributes>";
if ($include_all_feeds) { if ($include_all_feeds) {
$is_selected = (in_array("0", $default_ids)) ? "selected=\"1\"" : ""; $is_selected = (in_array("0", $default_ids)) ? "selected=\"1\"" : "";
print "<option $is_selected value=\"0\">".__('All feeds')."</option>"; print "<option $is_selected value=\"0\">".__('All feeds')."</option>";
} }
} }
if (get_pref('ENABLE_FEED_CATS')) { if (get_pref('ENABLE_FEED_CATS')) {
if (!$root_id) $root_id = null; if (!$root_id) $root_id = null;
$sth = $pdo->prepare("SELECT id,title, $sth = $pdo->prepare("SELECT id,title,
(SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE (SELECT COUNT(id) FROM ttrss_feed_categories AS c2 WHERE
c2.parent_cat = ttrss_feed_categories.id) AS num_children c2.parent_cat = ttrss_feed_categories.id) AS num_children
FROM ttrss_feed_categories FROM ttrss_feed_categories
WHERE owner_uid = :uid AND WHERE owner_uid = :uid AND
(parent_cat = :root_id OR (:root_id IS NULL AND parent_cat IS NULL)) ORDER BY title"); (parent_cat = :root_id OR (:root_id IS NULL AND parent_cat IS NULL)) ORDER BY title");
$sth->execute([":uid" => $_SESSION['uid'], ":root_id" => $root_id]); $sth->execute([":uid" => $_SESSION['uid'], ":root_id" => $root_id]);
while ($line = $sth->fetch()) { while ($line = $sth->fetch()) {
for ($i = 0; $i < $nest_level; $i++) for ($i = 0; $i < $nest_level; $i++)
$line["title"] = " - " . $line["title"]; $line["title"] = " - " . $line["title"];
$is_selected = in_array("CAT:".$line["id"], $default_ids) ? "selected=\"1\"" : ""; $is_selected = in_array("CAT:".$line["id"], $default_ids) ? "selected=\"1\"" : "";
printf("<option $is_selected value='CAT:%d'>%s</option>", printf("<option $is_selected value='CAT:%d'>%s</option>",
$line["id"], htmlspecialchars($line["title"])); $line["id"], htmlspecialchars($line["title"]));
if ($line["num_children"] > 0) if ($line["num_children"] > 0)
print_feed_multi_select($id, $default_ids, $attributes, print_feed_multi_select($id, $default_ids, $attributes,
$include_all_feeds, $line["id"], $nest_level+1); $include_all_feeds, $line["id"], $nest_level+1);
$f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds $f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
WHERE cat_id = ? AND owner_uid = ? ORDER BY title"); WHERE cat_id = ? AND owner_uid = ? ORDER BY title");
$f_sth->execute([$line['id'], $_SESSION['uid']]); $f_sth->execute([$line['id'], $_SESSION['uid']]);
while ($fline = $f_sth->fetch()) { while ($fline = $f_sth->fetch()) {
$is_selected = (in_array($fline["id"], $default_ids)) ? "selected=\"1\"" : ""; $is_selected = (in_array($fline["id"], $default_ids)) ? "selected=\"1\"" : "";
$fline["title"] = " + " . $fline["title"]; $fline["title"] = " + " . $fline["title"];
for ($i = 0; $i < $nest_level; $i++) for ($i = 0; $i < $nest_level; $i++)
$fline["title"] = " - " . $fline["title"]; $fline["title"] = " - " . $fline["title"];
printf("<option $is_selected value='%d'>%s</option>", printf("<option $is_selected value='%d'>%s</option>",
$fline["id"], htmlspecialchars($fline["title"])); $fline["id"], htmlspecialchars($fline["title"]));
} }
} }
if (!$root_id) { if (!$root_id) {
$is_selected = in_array("CAT:0", $default_ids) ? "selected=\"1\"" : ""; $is_selected = in_array("CAT:0", $default_ids) ? "selected=\"1\"" : "";
printf("<option $is_selected value='CAT:0'>%s</option>", printf("<option $is_selected value='CAT:0'>%s</option>",
__("Uncategorized")); __("Uncategorized"));
$f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds $f_sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
WHERE cat_id IS NULL AND owner_uid = ? ORDER BY title"); WHERE cat_id IS NULL AND owner_uid = ? ORDER BY title");
$f_sth->execute([$_SESSION['uid']]); $f_sth->execute([$_SESSION['uid']]);
while ($fline = $f_sth->fetch()) { while ($fline = $f_sth->fetch()) {
$is_selected = in_array($fline["id"], $default_ids) ? "selected=\"1\"" : ""; $is_selected = in_array($fline["id"], $default_ids) ? "selected=\"1\"" : "";
$fline["title"] = " + " . $fline["title"]; $fline["title"] = " + " . $fline["title"];
for ($i = 0; $i < $nest_level; $i++) for ($i = 0; $i < $nest_level; $i++)
$fline["title"] = " - " . $fline["title"]; $fline["title"] = " - " . $fline["title"];
printf("<option $is_selected value='%d'>%s</option>", printf("<option $is_selected value='%d'>%s</option>",
$fline["id"], htmlspecialchars($fline["title"])); $fline["id"], htmlspecialchars($fline["title"]));
} }
} }
} else { } else {
$sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds $sth = $pdo->prepare("SELECT id,title FROM ttrss_feeds
WHERE owner_uid = ? ORDER BY title"); WHERE owner_uid = ? ORDER BY title");
$sth->execute([$_SESSION['uid']]); $sth->execute([$_SESSION['uid']]);
while ($line = $sth->fetch()) { while ($line = $sth->fetch()) {
$is_selected = (in_array($line["id"], $default_ids)) ? "selected=\"1\"" : ""; $is_selected = (in_array($line["id"], $default_ids)) ? "selected=\"1\"" : "";
printf("<option $is_selected value='%d'>%s</option>", printf("<option $is_selected value='%d'>%s</option>",
$line["id"], htmlspecialchars($line["title"])); $line["id"], htmlspecialchars($line["title"]));
} }
} }
if (!$root_id) { if (!$root_id) {
print "</select>"; print "</select>";
} }
} }
function print_feed_cat_select($id, $default_id, function print_feed_cat_select($id, $default_id,
@ -195,7 +195,7 @@ function print_feed_cat_select($id, $default_id,
$found = 0; $found = 0;
while ($line = $sth->fetch()) { while ($line = $sth->fetch()) {
++$found; ++$found;
if ($line["id"] == $default_id) { if ($line["id"] == $default_id) {
$is_selected = "selected=\"1\""; $is_selected = "selected=\"1\"";
@ -315,7 +315,7 @@ function format_inline_player($url, $ctype) {
function print_label_select($name, $value, $attributes = "") { function print_label_select($name, $value, $attributes = "") {
$pdo = Db::pdo(); $pdo = Db::pdo();
$sth = $pdo->prepare("SELECT caption FROM ttrss_labels2 $sth = $pdo->prepare("SELECT caption FROM ttrss_labels2
WHERE owner_uid = ? ORDER BY caption"); WHERE owner_uid = ? ORDER BY caption");
@ -338,4 +338,4 @@ function print_label_select($name, $value, $attributes = "") {
print "</select>"; print "</select>";
} }

182
include/functions.php Normal file → Executable file
View File

@ -57,9 +57,9 @@
// do not cache files smaller than that (bytes) // do not cache files smaller than that (bytes)
define_default('CACHE_MAX_DAYS', 7); define_default('CACHE_MAX_DAYS', 7);
// max age in days for various automatically cached (temporary) files // max age in days for various automatically cached (temporary) files
define_default('MAX_CONDITIONAL_INTERVAL', 3600*12); define_default('MAX_CONDITIONAL_INTERVAL', 3600*12);
// max interval between forced unconditional updates for servers // max interval between forced unconditional updates for servers
// not complying with http if-modified-since (seconds) // not complying with http if-modified-since (seconds)
/* tunables end here */ /* tunables end here */
@ -255,9 +255,9 @@
} }
if (!$purge_unread) if (!$purge_unread)
$query_limit = " unread = false AND "; $query_limit = " unread = false AND ";
else else
$query_limit = ""; $query_limit = "";
$purge_interval = (int) $purge_interval; $purge_interval = (int) $purge_interval;
@ -272,14 +272,14 @@
$sth->execute([$feed_id]); $sth->execute([$feed_id]);
} else { } else {
$sth = $pdo->prepare("DELETE FROM ttrss_user_entries $sth = $pdo->prepare("DELETE FROM ttrss_user_entries
USING ttrss_user_entries, ttrss_entries USING ttrss_user_entries, ttrss_entries
WHERE ttrss_entries.id = ref_id AND WHERE ttrss_entries.id = ref_id AND
marked = false AND marked = false AND
feed_id = ? AND feed_id = ? AND
$query_limit $query_limit
ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)"); ttrss_entries.date_updated < DATE_SUB(NOW(), INTERVAL $purge_interval DAY)");
$sth->execute([$feed_id]); $sth->execute([$feed_id]);
} }
@ -296,7 +296,7 @@
function feed_purge_interval($feed_id) { function feed_purge_interval($feed_id) {
$pdo = DB::pdo(); $pdo = DB::pdo();
$sth = $pdo->prepare("SELECT purge_interval, owner_uid FROM ttrss_feeds $sth = $pdo->prepare("SELECT purge_interval, owner_uid FROM ttrss_feeds
WHERE id = ?"); WHERE id = ?");
@ -318,7 +318,7 @@
// TODO: multiple-argument way is deprecated, first parameter is a hash now // 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, function fetch_file_contents($options /* previously: 0: $url , 1: $type = false, 2: $login = false, 3: $pass = false,
4: $post_query = false, 5: $timeout = false, 6: $timestamp = 0, 7: $useragent = false*/) { 4: $post_query = false, 5: $timeout = false, 6: $timestamp = 0, 7: $useragent = false*/) {
global $fetch_last_error; global $fetch_last_error;
global $fetch_last_error_code; global $fetch_last_error_code;
@ -421,18 +421,18 @@
$contents = substr($ret, $headers_length); $contents = substr($ret, $headers_length);
foreach ($headers as $header) { foreach ($headers as $header) {
if (strstr($header, ": ") !== FALSE) { if (strstr($header, ": ") !== FALSE) {
list ($key, $value) = explode(": ", $header); list ($key, $value) = explode(": ", $header);
if (strtolower($key) == "last-modified") { if (strtolower($key) == "last-modified") {
$fetch_last_modified = $value; $fetch_last_modified = $value;
} }
} }
if (substr(strtolower($header), 0, 7) == 'http/1.') { if (substr(strtolower($header), 0, 7) == 'http/1.') {
$fetch_last_error_code = (int) substr($header, 9, 3); $fetch_last_error_code = (int) substr($header, 9, 3);
$fetch_last_error = $header; $fetch_last_error = $header;
} }
} }
if (curl_errno($ch) === 23 || curl_errno($ch) === 61) { if (curl_errno($ch) === 23 || curl_errno($ch) === 61) {
@ -486,13 +486,13 @@
$context_options = array( $context_options = array(
'http' => array( 'http' => array(
'method' => 'GET', 'method' => 'GET',
'ignore_errors' => true, 'ignore_errors' => true,
'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT, 'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
'protocol_version'=> 1.1) 'protocol_version'=> 1.1)
); );
if (!$post_query && $last_modified) { if (!$post_query && $last_modified) {
$context_options['http']['header'] = "If-Modified-Since: $last_modified\r\n"; $context_options['http']['header'] = "If-Modified-Since: $last_modified\r\n";
} }
if (defined('_HTTP_PROXY')) { if (defined('_HTTP_PROXY')) {
@ -500,7 +500,7 @@
$context_options['http']['proxy'] = _HTTP_PROXY; $context_options['http']['proxy'] = _HTTP_PROXY;
} }
$context = stream_context_create($context_options); $context = stream_context_create($context_options);
$old_error = error_get_last(); $old_error = error_get_last();
@ -508,19 +508,19 @@
if (isset($http_response_header) && is_array($http_response_header)) { if (isset($http_response_header) && is_array($http_response_header)) {
foreach ($http_response_header as $header) { foreach ($http_response_header as $header) {
if (strstr($header, ": ") !== FALSE) { if (strstr($header, ": ") !== FALSE) {
list ($key, $value) = explode(": ", $header); list ($key, $value) = explode(": ", $header);
$key = strtolower($key); $key = strtolower($key);
if ($key == 'content-type') { if ($key == 'content-type') {
$fetch_last_content_type = $value; $fetch_last_content_type = $value;
// don't abort here b/c there might be more than one // don't abort here b/c there might be more than one
// e.g. if we were being redirected -- last one is the right one // e.g. if we were being redirected -- last one is the right one
} else if ($key == 'last-modified') { } else if ($key == 'last-modified') {
$fetch_last_modified = $value; $fetch_last_modified = $value;
} }
} }
if (substr(strtolower($header), 0, 7) == 'http/1.') { if (substr(strtolower($header), 0, 7) == 'http/1.') {
$fetch_last_error_code = (int) substr($header, 9, 3); $fetch_last_error_code = (int) substr($header, 9, 3);
@ -591,18 +591,18 @@
if (get_schema_version() < 63) $profile_qpart = ""; if (get_schema_version() < 63) $profile_qpart = "";
$pdo = DB::pdo(); $pdo = DB::pdo();
$in_nested_tr = false; $in_nested_tr = false;
try { try {
$pdo->beginTransaction(); $pdo->beginTransaction();
} catch (Exception $e) { } catch (Exception $e) {
$in_nested_tr = true; $in_nested_tr = true;
} }
$sth = $pdo->query("SELECT pref_name,def_value FROM ttrss_prefs"); $sth = $pdo->query("SELECT pref_name,def_value FROM ttrss_prefs");
$profile = $profile ? $profile : null; $profile = $profile ? $profile : null;
$u_sth = $pdo->prepare("SELECT pref_name $u_sth = $pdo->prepare("SELECT pref_name
FROM ttrss_user_prefs WHERE owner_uid = :uid AND FROM ttrss_user_prefs WHERE owner_uid = :uid AND
@ -629,7 +629,7 @@
$i_sth = $pdo->prepare("INSERT INTO ttrss_user_prefs $i_sth = $pdo->prepare("INSERT INTO ttrss_user_prefs
(owner_uid,pref_name,value, profile) VALUES (owner_uid,pref_name,value, profile) VALUES
(?, ?, ?, ?)"); (?, ?, ?, ?)");
$i_sth->execute([$uid, $line["pref_name"], $line["def_value"], $profile]); $i_sth->execute([$uid, $line["pref_name"], $line["def_value"], $profile]);
} }
} }
@ -741,7 +741,7 @@
$password = ""; $password = "";
$possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ"; $possible = "0123456789abcdfghjkmnpqrstvwxyzABCDFGHJKMNPQRSTVWXYZ";
$i = 0; $i = 0;
while ($i < $length) { while ($i < $length) {
$char = substr($possible, mt_rand(0, strlen($possible)-1), 1); $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
@ -761,7 +761,7 @@
function initialize_user($uid) { function initialize_user($uid) {
$pdo = DB::pdo(); $pdo = DB::pdo();
$sth = $pdo->prepare("insert into ttrss_feeds (owner_uid,title,feed_url) $sth = $pdo->prepare("insert into ttrss_feeds (owner_uid,title,feed_url)
values (?, 'Tiny Tiny RSS: Forum', values (?, 'Tiny Tiny RSS: Forum',
@ -796,7 +796,7 @@
} }
function login_sequence() { function login_sequence() {
$pdo = Db::pdo(); $pdo = Db::pdo();
if (SINGLE_USER_MODE) { if (SINGLE_USER_MODE) {
@session_start(); @session_start();
@ -809,7 +809,7 @@
if (!$_SESSION["uid"]) { if (!$_SESSION["uid"]) {
if (AUTH_AUTO_LOGIN && authenticate_user(null, null)) { if (AUTH_AUTO_LOGIN && authenticate_user(null, null)) {
$_SESSION["ref_schema_version"] = get_schema_version(true); $_SESSION["ref_schema_version"] = get_schema_version(true);
} else { } else {
authenticate_user(null, null, true); authenticate_user(null, null, true);
} }
@ -837,18 +837,18 @@
/* cleanup ccache */ /* cleanup ccache */
$sth = $pdo->prepare("DELETE FROM ttrss_counters_cache WHERE owner_uid = ? $sth = $pdo->prepare("DELETE FROM ttrss_counters_cache WHERE owner_uid = ?
AND AND
(SELECT COUNT(id) FROM ttrss_feeds WHERE (SELECT COUNT(id) FROM ttrss_feeds WHERE
ttrss_feeds.id = feed_id) = 0"); ttrss_feeds.id = feed_id) = 0");
$sth->execute([$_SESSION['uid']]); $sth->execute([$_SESSION['uid']]);
$sth = $pdo->prepare("DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ? $sth = $pdo->prepare("DELETE FROM ttrss_cat_counters_cache WHERE owner_uid = ?
AND AND
(SELECT COUNT(id) FROM ttrss_feed_categories WHERE (SELECT COUNT(id) FROM ttrss_feed_categories WHERE
ttrss_feed_categories.id = feed_id) = 0"); ttrss_feed_categories.id = feed_id) = 0");
$sth->execute([$_SESSION['uid']]); $sth->execute([$_SESSION['uid']]);
} }
} }
@ -1848,14 +1848,14 @@
while ($line = $sth->fetch()) { while ($line = $sth->fetch()) {
$filter_id = $line["id"]; $filter_id = $line["id"];
$match_any_rule = sql_bool_to_bool($line["match_any_rule"]); $match_any_rule = sql_bool_to_bool($line["match_any_rule"]);
$sth2 = $pdo->prepare("SELECT $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 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, FROM ttrss_filters2_rules AS r,
ttrss_filter_types AS t ttrss_filter_types AS t
WHERE WHERE
(match_on IS NOT NULL OR (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 (($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 (feed_id IS NULL OR feed_id = ?))) AND
filter_type = t.id AND filter_id = ?"); filter_type = t.id AND filter_id = ?");
@ -1867,54 +1867,54 @@
while ($rule_line = $sth2->fetch()) { while ($rule_line = $sth2->fetch()) {
# print_r($rule_line); # print_r($rule_line);
if ($rule_line["match_on"]) { if ($rule_line["match_on"]) {
$match_on = json_decode($rule_line["match_on"], true); $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) { if (in_array("0", $match_on) || in_array($feed_id, $match_on) || count(array_intersect($check_cats_fullids, $match_on)) > 0) {
$rule = array(); $rule = array();
$rule["reg_exp"] = $rule_line["reg_exp"]; $rule["reg_exp"] = $rule_line["reg_exp"];
$rule["type"] = $rule_line["type_name"]; $rule["type"] = $rule_line["type_name"];
$rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
array_push($rules, $rule); array_push($rules, $rule);
} else if (!$match_any_rule) { } else if (!$match_any_rule) {
// this filter contains a rule that doesn't match to this feed/category combination // this filter contains a rule that doesn't match to this feed/category combination
// thus filter has to be rejected // thus filter has to be rejected
$rules = []; $rules = [];
break; break;
} }
} else { } else {
$rule = array(); $rule = array();
$rule["reg_exp"] = $rule_line["reg_exp"]; $rule["reg_exp"] = $rule_line["reg_exp"];
$rule["type"] = $rule_line["type_name"]; $rule["type"] = $rule_line["type_name"];
$rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]); $rule["inverse"] = sql_bool_to_bool($rule_line["inverse"]);
array_push($rules, $rule); array_push($rules, $rule);
} }
} }
if (count($rules) > 0) { if (count($rules) > 0) {
$sth2 = $pdo->prepare("SELECT a.action_param,t.name AS type_name $sth2 = $pdo->prepare("SELECT a.action_param,t.name AS type_name
FROM ttrss_filters2_actions AS a, FROM ttrss_filters2_actions AS a,
ttrss_filter_actions AS t ttrss_filter_actions AS t
WHERE WHERE
action_id = t.id AND filter_id = ?"); action_id = t.id AND filter_id = ?");
$sth2->execute([$filter_id]); $sth2->execute([$filter_id]);
while ($action_line = $sth2->fetch()) { while ($action_line = $sth2->fetch()) {
# print_r($action_line); # print_r($action_line);
$action = array(); $action = array();
$action["type"] = $action_line["type_name"]; $action["type"] = $action_line["type_name"];
$action["param"] = $action_line["action_param"]; $action["param"] = $action_line["action_param"];
array_push($actions, $action); array_push($actions, $action);
} }
} }
$filter = array(); $filter = array();
$filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]); $filter["match_any_rule"] = sql_bool_to_bool($line["match_any_rule"]);
@ -1982,7 +1982,7 @@
return true; return true;
} }
$pdo->commit(); $pdo->commit();
return false; return false;
} }
@ -2167,7 +2167,7 @@
function cleanup_tags($days = 14, $limit = 1000) { function cleanup_tags($days = 14, $limit = 1000) {
$days = (int) $days; $days = (int) $days;
if (DB_TYPE == "pgsql") { if (DB_TYPE == "pgsql") {
$interval_query = "date_updated < NOW() - INTERVAL '$days days'"; $interval_query = "date_updated < NOW() - INTERVAL '$days days'";
@ -2177,9 +2177,9 @@
$tags_deleted = 0; $tags_deleted = 0;
$pdo = Db::pdo(); $pdo = Db::pdo();
while ($limit > 0) { while ($limit > 0) {
$limit_part = 500; $limit_part = 500;
$sth = $pdo->prepare("SELECT ttrss_tags.id AS id $sth = $pdo->prepare("SELECT ttrss_tags.id AS id
@ -2568,6 +2568,6 @@
return $default; return $default;
} }
function arr_qmarks($arr) { function arr_qmarks($arr) {
return str_repeat('?,', count($arr) - 1) . '?'; return str_repeat('?,', count($arr) - 1) . '?';
} }