【发布时间】:2010-10-11 19:27:30
【问题描述】:
我的网站顶部有来自我的 Twitter 个人资料的提要,但我想知道是否有办法过滤掉我的 @replies 并只显示我的状态更新?
谢谢
【问题讨论】:
-
是的,事实上很容易。但如果你这样做,Twitter 会生气。我们需要将你献给伟大的 Twitter 鸟,以免我们都感受到他可怕的愤怒。
我的网站顶部有来自我的 Twitter 个人资料的提要,但我想知道是否有办法过滤掉我的 @replies 并只显示我的状态更新?
谢谢
【问题讨论】:
【讨论】:
如果您正在为 Blogger 和类似网站使用标准 Twitter 提要网络代码,那么这段 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”——您可以在网络代码中搜索它(查找callback=twitterCallback2)。要使用新过滤器,您需要将文本 twittercallback2 替换为 filterCallback。过滤器经过硬编码,完成后调用twitterCallback2。
请注意,如果来自 Twitter 的某些回复是回复,这将减少显示的推文数量,因此您必须增加调用中的 count 参数以允许这样做。然后,新功能将显示的回复数量限制为五个 - 编辑代码以更改它。
这是我的博客文章:Filter Replies out of Twitter Feed
【讨论】:
如果您想使用新的 Twitter 小部件,只需在小部件源代码的 features: 设置中添加这段代码:
filters: {
negatives: /\B@\w{1,20}(\s+|$)/
},
我从达斯汀迪亚兹的网站http://www.dustindiaz.com 上拿了这个。 Dustin Diaz 是 Twitter 小部件的创建者。
【讨论】:
将 setUser 调用更改为
setUser('name&exclude_replies=true');
这是一种黑客攻击,但它可以解决问题
【讨论】:
取决于您用于显示条目的内容。如果您使用的是 Twitter 的小部件,那么可能不会。如果您使用其他一些编程方式来显示项目,您需要提供有关您正在执行的操作(语言、示例代码等)的更多详细信息,我们可能会帮助您进行过滤。
【讨论】:
您可能想要使用正则表达式。大致如下:
[a-zA-Z0-9][a-zA-Z0-9]*: @[a-zA-Z0-9][a-zA-Z0-9]*.*
取决于您在页面上设置 twitter 提要的格式。此正则表达式假定您的格式如下:
username: @username msg txt
如果匹配,则不显示。如果不匹配,则显示它。 :) 如果您在文本中添加了标签,请适当调整正则表达式。
【讨论】: