sanitize: properly handle cached content in archived articles

master
Andrew Dolgov 7 years ago
parent c4ebf01e69
commit 7818bfde0b

@ -893,23 +893,22 @@
$doc->loadHTML($charset_hack . $res);
$xpath = new DOMXPath($doc);
$entries = $xpath->query('(//a[@href]|//img[@src]|//video/source[@src])');
$ttrss_uses_https = parse_url(get_self_url_prefix(), PHP_URL_SCHEME) === 'https';
$rewrite_base_url = $site_url ? $site_url : SELF_URL_PATH;
foreach ($entries as $entry) {
$entries = $xpath->query('(//a[@href]|//img[@src]|//video/source[@src])');
if ($site_url) {
foreach ($entries as $entry) {
if ($entry->hasAttribute('href')) {
$entry->setAttribute('href',
rewrite_relative_url($site_url, $entry->getAttribute('href')));
rewrite_relative_url($rewrite_base_url, $entry->getAttribute('href')));
$entry->setAttribute('rel', 'noopener noreferrer');
}
if ($entry->hasAttribute('src')) {
$src = rewrite_relative_url($site_url, $entry->getAttribute('src'));
$src = rewrite_relative_url($rewrite_base_url, $entry->getAttribute('src'));
$extension = $entry->tagName == 'source' ? '.mp4' : '.png';
$cached_filename = CACHE_DIR . '/images/' . sha1($src) . $extension;
@ -962,7 +961,6 @@
$entry->parentNode->replaceChild($p, $entry);
}
}
}
if (strtolower($entry->nodeName) == "a") {
$entry->setAttribute("target", "_blank");

Loading…
Cancel
Save