]> git.wh0rd.org - tt-rss.git/blobdiff - classes/rssutils.php
force article content/etc to string when updating to avoid failing null constraint...
[tt-rss.git] / classes / rssutils.php
index a511a74c8652a509d321dde442800c566a11b3a7..b6a00d309ccfd6ac6ad395b5838ef6cbac8c505c 100644 (file)
@@ -221,7 +221,7 @@ class RSSUtils {
 
                        $owner_uid = $row["owner_uid"];
 
-                       $auth_pass_encrypted = sql_bool_to_bool($row["auth_pass_encrypted"]);
+                       $auth_pass_encrypted = $row["auth_pass_encrypted"];
 
                        $auth_login = $row["auth_login"];
                        $auth_pass = $row["auth_pass"];
@@ -341,8 +341,8 @@ class RSSUtils {
                if ($row = $sth->fetch()) {
 
                        $owner_uid = $row["owner_uid"];
-                       $mark_unread_on_update = sql_bool_to_bool($row["mark_unread_on_update"]);
-                       $auth_pass_encrypted = sql_bool_to_bool($row["auth_pass_encrypted"]);
+                       $mark_unread_on_update = $row["mark_unread_on_update"];
+                       $auth_pass_encrypted = $row["auth_pass_encrypted"];
 
                        $sth = $pdo->prepare("UPDATE ttrss_feeds SET last_update_started = NOW()
                                WHERE id = ?");
@@ -358,7 +358,7 @@ class RSSUtils {
 
                        $stored_last_modified = $row["last_modified"];
                        $last_unconditional = $row["last_unconditional"];
-                       $cache_images = sql_bool_to_bool($row["cache_images"]);
+                       $cache_images = $row["cache_images"];
                        $fetch_url = $row["feed_url"];
                        $feed_language = mb_strtolower($row["feed_language"]);
                        if (!$feed_language) $feed_language = 'english';
@@ -515,7 +515,7 @@ class RSSUtils {
                        $sth->execute([$feed]);
 
                        if ($row = $sth->fetch()) {
-                               $favicon_needs_check = sql_bool_to_bool($row["favicon_needs_check"]);
+                               $favicon_needs_check = $row["favicon_needs_check"];
                                $favicon_avg_color = $row["favicon_avg_color"];
                                $owner_uid = $row["owner_uid"];
                        } else {
@@ -879,14 +879,14 @@ class RSSUtils {
                                                        $entry_guid_hashed,
                                                        $entry_link,
                                                        $entry_timestamp_fmt,
-                                                       $entry_content,
+                                                       "$entry_content",
                                                        $entry_current_hash,
                                                        $date_feed_processed,
                                                        $entry_comments,
-                                                       $num_comments,
+                                                       (int)$num_comments,
                                                        $entry_plugin_data,
-                                                       $entry_language,
-                                                       $entry_author]);
+                                                       "$entry_language",
+                                                       "$entry_author"]);
 
                                }
 
@@ -973,29 +973,39 @@ class RSSUtils {
                                        _debug("resulting RID: $entry_ref_id, IID: $entry_int_id", $debug_enabled);
 
                                        if (DB_TYPE == "pgsql") {
-                                               $tsvector_combined = mb_substr($entry_title . ' ' . strip_tags(str_replace('<', ' <', $entry_content)),
+                                               $tsvector_combined = mb_substr($entry_title . ' ' .
+                                                       preg_replace('/[<\?\:]/', ' ', strip_tags($entry_content)),
                                                        0, 1000000);
 
-                                               $tsvector_qpart = "tsvector_combined = to_tsvector('$feed_language', ".$pdo->quote($tsvector_combined)."),";
+                                               $tsvector_qpart = "tsvector_combined = to_tsvector(".$pdo->quote($feed_language).", ".$pdo->quote($tsvector_combined)."),";
 
                                        } else {
                                                $tsvector_qpart = "";
                                        }
 
+                                       //_debug($tsvector_qpart);
+
                                        $sth = $pdo->prepare("UPDATE ttrss_entries
-                                               SET title = ?,
-                                                       content = ?,
-                                                       content_hash = ?,
-                                                       updated = ?,
+                                               SET title = :title,
                                                        $tsvector_qpart
-                                                       num_comments = ?,
-                                                       plugin_data = ?,
-                                                       author = ?,
-                                                       lang = ?
-                                               WHERE id = ?");
-
-                                       $sth->execute([$entry_title, $entry_content, $entry_current_hash, $entry_timestamp_fmt,
-                                               $num_comments, $entry_plugin_data, $entry_author, $entry_language, $ref_id]);
+                                                       content = :content,
+                                                       content_hash = :content_hash,
+                                                       updated = :updated,
+                                                       num_comments = :num_comments,
+                                                       plugin_data = :plugin_data,
+                                                       author = :author,
+                                                       lang = :lang                                                                                                            
+                                               WHERE id = :id");
+
+                                       $sth->execute([":title" => $entry_title,
+                                               ":content" => "$entry_content",
+                                               ":content_hash" => $entry_current_hash,
+                                               ":updated" => $entry_timestamp_fmt,
+                                               ":num_comments" => (int)$num_comments,
+                                               ":plugin_data" => $entry_plugin_data,
+                                               ":author" => "$entry_author",
+                                               ":lang" => $entry_language,
+                                               ":id" => $ref_id]);
 
                                        // update aux data
                                        $sth = $pdo->prepare("UPDATE ttrss_user_entries