Filtrer les réponses dans un fil Twitter?
Question
J'ai un flux de mon profil Twitter en haut de mon site, mais je me suis demandé s'il existait un moyen de filtrer mes @ réponses et de ne montrer que les mises à jour de statut?
Merci
La solution
Si vous utilisez le code Web standard de flux Twitter pour Blogger et des sites similaires, ce morceau de Javascript fait l'affaire. Il se situe entre le flux Twitter et le rappel et supprime les réponses de la réponse du serveur.
Pour un badge de blog, le code Web Twitter standard se termine par deux <script>
balises. Le premier fournit la fonction qui affiche vos tweets. La deuxième demande à twitter pour les tweets à afficher.
Ajoutez ce script à votre code de badge avant la requête Twitter. Il fournit une nouvelle fonction appelée filterCallback qui supprime @replies de la réponse Twitter.
<script type="text/javascript">
function filterCallback( twitter_json ) {
var result = [];
for(var index in twitter_json) {
if(twitter_json[index].in_reply_to_user_id == null) {
result[result.length] = twitter_json[index];
}
if( result.length==5 ) break; // Edit this to change the maximum tweets shown
}
twitterCallback2(result); // Pass tweets onto the original callback. Don't change it!
}
</script>
La requête Twitter elle-même a un paramètre qui spécifie la fonction à appeler lorsque la réponse revient. Dans le cas d'un blogueur, cette fonction s'appelle 'twitterCallback2' - vous pouvez la rechercher dans le code Web (recherchez callback=twitterCallback2
). Pour utiliser le nouveau filtre, vous devez remplacer le texte twittercallback2
par filterCallback
. Le filtre est codé en dur pour appeler ensuite twitterCallback2
quand c'est fait.
Notez que cela réduira le nombre de tweets affichés si certaines des réponses de Twitter sont des réponses. Vous devez donc augmenter le paramètre de comptage dans l'appel pour le permettre. La nouvelle fonction limite alors le nombre de réponses affichées à cinq - modifiez le code pour le changer.
Voici mon billet de blog à ce sujet: Filtrer les réponses hors du fil Twitter
Autres conseils
Peut-être avec les Yahoo Pipes .
Tomalak a créé un exemple rapide pour vous .
Si vous souhaitez utiliser les nouveaux widgets Twitter, ajoutez simplement ce morceau de code dans le paramètre features:
du code source du widget:
filters: {
negatives: /\B@\w{1,20}(\s+|$)/
},
J'ai pris celui-ci sur le site Web de Dustin Diaz à l'adresse http://www.dustindiaz.com . Dustin Diaz est le créateur du widget Twitter.
Modifiez l'appel setUser en
setUser('name&exclude_replies=true');
C'est un peu un bidouillage mais ça fait l'affaire
Dépend de ce que vous utilisez pour afficher les entrées. Si vous utilisez le widget de Twitter, alors probablement pas. Si vous utilisez une autre méthode de programmation pour afficher les éléments, vous devez fournir plus de détails sur ce que vous faites (langue, exemple de code, etc.) et nous pourrons probablement vous aider à filtrer.
Vous voudrez probablement utiliser une expression régulière. Quelque chose dans le genre de:
[a-zA-Z0-9][a-zA-Z0-9]*: @[a-zA-Z0-9][a-zA-Z0-9]*.*
En fonction du formatage de votre flux Twitter sur votre page. Cette regex suppose que vous êtes formaté comme suit:
username: @username msg txt
Si cela correspond, ne l'affichez pas. Si cela ne correspond pas, affichez-le. :) Si vous avez des balises avec le texte, ajustez l'expression rationnelle de manière appropriée.