[oembed] 5 commits

spip-contrib-extensions/oembed | 5 commits

Par Glop, le 19 juillet 2021 à 13h28min :

Pouvoir interdire explicitement certains providers

Il est parfois nécessaire de pouvoir interdire certains providers
oEmbed, tout en gardant l’option detecter_lien activée. (Par exemple
lorsqu’on a un alias de nom de domaine www.monsite.tld → monsite.tld :
oEmbed ne détecte pas www.monsite.tld comme un lien vers lui-même.)

Ce patch permet de considérer les providers dont l’endpoint a été mis
à la chaîne vide '' comme étant explicitement interdits : même si
detecter_lien est activée, oEmbed n’ira pas voir s’il s’agit d’un
provider oEmbed.

Le principe est que oembed_verifier_provider() ne renvoie false
que lorsque le provider n’est pas dans la liste des providers connus,
mais renvoie array('endpoint' => '') lorsque le provider est interdit
(y compris dans le cas d’un lien vers soi-même).

Modifié
inc/oembed.php
oembed_pipelines.php

Détails : Pouvoir interdire explicitement certains providers · cdc6ad45cd - oembed - SPIP on GIT

==============================
Par Cerdic, le 10 mars 2022 à 11h33min :

on eviter de changer le comportement par defaut de la fonction oembed_lister_providers() en lui ajoutant un parametre pour avoir la liste complete avec les providers interdits

Modifié
inc/oembed.php
oembed_pipelines.php

Détails : on eviter de changer le comportement par defaut de la fonction oembed_lister_providers() en lui ajoutant un parametre pour avoir la liste complete avec les providers interdits · 43180a6ac5 - oembed - SPIP on GIT

==============================
Par Glop, le 19 juillet 2021 à 13h51min :

Test désormais inutile dans oembed_embarquer_lien()

Le commit précédent fait en sorte qu’un lien vers soi-même soit
détecté et interdit lorsque oembed_recuperer_data() appelle
oembed_verifier_provider() : dans le cas d’un lien vers soi-même,
cette dernière renvoie un provider dont l’endpoint est vide, ce qui
force oembed_recuperer_data() à considérer le provider comme interdit.

Il n’est donc plus nécessaire de faire le test dans
oembed_embarquer_lien() : le modèle modeles/oembed se charge
d’appeler oembed_recuperer_data() et donc de faire lui-même la
vérification.

Modifié
inc/oembed.php

Détails : Test désormais inutile dans oembed_embarquer_lien() · 2f7eb65f62 - oembed - SPIP on GIT

==============================
Par Cerdic, le 10 mars 2022 à 12h00min :

Une fonction oembed_provider_from_url() qui prend en compte la liste declarative + la detection eventuelle, que l’on peut reutiliser dans oembed_embarquer_lien() pour eviter de calculer un modele pour rien

  • mise au propre de l’option detecter_lien en bool|null pour forcer/interdire/automatique au lieu d’une string oui/non dont le non voulait en fait dire ‹ auto ›. On supporte les appels existants avec oui ou non pour ne rien casser
  • oembed_verifier_provider() prend en compte l’adresse officielle du site (en meta) ainsi que l’adresse courante pour detecter le cas d’un oembed vers soi meme

Modifié
inc/oembed.php
oembed_pipelines.php
spip-cli/OembedRecupererData.php

Détails : Une fonction oembed_provider_from_url() qui prend en compte la liste declarative + la detection eventuelle, que l'on peut reutiliser dans oembed_embarquer_lien() pour eviter de calculer un modele pour rien · f48b114cb7 - oembed - SPIP on GIT

==============================
Par Glop, le 19 juillet 2021 à 14h04min :

Utiliser aussi oembed_provider_from_url() dans le filtre |oembed pour prendre en compte les providers interdit ainsi que la configuration de la detection de liens si elle est activee

  • utiliser une static dans oembed_provider_from_url() pour ne pas faire 2 fois la detection d’une meme url

Modifié
inc/oembed.php
oembed_fonctions.php

Détails : Utiliser aussi `oembed_provider_from_url()` dans le filtre `|oembed` pour prendre en compte les providers interdit ainsi que la configuration de la detection de liens si elle est activee · 2ea144eb25 - oembed - SPIP on GIT