Bugs chargement des articles complets

Corrige https://github.com/marienfressinaud/FreshRSS/issues/365
Ajoute le nettoyage correct du HTML par SimplePie, ainsi que le décodage
des caractères HTML dans l'URL, et enfin un message dans le syslog pour
chaque article téléchargé
This commit is contained in:
Alexandre Alapetite
2014-01-18 22:54:53 +01:00
parent 5f0594c630
commit 6f117abfb6
2 changed files with 4 additions and 12 deletions

View File

@@ -159,7 +159,7 @@ class FreshRSS_Entry extends Minz_Model {
try {
// l'article n'est pas en BDD, on va le chercher sur le site
$this->content = get_content_by_parsing(
$this->link(), $pathEntries
htmlspecialchars_decode($this->link(), ENT_QUOTES), $pathEntries
);
} catch (Exception $e) {
// rien à faire, on garde l'ancien contenu (requête a échoué)

View File

@@ -110,6 +110,7 @@ function sanitizeHTML($data) {
static $simplePie = null;
if ($simplePie == null) {
$simplePie = new SimplePie();
$simplePie->init();
}
return html_only_entity_decode($simplePie->sanitize->sanitize($data, SIMPLEPIE_CONSTRUCT_MAYBE_HTML));
}
@@ -118,22 +119,13 @@ function sanitizeHTML($data) {
function get_content_by_parsing ($url, $path) {
require_once (LIB_PATH . '/lib_phpQuery.php');
syslog(LOG_INFO, 'FreshRSS GET ' . $url);
$html = file_get_contents ($url);
if ($html) {
$doc = phpQuery::newDocument ($html);
$content = $doc->find ($path);
$content->find ('*')->removeAttr ('style')
->removeAttr ('id')
->removeAttr ('class')
->removeAttr ('onload')
->removeAttr ('target');
$content->removeAttr ('style')
->removeAttr ('id')
->removeAttr ('class')
->removeAttr ('onload')
->removeAttr ('target');
return $content->__toString ();
return sanitizeHTML($content->__toString());
} else {
throw new Exception ();
}