2 Commits
1.4.6 ... 1.4.7

Author SHA1 Message Date
Torsten Stelling
04dfc947a8 added release notes 2014-01-15 17:31:42 +01:00
Torsten Stelling
1706ba074f added rewrite_urls function since it was removed from tinytinyrss 2014-01-15 17:30:20 +01:00
2 changed files with 52 additions and 3 deletions

View File

@@ -114,3 +114,6 @@ v1.4.6 - 2014/1/15
* merged bigger pull request to get more Fever API RSS Readers to work * merged bigger pull request to get more Fever API RSS Readers to work
v1.4.7 - 2014/1/15
* added rewrite url function to module, since it was removed from tinytinyrss

View File

@@ -1,6 +1,6 @@
<?php <?php
// v1.4.6 // v1.4.7
class FeverAPI extends Handler { class FeverAPI extends Handler {
@@ -287,11 +287,57 @@ class FeverAPI extends Handler {
return $links; return $links;
} }
function rewrite_urls($html) {
libxml_use_internal_errors(true);
$charset_hack = '<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>';
$doc = new DOMDocument();
$doc->loadHTML($charset_hack . $html);
$xpath = new DOMXPath($doc);
$entries = $xpath->query('//*/text()');
foreach ($entries as $entry) {
if (strstr($entry->wholeText, "://") !== false) {
$text = preg_replace("/((?<!=.)((http|https|ftp)+):\/\/[^ ,!]+)/i",
"<a target=\"_blank\" href=\"\\1\">\\1</a>", $entry->wholeText);
if ($text != $entry->wholeText) {
$cdoc = new DOMDocument();
$cdoc->loadHTML($charset_hack . $text);
foreach ($cdoc->childNodes as $cnode) {
$cnode = $doc->importNode($cnode, true);
if ($cnode) {
$entry->parentNode->insertBefore($cnode);
}
}
$entry->parentNode->removeChild($entry);
}
}
}
$node = $doc->getElementsByTagName('body')->item(0);
// http://tt-rss.org/forum/viewtopic.php?f=1&t=970
if ($node)
return $doc->saveXML($node);
else
return $html;
}
function my_sanitize($str, $site_url = false) { function my_sanitize($str, $site_url = false) {
$res = trim($str); if (!$res) return ''; $res = trim($str); if (!$res) return '';
if (strpos($res, "href=") === false) if (strpos($res, "href=") === false)
$res = rewrite_urls($res); $res = $this->rewrite_urls($res);
$charset_hack = '<head> $charset_hack = '<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
@@ -328,7 +374,7 @@ class FeverAPI extends Handler {
$entries = $xpath->query('//iframe'); $entries = $xpath->query('//iframe');
foreach ($entries as $entry) { foreach ($entries as $entry) {
$entry->setAttribute('sandbox', 'allow-scripts'); $entry->setAttribute('sandbox', 'allow-scripts allow-same-origin');
} }
$disallowed_attributes = array('id', 'style', 'class'); $disallowed_attributes = array('id', 'style', 'class');