mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-05-16 12:24:46 -04:00
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:
@@ -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é)
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user