Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

4 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par pinkilla Ven 29 Mar 2013 - 12:09

Bonjour,

J'ai un peu cherché mais ça n'a pas été concluant :-( Je voudrais pouvoir insérer un tweet dans un message «à la manière embedded». Comme le code fourni est du html, je ne sais pas bien comment faire …

L'idéal, ce serait de pouvoir écrire quelque chose du style
Code:
[twitter]https://twitter.com/JusteLelblanc/status/11…11[/twitter]
et que le résulta soit l'affichage du tweet en question avec tout ce qui va bien.

Ça existe, comment puis-je faire ?

Merci


Dernière édition par pinkilla le Jeu 11 Avr 2013 - 21:53, édité 2 fois (Raison : Chgt de status, résolu et chgt du titre)
pinkilla

pinkilla
Nouveau membre

Masculin
Messages : 19
Inscrit(e) le : 01/12/2005

http://pit-it.virtuaboard.com
pinkilla a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Scipion Dim 31 Mar 2013 - 16:25

Bonjour

Le code nécessaire pour afficher votre tweet devrait avoir la forme suivante :

Code:
<a class="twitter-timeline" votre premier code avec id ">Tweets de @pinkilla</a><script>Votre script</script>
Cependant, ce code ne peut pas fonctionner dans un message.

Cordialement
Scipion

Scipion
Membre actif

Masculin
Messages : 8655
Inscrit(e) le : 03/02/2010

https://forum.forumactif.com/
Scipion a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par pinkilla Lun 1 Avr 2013 - 15:00

Ouaip ! L'idée, c'est justement d'afficher un tweet spécifique dans un message …
pinkilla

pinkilla
Nouveau membre

Masculin
Messages : 19
Inscrit(e) le : 01/12/2005

http://pit-it.virtuaboard.com
pinkilla a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Scipion Lun 1 Avr 2013 - 15:06

Bonjour

Dans l'éventualité d'un code particulier et pour les besoins d'un test de fonctionnement dans les messages, pourriez-vous mettre à disposition, par les moyens qui vous conviennent, votre code personnel ?

Cordialement
Scipion

Scipion
Membre actif

Masculin
Messages : 8655
Inscrit(e) le : 03/02/2010

https://forum.forumactif.com/
Scipion a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Ea Mer 3 Avr 2013 - 16:51

Bonjour,


Où en est votre problème ?

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Matriochka Lun 8 Avr 2013 - 9:20

Insérer un tweet à l'aide --d'une balise bbcode-- d'un script 24-emp10Bonjour,

Nous n'avons plus de nouvelle de l'auteur de ce sujet depuis plus de 7 jours. Nous considérons donc ce problème comme résolu ou abandonné. La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou à faire un UP régulièrement ! Wink

Ce sujet est corbeillé (rappel de pourquoi), merci d'ouvrir un nouveau sujet si nécessaire, en respectant les Règles générales du forum.

A bientôt sur ForumActif Smile
avatar

Matriochka
Membre actif

Messages : 7604
Inscrit(e) le : 14/07/2010

Matriochka a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Ea Jeu 11 Avr 2013 - 19:02

Bonjour,


Ce sujet est replacé à la demande de l'auteur.

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Ea Jeu 11 Avr 2013 - 20:52

On pourrait mettre un script de ce genre sur les sujets :

Code:
$(function(){var f=/^https?:\/\/twitter\.com\/[^\/]+\/statuse?s?\/([0-9]+)$/,a,d=0,b={};$("a").each(function(){if(f.test($(this).attr("href"))&&$(this).attr("href")==$(this).html())if(a=$(this).attr("href").match(f)[1],a in b)b[a].push(this);else{b[a]=[];var h=d,e;var c=a,g=this;window.localStorage&&(a=localStorage.getItem("status"+c))?($(g).replaceWith(a),delete b[c],e=1):($.getJSON("https://api.twitter.com/1/statuses/oembed.json?id="+c+"&omit_script=true&lang=fr&callback=?",function(a){if("html"in
a){localStorage&&localStorage.setItem("status"+c,a.html);$(g).replaceWith(a.html);for(i in b[c])$(b[c][i]).replaceWith(a.html);delete b[c];$.getScript("http://platform.twitter.com/widgets.js")}return 0}),e=void 0);d=h+e}});d&&$.getScript("http://platform.twitter.com/widgets.js")});
Le script devrait remplacer tout les liens du type :

Code:
https://twitter.com/JusteLelblanc/status/113211
avec un texte identique ( donc en mettant juste le lien dans le message sans rien faire ça devrait fonctionner ), par le tweet

twitter limite apparemment à 150 requêtes par heure par utilisateur, donc quelqu'un qui affichera 150 tweets en une heure, ceux qui suivent il y aura juste un lien

le script tente de baisser la probabilité d'arriver à ce nombre de deux façon :

  • si il y a plusieurs fois le même tweet sur la page, il ne devrait en faire qu'une requête
  • si le navigateur n'est pas de l'age de glace, il devrait sauver le contenu du tweet dans le cache du navigateur ( donc en affichant 100 fois une page avec 5 tweets, on ne ferait que 5 requêtes à twitter )

cordialement
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par pinkilla Jeu 11 Avr 2013 - 21:50

super, ça fonctionne
(http://pit-it.virtuaboard.com/t344p525-le-chat-de-bardack#55605)

un grand merci à Ea pour le script

(j'imagine que tu écris ton code «non réduis» avant de le compacter comme tu l'as fourni ? est-ce possible de l'obtenir pour que ce soit plus lisible pour moi et que je puisse le comprendre. çerci)
pinkilla

pinkilla
Nouveau membre

Masculin
Messages : 19
Inscrit(e) le : 01/12/2005

http://pit-it.virtuaboard.com
pinkilla a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Ea Jeu 11 Avr 2013 - 22:11

Le voilà sans avoir été réduit :

Code:
// on attend que la page soit ouverte
$(function() {
 
  // expression régulière d'un status de twitter
  var r = /^https?:\/\/twitter\.com\/[^\/]+\/statuse?s?\/([0-9]+)$/;
  // variable qu'on utilise pour sauver quelque chose temporairement
  var n;
  // nombre de "tweet" qui étaient présent dans le cache navigateur
  var h = 0;
  // tableau qu'on utilise pour associer des liens de la page à un tweet
  var d = {};

  // fonction qui va traiter les liens
  var g = function(tweet_id) {
    // on teste si le tweet est dans le cache
    if(window.localStorage && (n = localStorage.getItem("status" + tweet_id))) {
      // si oui on remplace les liens de tweet par le tweet
      for(i in d[tweet_id]) {
        $(d[tweet_id][i]).replaceWith(n)
      }
      // on supprime le tweet du tableau associatif
      delete d[tweet_id];
      // on retourne 1
      return 1
    }
    // si le tweet n'est pas dans le cache, on fait une requête à l'api de tweeter pour l'avoir
    $.getJSON("https://api.twitter.com/1/statuses/oembed.json?id=" + tweet_id + "&omit_script=true&lang=fr&callback=?", function(data) {
      // on teste si il y a bien un champ "html" dans le contenu renvoyé par l'api tweeter ( si pas y'aurait une erreur et le lien de tweet ne serait pas remplacé )
      if("html" in data) {
        // on ajoute le tweet dans le cache du navigateur
        localStorage && localStorage.setItem("status" + tweet_id, data["html"]);
        // on remplace les liens de tweet par le tweet
        for(i in d[tweet_id]) {
          $(d[tweet_id][i]).replaceWith(data["html"])
        }
        // on supprime le tweet du tableau associatif
        delete d[tweet_id];
        // on ajoute le script de twitter qui donnera l'apparence au tweet
        $.getScript("http://platform.twitter.com/widgets.js")
      }
      return 0
    })
  };
  // on boucle sur chaque lien de la page
  $("a").each(function() {
    // si le lien n'est pas vers un tweet, ou que le texte n'est pas égal au lien on ne fait rien
    if(!r.test($(this).attr("href")) || $(this).attr("href") != $(this).html()) {
      return
    }
    // on récupère de l'adresse le numéro du tweet
    n = $(this).attr("href").match(r)[1];
    // on teste si on est déjà en train de traiter le tweet
    if(n in d) {
      // si oui, on ajoute le lien de tweet dans le tableau des liens de ce tweet
      d[n].push(this)
    }else {
      // sinon, on ajoute un tableau de lien de ce tweet ( dans lequel on place le lien sur lequel on est
      d[n] = [ this ];
      // et on fait appel à la fonction de remplacement de tweet
      h += g(n)
    }
  });
  // si il y a au moins un tweet remplacé qui était dans le cache de navigateur
  if(h) {
    // on ajoute le script de tweeter qui donnera l'apparence au tweet
    $.getScript("http://platform.twitter.com/widgets.js")
  }
});


Dernière édition par Ea le Jeu 11 Avr 2013 - 22:48, édité 1 fois
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par pinkilla Jeu 11 Avr 2013 - 22:29

merci
(trop complexe pour moi Embarassed )
pinkilla

pinkilla
Nouveau membre

Masculin
Messages : 19
Inscrit(e) le : 01/12/2005

http://pit-it.virtuaboard.com
pinkilla a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Insérer un tweet à l'aide --d'une balise bbcode-- d'un script

Message par Ea Jeu 11 Avr 2013 - 22:48

j'ai édité en le commentant
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum