Closed qwertygc closed 9 years ago
Pour tous ceux en http status: 301
, c'est simplement qu'ils ont changé d'adresse et que la configuration de ton serveur ne permet pas à curl de suivre ces redirections. Leed n'a pas ce problème car il n'utilise pas curl
pour faire du téléchargement en parallèle. Malheureusement, on ne peut rien faire pour changer ça, c'est une question de configuration, cf la note ici.
Par exemple, mozillazine est ici maintenant.
Pour http://xaviergorce.com/feed/, il fait une erreur 404, je ne sais pas pourquoi il fonctionne dans Leed du coup…
Pour tous les autres flux qui sont marqués Unable to find a feed at the address
, c'est plus subtil, je vais regarder.
https://unsplash.com/rss (Unable to find a feed at the address https://unsplash.com/rss)
(après correction et tesant les nouveaux liens.) Pour XavierGorce, c'est un vieux lien oublié de l'enlever.
Si Curl n'est pas capable de suivre la redirection il doit au moins être possible de récupérer la valeur de redirection non ? Du coup il serait sans doute possible de "réparer" l'adresse du flux en la changeant par la nouvelle adresse. Ce serait d'ailleurs même intéressant si Curl est capable de suivre la redirection comme ça l'utilisateur garderait une base saine de flux RSS.
@marienfressinaud : C'est possible en effet, mais ça demande pas mal de boulot pour un résultat qui risque de poser des problèmes de sécurité.
Cf http://au.php.net/manual/ro/function.curl-setopt.php#71313 :
then you will want to read http://www.php.net/ChangeLog-4.php which says "Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are enabled." as of PHP 4.4.4/5.1.5. This is due to the fact that curl is not part of PHP and doesn't know the values of open_basedir or safe_mode, so you could comprimise your webserver operating in safe_mode by redirecting (using header('Location: ...')) to "file://" urls, which curl would have gladly retrieved.
L'idée est de modifier la fonction curl_multi_exec
pour récupérer les headers retournés et suivre le "Location:". Mais celui-ci peut pointer sur un fichier local par exemple. Cf http://slopjong.de/2012/03/31/curl-follow-locations-with-safe_mode-enabled-or-open_basedir-set/.
EDIT : Leed et les autres ne sont pas touchés par ce problème car ils utilisent file_get_contents qui a l'inconvénient de faire des appels à la chaîne, et non en parallèle, mais qui sont des composants de PHP et qui ont donc accès à la configuration et notamment à open_basedir
et safe_mode
.
Ah oui exact (j'ai le même problème actuellement pour les mises à jour de FRSS :p). Il doit être possible tout de même de vérifier la valeur de Location (un filter_var($url, FILTER_VALIDATE_URL)
peut déjà aider)
Ou alors de proposer à l'utilisateur la nouvelle URL, mais sans la suivre.
:+1: pour proposer à l'utilisateur de suivre l'URL, je note dans https://github.com/FreederTeam/Freeder/issues/93.
J'ai résolu ce problème dans mon dernier commit sur master. Tout devrait marcher maintenant. La modification pour curl demande plus de boulot et de réflexion, je la déplace dans l'issue correspondante.
Pour l'historique, le problème des ces flux est qu'ils sont pas servis avec le bon content-type. Ils sont servis en tant que text/html
et non application/rss
ou autre content-type réservé aux flux… #relou
Hello ! Toujours des problèmes pour les flux suivants : http://news.jesuislibre.net/mediapart-economie.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-economie.rss) http://news.jesuislibre.net/mediapart-breves.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-breves.rss) http://news.jesuislibre.net/mediapart-france.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-france.rss) http://www.hoaxbuster.com/rss.xml (Unable to parse feed file) Voilà voilà :)
J'ai corrigé le problème avec jesuislibre.net. Ils ne servaient pas leur flux RSS avec un content-type standard (application/rss+xml) mais avec application/x-rss+xml…
Pour hoaxbuster, leur flux n'est pas valide http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.hoaxbuster.com%2Frss.xml
pubDate must be an RFC-822 date-time: <span class="date-display-single" property="dc:date" datatype="xsd:dateTime" content="2014-10-24T00:00:00+02:00">24 Octobre 2014</span>
Je vais réfléchir à la meilleure manière de faire, mais je pense que dans tous les cas les dates ne seront pas gérées.
Justement, avec jesuislibre.net, ca marche toujours pas, même après avoir mit à jour freeder !
J'ai corrigé dans la branche dev
normalement. Je viens de tester et a priori c'est fonctionnel.
@qwertygc: J'ai mis à jour dans la branche dev
:
jesuislibre.net
).Les liens vers les articles sont relatifs et non absolus, mais ça devrait marcher. La date est juste pas dans le format attendu dans un flux RSS. J'ai pas envie de coder une fonction compliquée juste pour eux… qui me semble être une très mauvaise pratique. Du coup, tous leurs articles sont estampillés à la date du refresh.
@marienfressinaud FWIW, Zebra_cURL propose un très bon wrapper asynchrone au-dessus de l'extension cURL
de PHP, et a l'air de gérer les redirections directement. Si jamais ça peut te servir pour FreshRSS… :)
Hello ! Impossible d'importer certains flux :* http://www.laboiteverte.fr/feed/ (Unable to find a feed at the address http://www.laboiteverte.fr/feed/) http://unsplash.com/rss (Feed page not found (http status: 301)) http://feeds.feedburner.com/Pebkacfr?format=xml (Feed page not found (http status: 301)) http://xaviergorce.com/feed/ (Feed page not found (http status: 404)) http://scinfolex.wordpress.com/feed/ (Feed page not found (http status: 301)) http://www.cyrille-borne.com/feed (Feed page not found (http status: 301)) http://blog.idleman.fr/?feed=rss2 (Unable to find a feed at the address http://blog.idleman.fr/?feed=rss2) http://korben.info/feed/ (Feed page not found (http status: 301)) http://etudiant-libre.fr.nf/feed.php (Unable to find a feed at the address http://etudiant-libre.fr.nf/feed.php) http://mart-e.be/feed (Feed page not found (http status: 301)) http://ploum.net/feed (Feed page not found (http status: 301)) http://tontof.net/?rss (Unable to find a feed at the address http://tontof.net/?rss) http://news.jesuislibre.net/mediapart-economie.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-economie.rss) http://news.jesuislibre.net/mediapart-breves.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-breves.rss) http://news.jesuislibre.net/mediapart-france.rss (Unable to find a feed at the address http://news.jesuislibre.net/mediapart-france.rss) http://www.mozillazine-fr.org/contenu.xml (Feed page not found (http status: 301)) http://www.hoaxbuster.com/rss.xml (Unable to parse feed file)
(pourtant ils marchent dans Leed)