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

Poster un nouveau sujet   Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

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 le 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)
avatar

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 le 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
avatar

Scipion
Membre actif

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

http://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 le Lun 1 Avr 2013 - 15:00

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

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 le 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
avatar

Scipion
Membre actif

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

http://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 le Mer 3 Avr 2013 - 16:51

Bonjour,


Où en est votre problème ?

Cordialement.
avatar

Ea
Aidactif
Aidactif

Messages : 23478
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 le Lun 8 Avr 2013 - 9:20

Bonjour,

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

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 le Jeu 11 Avr 2013 - 19:02

Bonjour,


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

Cordialement.
avatar

Ea
Aidactif
Aidactif

Messages : 23478
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 le 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
avatar

Ea
Aidactif
Aidactif

Messages : 23478
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 le 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)
avatar

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 le 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
avatar

Ea
Aidactif
Aidactif

Messages : 23478
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 le Jeu 11 Avr 2013 - 22:29

merci
(trop complexe pour moi Embarassed )
avatar

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 le Jeu 11 Avr 2013 - 22:48

j'ai édité en le commentant
avatar

Ea
Aidactif
Aidactif

Messages : 23478
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


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