Open AntoineAugusti opened 2 months ago
Merci pour l’explication, très clair :ok_hand:
On peut vivre avec ces cas problématiques un moment ou pas ?
Parce que bon, tu vois arriver la solution un peu bourrin : au lieu de faire tous les checks format par format (et à l’intérieur de chaque format, puis par priorité de format déclaré > titre > …), faire les checks d’abord par priorité format déclaré > titre > etc et à l’intérieur de chacun de ces cas, trouver le format. Mais gros gros travail.
On peut vivre avec ces cas problématiques un moment ou pas ?
Oui et non.
Oui car c'est un problème qui est là depuis très longtemps, qui concerne une faible volumétrie.
Non car :
En profiter pour s'assurer qu'on regarde aussi l'URL pour détecter le format GTFS
, ce qui n'est pas fait actuellement.
Je me demandais s'il était souhaitable de rajouter un niveau de détection dans le cas où une ressource GTFS n'est pas importée alors que le titre ou la description du jeu indique 'GTFS', consistant à détecter le format indiqué dans les métadonnées de la ressource headers:content-type = 'application/zip' (voir exemple GTFS de Lille non détecté par le PAN). Il y a cependant des limites :
Suite de #4063. #4066 améliore la situation mais des conflits persistent pour certaines ressources.
Cas actuellement problématique :
http://example.com/export?key=opendata-gtfs-rt
SIRI Lite SX
https://github.com/etalab/transport-site/blob/aa175694b7e54a4f2b4e5f8136dc228f4d328b77/apps/transport/lib/transport/import_data.ex#L351-L359
La ressource va matcher en tant que GTFS-RT (param URL) et en tant que SIRI Lite (titre de la ressource).
La priorité voudrait que : format > titre > description > URL mais le code actuel a cette logique uniquement pour chaque clause de détection de format, pas au global.
Les 2 ressources sont match pour 2 formats différents, mais le
Enum.uniq_by
va conserver uniquement le 1er match, et il se trouve queget_valid_gtfs_rt_resources
est avantget_valid_siri_lite_resources
, on retient donc la ressource avec un format détecté comme GTFS-RT actuellement.https://github.com/etalab/transport-site/blob/aa175694b7e54a4f2b4e5f8136dc228f4d328b77/apps/transport/lib/transport/import_data.ex#L280-L282