]> git.wh0rd.org - tt-rss.git/blobdiff - include/rssfuncs.php
calculate_article_hash: strip tags before hashing fields
[tt-rss.git] / include / rssfuncs.php
old mode 100644 (file)
new mode 100755 (executable)
index a922516..115d9c9
@@ -9,7 +9,11 @@
 
                foreach ($article as $k => $v) {
                        if ($k != "feed" && isset($v)) {
-                               $tmp .= sha1("$k:" . (is_array($v) ? implode(",", $v) : $v));
+                               $x = strip_tags(is_array($v) ? implode(",", $v) : $v);
+
+                               //_debug("$k:" . sha1($x) . ":" . htmlspecialchars($x), true);
+
+                               $tmp .= sha1("$k:" . sha1($x));
                        }
                }
 
 
                $feed = db_escape_string($feed);
 
-               $result = db_query("SELECT feed_url,auth_pass,auth_pass_encrypted
+               $result = db_query("SELECT feed_url,auth_pass,auth_login,auth_pass_encrypted
                                        FROM ttrss_feeds WHERE id = '$feed'");
 
                $auth_pass_encrypted = sql_bool_to_bool(db_fetch_result($result,
                                        _debug("RID: $entry_ref_id, IID: $entry_int_id", $debug_enabled);
 
                                        if (DB_TYPE == "pgsql") {
-                                               $tsvector_combined = db_escape_string(mb_substr($entry_title . ' ' . strip_tags($entry_content),
+                                          $tsvector_combined = db_escape_string(mb_substr($entry_title . ' ' . strip_tags(str_replace('<', ' <', $entry_content)),
                                                        0, 1000000));
 
                                                $tsvector_qpart = "tsvector_combined = to_tsvector('$feed_language', '$tsvector_combined'),";
                                                        SET score = '$score' WHERE ref_id = '$ref_id'");
 
                                        if ($mark_unread_on_update) {
+                                               _debug("article updated, marking unread as requested.", $debug_enabled);
+
                                                db_query("UPDATE ttrss_user_entries
                                                        SET last_read = null, unread = true WHERE ref_id = '$ref_id'");
                                        }
                                        if ($file_content && strlen($file_content) > _MIN_CACHE_IMAGE_SIZE) {
                                                file_put_contents($local_filename, $file_content);
                                        }
+                               } else {
+                                       touch($local_filename);
                                }
                        }
                }
                                        array_push($matches, $action);
 
                                        // if Stop action encountered, perform no further processing
-                                       if ($action["type"] == "stop") return $matches;
+                                       if (isset($action["type"]) && $action["type"] == "stop") return $matches;
                                }
                        }
                }