Re: Vimeo plante en tant que document distant

erational <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Organization secret society of rational thoughts
Message-ID <[email protected]>
Bonjour

Je viens de tester les derniers commits sur inc/distant.php
Cela fonctionne bien. Merci

Je ne crois pas non plus qu'il faille ajouter de fonction de détection 
de type de contenu

Une nouvelle raison pour faire une release de maintenance en début 
d'année :)



Le 23/12/2018 à 11:14, Cerdic a écrit :
> Hello,
>
> donc je confirme la source du bug qui vient bien du passage de Vimeo à 
> TLS 1.2 :
> selon que jÂ’ai le patch 
> https://core.spip.net/projects/spip/repository/revisions/24018 le bug 
> se produit ou non
>
> Cela dit il est possible que si ton PHP est trop ancien, il ne 
> supporte pas TLS 1.2 et le patch ci-dessus ne suffira pasÂ…
>
> En ce qui concerne la méthode détournée, en effet il faut renseigner 
> le status, comme cÂ’est fait plus haut 
> (https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/distant.php#L481) 
> dans lÂ’autre alternative, ce que jÂ’ai fait avec
> http://core.spip.org/projects/spip/repository/revisions/24171
> et reports.
>
> Mais je suis dÂ’accord quÂ’on ne peut pas renseigner arbitrairement le 
> Content-Type ici : dans ce cas on a pas les en-têtes, on ne sait pas 
> ce qu’on récupère, et c’est à l’appelant de se débrouiller avec si il 
> sait à quoi s’attendre ou non - ce qui donc ne réparera pas le 
> document distant dans ton casÂ…
>
> A defaut on pourrait faire une fonction de détection du type de 
> contenu, qui repère a minima html, xml, json et éventuellement utilise 
> l’extension de l’URL, mais est-ce que ça en vaut vraiment la peine ?
>
>
> -- 
> Cédric
> Le 22 déc. 2018 à 18:51 +0100, Cerdic <[email protected]>, a écrit :
>> AH ! le problème de départ ça serait pas qu’ils ont activé TLS 1.2 
>> (ou plutôt désactivé les vieux SSL/TLS) et du coup ça marche ou pas :
>> * selon que ton php est suffisament récent et supporte TLS 1.2
>> * selon que tu as ou non le patch 
>> https://core.spip.net/projects/spip/repository/revisions/24018
>>
>> du coup le bug sur TLS fait foirer et ensuite ça passe par la 
>> procédure de secours qui elle même est bancale et ne peuple pas le 
>> status ni le mime type, et enfin oembed utiliser le vieux 
>> recupérer_page qui renvoit false dès qu’on a pas le status 200
>>
>> (pas mal de choses à patcher séparemment les unes des autres donc)
>>
>> -- 
>> Cédric
>> Le 22 déc. 2018 à 11:27 +0100, ARNO* <[email protected]>, a écrit :
>>>
>>>
>>> Il y a deux difficultés (pour ce que j’en vois) avec mon patch:
>>>
>>> - ça n’identifie pas où est le problème avec Viméo, et pourquoi ça 
>>> fait que SPIP passe désormais par la procédure de «secours» de 
>>> inc/distant pour récupérer le contenu. Or c’est pas super-viable de 
>>> patcher à un endroit si on n’identifie pas pourquoi tout d’un coup 
>>> on a changé de comportement.
>>>
>>> - autant pour status=200, ça me semble logique, autant forcer le 
>>> content-type à text/html, je suis beaucoup moins sûr. Si on récupère 
>>> dÂ’autres types de documents via cette fonction, que se passe-t-il? 
>>> Comment le mime-type est-il identifié?
>>>
>>> ARNO*
>>>
>>>
>>>
>>>
>>>> Le 22 déc. 2018 à 10:31, klaus++ <[email protected]> a écrit :
>>>>
>>>> Je viens de tester sous SPIP 3.2.1 [23768] / Medias 2.20.23 - stable.
>>>> C'est parfait, pas de problème.
>>>>
>>>> Désormais je vais suivre le tuyau d'Arno pour récupérer les vidés dans
>>>> mes sites ;-)
>>>>
>>>> :-)k++
>>>>
>>>>
>>>> On 22.12.18 08:25, erational wrote:
>>>>> Bonjour
>>>>>
>>>>> J'ai eu exactement le même problème en début de semaine (voir mon
>>>>> message du 17/12)
>>>>> - en local aucun problème
>>>>> - sur le web, impossible d'ajouter les vidéos de vimeo en document 
>>>>> distant
>>>>>
>>>>> Le patch que tu proposes fonctionne bien.
>>>>> Cela permet de rétablir la fonction et d'ajouter la vidéo en tant que
>>>>> document distant (il manque juste encore la vignette de 
>>>>> prévisualisation
>>>>> de la video)
>>>>>
>>>>> merci !
>>>>>
>>>>> doit-on commiter sur le core ?
>>>>>
>>>>>
>>>>> Le 21/12/2018 à 20:42, ARNO* a écrit :
>>>>>> 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
>>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>> _______________________________________________
>>> 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
>> _______________________________________________
>> 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
>
> _______________________________________________
> 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

-- 
_________________________________________
https://www.erational.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.