]> git.wh0rd.org - tt-rss.git/commitdiff
packed headlines: no point in using JSON here
authorAndrew Dolgov <noreply@fakecake.org>
Fri, 30 Nov 2018 10:56:33 +0000 (13:56 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Fri, 30 Nov 2018 10:56:33 +0000 (13:56 +0300)
classes/feeds.php
js/functions.js
js/viewfeed.js

index fd3d8f757cfda1e91312ad9214db1f1084c7eb00..2bd9b0e6573f7afc0b6c3d4551b287bd262fdf56 100755 (executable)
@@ -496,7 +496,7 @@ class Feeds extends Handler_Protected {
                                                }
                                        }
 
-                    $content_encoded = htmlspecialchars(json_encode($line["content"]));
+                    $content_encoded = htmlspecialchars($line["content"]);
 
                     $tmp_content = "<div class=\"cdm expanded $hlc_suffix $class\"
                         id=\"RROW-$id\" data-content=\"$content_encoded\" data-article-id='$id' data-orig-feed-id='$feed_id' $mouseover_attrs>";
index 29dbe70cf80b0b9acb33beec4df935e0baf33231..437ea1d0dd9161292aba2e45059830e921eac694 100755 (executable)
@@ -1424,85 +1424,21 @@ function get_timestamp() {
 }
 
 function helpDialog(topic) {
-       const query = "backend.php?op=backend&method=help&topic=" + param_escape(topic);
+    const query = "backend.php?op=backend&method=help&topic=" + param_escape(topic);
 
-       if (dijit.byId("helpDlg"))
-               dijit.byId("helpDlg").destroyRecursive();
+    if (dijit.byId("helpDlg"))
+        dijit.byId("helpDlg").destroyRecursive();
 
-       const dialog = new dijit.Dialog({
-               id: "helpDlg",
-               title: __("Help"),
-               style: "width: 600px",
-               href: query,
-       });
-
-       dialog.show();
-}
+    const dialog = new dijit.Dialog({
+        id: "helpDlg",
+        title: __("Help"),
+        style: "width: 600px",
+        href: query,
+    });
 
-function htmlspecialchars_decode (string, quote_style) {
-  // http://kevin.vanzonneveld.net
-  // +   original by: Mirek Slugen
-  // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
-  // +   bugfixed by: Mateusz "loonquawl" Zalega
-  // +      input by: ReverseSyntax
-  // +      input by: Slawomir Kaniecki
-  // +      input by: Scott Cariss
-  // +      input by: Francois
-  // +   bugfixed by: Onno Marsman
-  // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
-  // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
-  // +      input by: Ratheous
-  // +      input by: Mailfaker (http://www.weedem.fr/)
-  // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
-  // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
-  // *     example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
-  // *     returns 1: '<p>this -> &quot;</p>'
-  // *     example 2: htmlspecialchars_decode("&amp;quot;");
-  // *     returns 2: '&quot;'
-  let optTemp = 0,
-    i = 0,
-    noquotes = false;
-  if (typeof quote_style === 'undefined') {
-    quote_style = 2;
-  }
-  string = string.toString().replace(/&lt;/g, '<').replace(/&gt;/g, '>');
-  const OPTS = {
-    'ENT_NOQUOTES': 0,
-    'ENT_HTML_QUOTE_SINGLE': 1,
-    'ENT_HTML_QUOTE_DOUBLE': 2,
-    'ENT_COMPAT': 2,
-    'ENT_QUOTES': 3,
-    'ENT_IGNORE': 4
-  };
-  if (quote_style === 0) {
-    noquotes = true;
-  }
-  if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags
-    quote_style = [].concat(quote_style);
-    for (i = 0; i < quote_style.length; i++) {
-      // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
-      if (OPTS[quote_style[i]] === 0) {
-        noquotes = true;
-      } else if (OPTS[quote_style[i]]) {
-        optTemp = optTemp | OPTS[quote_style[i]];
-      }
-    }
-    quote_style = optTemp;
-  }
-  if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
-    string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
-    // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
-  }
-  if (!noquotes) {
-    string = string.replace(/&quot;/g, '"');
-  }
-  // Put this in last place to avoid escape being double-decoded
-  string = string.replace(/&amp;/g, '&');
-
-  return string;
+    dialog.show();
 }
 
-
 function label_to_feed_id(label) {
        return _label_base_index - 1 - Math.abs(label);
 }
index 4d65669617416a86138eb479d144ccbef0cd97de..072f6c9cb02a373c41f1df68d012a1f12194ee75 100755 (executable)
@@ -1013,13 +1013,7 @@ function unpackVisibleHeadlines() {
        if (row.offsetTop <= $("headlines-frame").scrollTop + $("headlines-frame").offsetHeight) {
             console.log("unpacking: " + row.id);
 
-            let content;
-
-            try {
-                content = JSON.parse(row.getAttribute("data-content"));
-            } catch (e) {
-               content = "Error decoding content: " + row.getAttribute("data-content");
-                       }
+            const content = row.getAttribute("data-content");
 
                        row.select(".cdmContentInner")[0].innerHTML = content;
             row.removeAttribute("data-content");