我的网站顶部有来自我的 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 参数以允许这样做。然后,新功能将显示的回复数量限制为五个 - 编辑代码以更改它。
这是我的博客文章:从 Twitter 订阅源中过滤回复
如果您想使用新的 Twitter 小部件,只需features:
在小部件源代码的设置中添加这段代码:
filters: {
negatives: /\B@\w{1,20}(\s+|$)/
},
我从 Dustin Diaz 的网站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
如果匹配,则不显示。如果不匹配,则显示它。:) 如果您在文本中添加了标签,请适当调整正则表达式。