$entry_content = pg_escape_string($entry_content);
$entry_title = pg_escape_string($entry_title);
-
- $content_md5 = md5($entry_content);
-
+
+ $content_md5 = md5(strip_tags($entry_content));
+
$result = pg_query($link, "
SELECT
id,unread,md5_hash,last_read,no_orig_date,title,
$no_orig_date = pg_fetch_result($result, 0, "no_orig_date");
$orig_title = pg_fetch_result($result, 0, "title");
- // disable update detection for posts which didn't have correct
- // publishment date, because they will always register as updated
- // sadly this doesn't catch feed generators which input current date
- // in posts all the time (some planets do this)
-
- if ($no_orig_date != 't' && (!$last_read || $md5_hash != $content_md5)) {
+ if ($content_md5 != $md5_hash) {
+ $update_md5_qpart = "md5_hash = '$content_md5',";
$last_read_qpart = 'last_read = null,';
- } else {
- $last_read_qpart = '';
+ $update_content_qpart = "content = '$entry_content',";
}
- // mark post as updated on title change
- // maybe we should mark it as unread instead?
-
if ($orig_title != $entry_title) {
- $last_read_qpart = 'last_read = null,';
- }
-
- // don't bother updating timestamps on posts with broken pubDate
-
- if ($no_orig_date != 't') {
- $update_timestamp_qpart = "updated = '$entry_timestamp_fmt',";
- }
-
-// print "$content_md5 vs $md5_hash [$entry_title vs $orig_title, $entry_id, $feed_id]<br>";
-
- if ($content_md5 != $md5_hash) {
- $update_md5_qpart = "md5_hash = '$content_md5',";
+ print "[$orig_title] : [$entry_title]";
+ $entry_title_qpart = "title ='$entry_title',";
}
$query = "UPDATE ttrss_entries
SET
- title ='$entry_title',
+ $entry_title_qpart
link = '$entry_link',
$update_timestamp_qpart
$last_read_qpart
$update_md5_qpart
- content = '$entry_content',
+ $update_content_qpart
unread = '$unread'
WHERE
id = '$entry_id'";
-// print "<pre>".htmlspecialchars($query)."</pre>";
+ print "<pre>".htmlspecialchars($query)."</pre>";
$result = pg_query($link, $query);
for (i = 0; i < content.rows.length; i++) {
var row_id = content.rows[i].id.replace("RROW-", "");
if (row_id.length > 0) {
- rows.push(row_id);
- content.rows[i].className = content.rows[i].className.replace("Unread", "");
+ if (content.rows[i].className.match("Unread")) {
+ rows.push(row_id);
+ content.rows[i].className = content.rows[i].className.replace("Unread", "");
+ }
}
}
- var feedr = document.getElementById("FEEDR-" + feed);
- var feedu = document.getElementById("FEEDU-" + feed);
-
- feedu.innerHTML = feedu.innerHTML - rows.length;
-
- if (feedu.innerHTML > 0 && !feedr.className.match("Unread")) {
- feedr.className = feedr.className + "Unread";
- } else if (feedu.innerHTML <= 0) {
- feedr.className = feedr.className.replace("Unread", "");
- }
-
- var query_str = "backend.php?op=rpc&subop=catchupPage&ids=" +
- param_escape(rows.toString());
+ if (rows.length > 0) {
- notify("Marking this page as read...");
+ var feedr = document.getElementById("FEEDR-" + feed);
+ var feedu = document.getElementById("FEEDU-" + feed);
+
+ feedu.innerHTML = feedu.innerHTML - rows.length;
+
+ if (feedu.innerHTML > 0 && !feedr.className.match("Unread")) {
+ feedr.className = feedr.className + "Unread";
+ } else if (feedu.innerHTML <= 0) {
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+
+ var query_str = "backend.php?op=rpc&subop=catchupPage&ids=" +
+ param_escape(rows.toString());
+
+ notify("Marking this page as read...");
+
+ xmlhttp.open("GET", query_str, true);
+ xmlhttp.onreadystatechange=notify_callback;
+ xmlhttp.send(null);
- xmlhttp.open("GET", query_str, true);
- xmlhttp.onreadystatechange=notify_callback;
- xmlhttp.send(null);
+ } else {
+ notify("No unread items on this page.");
+ }
}
function catchupAllFeeds() {