Bonjour,
Dans mon jeu ci-dessous j’ai deux champs qui comportent une URL ; « yt:defaultThumbnailUrl » et « ytsb:customUrl ».
Mais il n’y a que « yt:defaultThumbnailUrl » qui est reconnu comme format URL (et cliquable dans la visualisation des données).
https://explore.data.gouv.fr/fr/datasets/67e5de7e2c7005cdcfb2190a/#/resources/c45b6dee-e948-41f2-8351-43c17092abf4
Nb: ne pas confondre avec mon champ « yt:customUrl » qui ne contient pas une URL.
Serait-ce les caractères « @ » qui induirait en erreur la détection ?
Est-ce contournable avec la variante URL encodée du caractère « %40 » ?
Bonjour,
Toute la partie détection des formats est fait par notre brique csv-detective, en l’occurrence pour les URL c’est ici. En effet la présence d’un @ invalide le test, tout autre caractère ne devrait pas poser problème.
1 « J'aime »
Je comprends qu’il voudrait définir comme URL toutes données qui seraient seulement un nom de domaine mais pas un type email (ou le type twitter
)…
On pourrait changer comme ci-dessous ;
a = 'http://' in val
b = 'https://' in val
c = 'www.' in val
d = any([x in val for x in ['.fr', '.com', '.org', '.gouv', '.net']])
e = not ('@' in val)
return (a or b or (c and e) or (d and e))
Merci, je suis pas sûr de bien comprendre la regexp ; vous risquez pas de perdre le support des URL en ‹ http:// › ?
Non, le « s » est optionnel. Dans les tests la valeur « http://data.gouv.fr » est bien considérée comme valide.