Vimeo plante en tant que document distant
ARNO* <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Salut,
J’ai l’habitude de référencer des pages Viméo comme documents joints. De manière très usuelle, dans un article, «Joindre document», onglet «Sur l’internet», je colle par exemple:
https://vimeo.com/304775757
et hop, ça me met la page en tant que document distant joint à l’article, avec le titre récupéré.
Sauf que depuis quelques jours, ça ne fonctionne plus.
- En local sur ma bécane, ça fonctionne.
- Sur un serveur Web en ligne, ça déconne, le document n’est «pas trouvé»:
Je suis allé jouer avec inc/distant.php, mais je n’arrive pas à trouver où ça foire avec Viméo (avec Youtube, par exemple, pas de problème).
Il me semble qu’on arrive à récupérer le contenu de la page, et on se retrouve à la ligne 447 avec:
} elseif ($res) {
$result['page'] = &$res;
$result['length'] = strlen($result['page']);
}
Là j’ai quelque chose que je ne comprends pas: on renseigne le $result[‘page’], mais on laisse $result[‘status’] à 0. Du coup, dans recuperer_page, un résultat obtenu de cette façon là est jeté avec le test sur status!==200 de la ligne 625:
if ($res['status'] !== 200) {
return false;
}
=======
Pour faire fonctionner Vimeo, j’y parviens en faisant la modif suivante:
inc/distant.php, ligne 440 et suivantes=-;
// si on a pas deja recuperer le contenu par une methode detournee
if (!$result['length']) {
$res = recuperer_body($handle, $options['taille_max'], $gz ? $gz : $copy);
fclose($handle);
if ($copy) {
$result['length'] = $res;
$result['file'] = $copy;
} elseif ($res) {
$result['status'] = 200;
if (!$result['headers']) $result['headers'] .= "Content-Type: text/html";
$result['page'] = &$res;
$result['length'] = strlen($result['page']);
}
}
C’est-à-dire forcer le statuts à 200 et forcer le content-type à text/html.
Est-ce que quelqu’un peut valider ou invalider cette solution, et éventuellement comiter?
ARNO*
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip