aboutsummaryrefslogtreecommitdiff
path: root/lib/lib_rss.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2018-11-11 17:31:50 +0100
committerGravatar GitHub <noreply@github.com> 2018-11-11 17:31:50 +0100
commitb672fc190d7df163449e91400c6d6a08a3775835 (patch)
treeddb616efd040ba67783665a4f4372afd43e3b23d /lib/lib_rss.php
parent55992d454811f49fedc157854a6bb068c0f8c74c (diff)
Tweaks for Vienna RSS (#2093)
* Tweaks for Vienna RSS https://github.com/FreshRSS/FreshRSS/issues/2091 https://github.com/ViennaRSS/vienna-rss/issues/1197 * Fix get feed by URL * Fix get item ids returning starred elements * API add item ids by feed URL * Add API filter `it` https://feedhq.readthedocs.io/en/latest/api/reference.html#stream-items-ids * API add `nt=` filter + refactoring * No ; prefix for author https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435562495 * Add id long form prefix and accept short id form https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435631259 * Fix quote problem https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435683930 * Isolate bug fix for News+ https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-435687041 * Rework encoding conventions https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-437441834 * Unicode escaping alternative Alternative approach to encode XML special characters and other problematic characters into their Unicode fullwidth version when we cannot use HTML-encoding because clients disagree wether they should HTML-decode or not. https://github.com/FreshRSS/FreshRSS/issues/2091#issuecomment-436059559
Diffstat (limited to 'lib/lib_rss.php')
-rw-r--r--lib/lib_rss.php12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index 4087f6faf..52e4408d2 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -102,6 +102,18 @@ function safe_ascii($text) {
return filter_var($text, FILTER_DEFAULT, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
}
+function escapeToUnicodeAlternative($text) {
+ $text = htmlspecialchars_decode($text, ENT_QUOTES);
+ // https://raw.githubusercontent.com/mihaip/google-reader-api/master/wiki/StreamId.wiki
+ return trim(str_replace(
+ //Problematic characters
+ array("'", '"', '^', '<', '>', '?', '&', '\\', '/', ',', ';'),
+ //Use their fullwidth Unicode form instead:
+ array("’", '"', '^', '<', '>', '?', '&', '\', '/', ',', ';'),
+ $text
+ ));
+}
+
/**
* Test if a given server address is publicly accessible.
*