Comments (6)
Le content-type est ok (application/rss+xml
) et le flux est bien reconnu comme tel : https://app.flus.fr/collections/1743615831998658438
Par contre il y a un problème dans la génération du flux : il est annoncé comme encodé en UTF-8, mais contient des caractères qui ne le sont pas (et d’autres qui le sont, ce qui rend les contournements très compliqués). En l’occurrence je ne peux rien faire ici, c’est la méthode PHP DOMDocument::loadXML()
qui m’envoie bouler.
Je n’ai pas compris :
L'outil ne s'annonce pas
Est-ce que tu voulais dire que Flus n’explique pas l’erreur ?
from flus.
J’ai tenté un contournement en changeant manuellement l'encoding pour de l'iso-8859-1 (cf 6e9d915) et ça marche. Cependant, je ne suis vraiment pas sûr de vouloir merger ça : ça donne du poids à de mauvaises pratiques et, même si le flux fonctionnera dans flusio, il ne fonctionnera pas ailleurs à priori.
Je garde le ticket ouvert quelques jours le temps d'y réfléchir.
Edit: SimplePie (et donc FreshRSS) doit bien faire une manipulation de ce genre puisqu'il arrive à lire ce flux. Par contre les caractères non reconnus dans les titres sont remplacés par des ?
. Je n'ai pas encore regardé comment il s’y prend.
from flus.
Non pardon, je disais 2 fois la même chose, et je me suis planté : je n'avais pas vu l'annonce du Content-Type
.
Évidemment, le document XHTML est préfixé avec <?xml version="1.0" encoding="iso-8859-1"?>
… mais pas le flux RSS.
from flus.
Finalement j’ai décidé de gérer ce genre de flux pour plusieurs raisons :
- SimplePie gère déjà le cas (avec son propre parser si j'ai bien compris ?)
- j’ai déjà à gérer des tas de flux invalides (dates non déclarées, mauvais content-type notamment)
- le code pour gérer ça n’est ni très long, ni trop compliqué à comprendre
Par rapport à ma tentative de l’autre jour, j’ai changé de stratégie : je considère que l’encoding déclaré est celui souhaité (ici, de l’UTF-8). Je l’extrait donc, et force un réencodage de la chaîne avec mb_convert_encoding
, ce qui a pour effet de remplacer les caractères non reconnus par des ?
.
Tout est là : #543
Je fermerai le ticket quand ce sera en production !
from flus.
Et c’est bon : https://app.flus.fr/collections/1743615831998658438
from flus.
Super, merci beaucoup :) intéressant de suivre ton cheminement de pensée !
from flus.
Related Issues (20)
- Dossier de cache non créé par défaut? HOT 2
- Flus.fr - thème sombre HOT 1
- [Question] Moving to a popular framework HOT 1
- [feature-request] possibility to unread a link HOT 4
- [amélioration] Remettre le défilement là où il était après avoir effectué une action HOT 7
- Récupérer la durée des vidéos HOT 8
- Erreur 500 HOT 6
- Import en masse HOT 4
- Problème d'affichage des options de « Vider le journal » HOT 1
- Création de compte : pas de courriel de confirmation HOT 2
- Un lien relatif de type `application/rss+xml` suggère une adresse incorrecte de flux à suivre HOT 3
- Impossible d’installer xdebug avec php-7.4 (installation avec docker, pour le dévelopement) HOT 3
- Items en double HOT 2
- Flux HAL détecté seulement comme une page web HOT 4
- Unable to setup database HOT 5
- [DOC] Apache2 configuration HOT 3
- [UI/UX] Interface display is too big HOT 1
- [BUG] Images not loaded in news HOT 7
- [BUG] Feed not working HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flus.