在Twitter Feed中过滤掉@replies?

时间:2009-03-06 17:50:48

标签: html twitter

我的网站顶部有我的Twitter个人资料,但我想知道是否有办法过滤掉我的@replies并只显示我的状态更新?

由于

6 个答案:

答案 0 :(得分:6)

答案 1 :(得分:4)

如果您正在使用Blogger和类似网站的标准Twitter Feed网页代码,那么这一点Javascript就可以解决问题。它位于Twitter提要和回调之间,并从服务器响应中删除回复。

对于博客徽章,标准Twitter网络代码以两个<script>标记结尾。第一个提供显示推文的功能。第二个查询Twitter以显示推文。

在twitter查询之前将此脚本添加到徽章代码中。它提供了一个名为filterCallback的新函数,它可以从Twitter响应中删除@replies。

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

twitter查询本身有一个参数,指定响应返回时要调用的函数。在博客的情况下,该函数被称为“twitterCallback2” - 您可以在Web代码中搜索它(查找callback=twitterCallback2)。要使用新过滤器,您需要将文本twittercallback2替换为filterCallback。过滤器经过硬编码,然后在完成后调用twitterCallback2

请注意,如果来自Twitter的某些回复是回复,这会减少显示的推文数量,因此您必须增加调用中的count参数以允许这样做。然后,新功能将显示的回复数量限制为5 - 编辑代码以更改该回复。

这是关于它的博文:Filter Replies out of Twitter Feed

答案 2 :(得分:3)

如果您想使用新的Twitter小部件,只需在小部件源代码的features:设置中添加这段代码:

filters: {
  negatives: /\B@\w{1,20}(\s+|$)/
},

我从Dustin Diaz的网站http://www.dustindiaz.com那里拿了这个。 Dustin Diaz是Twitter小部件的创建者。

答案 3 :(得分:1)

将setUser调用更改为

setUser('name&exclude_replies=true');

这是一种黑客攻击,但它可以解决问题

答案 4 :(得分:0)

取决于您用于显示条目的内容。如果你正在使用Twitter的小部件,那么可能不是。如果您正在使用其他一些以编程方式显示项目,则需要提供有关您正在做的事情的更多详细信息(语言,示例代码等),我们可能会帮助您进行过滤。

答案 5 :(得分:0)

您可能想要使用正则表达式。有点像:

[a-zA-Z0-9][a-zA-Z0-9]*: @[a-zA-Z0-9][a-zA-Z0-9]*.*

取决于您在页面上格式化推特Feed的方式。这个正则表达式假设您的格式如下:

username: @username msg txt

如果匹配,请勿显示。如果不匹配,则显示它。 :)如果你的文本中有标签,请适当调整正则表达式。