gpt4 book ai didi

ajax - Twitter 和 jQuery ,呈现推文链接

转载 作者:行者123 更新时间:2023-12-03 22:52:46 24 4
gpt4 key购买 nike

我正在使用 jquery ajax 从 twitter api 中提取,我确信有一个简单的方法,但我找不到如何获取“tweet”来渲染任何被推文显示为关联。现在它只是文本。

$.ajax({  
type : 'GET',
dataType : 'jsonp',
url : 'http://search.twitter.com/search.json?q=nettuts&rpp=2',

success : function(tweets) {
var twitter = $.map(tweets.results, function(obj, index) {
return {
username : obj.from_user,
tweet : obj.text,
imgSource : obj.profile_image_url,
geo : obj.geo
};
});

更新:以下功能(插件)完美运行。

(function($) {

$.socialFader = function(options) {

var settings = {
tweetHolder : null,
tweetCount : 100,
fadeSpeed : 500,
tweetName: 'jquery'
};

if (options) {
$.extend(settings, options);
};

var URL = "http://search.twitter.com/search.json?q="+settings.tweetName+"&rpp=" + settings.tweetCount + "&callback=?";

function relative_time(time_value) {

var values = time_value.split(" ");
time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
delta = delta + (relative_to.getTimezoneOffset() * 60);
var r = '';
if (delta < 60) {
r = 'a minute ago';
} else if(delta < 120) {
r = 'couple of minutes ago';
} else if(delta < (45*60)) {
r = (parseInt(delta / 60)).toString() + ' minutes ago';
} else if(delta < (90*60)) {
r = 'an hour ago';
} else if(delta < (24*60*60)) {
r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
} else if(delta < (48*60*60)) {
r = '1 day ago';
} else {
r = (parseInt(delta / 86400)).toString() + ' days ago';
}

return r;

};

String.prototype.hashify = function() {
return this.replace(/#([A-Za-z0-9\/\.]*)/g, function(m) {
return '<a target="_new" href="http://twitter.com/search?q=' + m.replace('#','') + '">' + m + "</a>";
});
};

String.prototype.linkify = function(){
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
return m.link(m);
});
};

String.prototype.atify = function() {
return this.replace(/@[\w]+/g, function(m) {
return '<a href="http://www.twitter.com/' + m.replace('@','') + '">' + m + "</a>";
});
};

$.getJSON(URL, function(JSON) {

$.each(JSON.results, function(i, tweet) {

var profilePicture = tweet.profile_image_url;
var userLink = tweet.from_user;
var text = tweet.text;
text = text.linkify().atify().hashify();
var createdAt = new Date(tweet.created_at);
var myTweet = '<a href="http://www.twitter.com/' + userLink + '" title="' + userLink + '">' + userLink + '</a> ';
myTweet += text;
$(settings.tweetHolder).append('<li class="cycles">' + myTweet + '</li>');

});

var elements = $(settings.tweetHolder).children();
var timeOutStart = 5000;

function fader(elementId) {
setTimeout(function() {
$(elements[elementId]).fadeOut(settings.fadeSpeed, function() {
$(elements[elementId + 1]).fadeIn(settings.fadeSpeed);
});
}, timeOutStart * (elementId));
};

for (var j = 0; j < elements.length; j++) {
fader(j);
};

});

};

})(jQuery);

在我的就绪声明中:

$.socialFader({ tweetHolder:"#twitter", tweetName:"nettuts", tweetCount:2 });

最佳答案

这是我编写的一个插件,它确实简化了 tweet/json 聚合然后解析。它使推文淡入淡出。只需获取所需的代码即可。享受吧。

(函数($){

    $.socialFader = function(options) {

var settings = {
tweetHolder : null,
tweetCount : 99,
fadeSpeed : 500,
};

if (options) {
$.extend(settings, options);
};

var URL = "http://search.twitter.com/search.json?q=jquery&rpp=" + settings.tweetCount + "&callback=?";

function relative_time(time_value) {

var values = time_value.split(" ");
time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
var parsed_date = Date.parse(time_value);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
delta = delta + (relative_to.getTimezoneOffset() * 60);
var r = '';
if (delta < 60) {
r = 'a minute ago';
} else if(delta < 120) {
r = 'couple of minutes ago';
} else if(delta < (45*60)) {
r = (parseInt(delta / 60)).toString() + ' minutes ago';
} else if(delta < (90*60)) {
r = 'an hour ago';
} else if(delta < (24*60*60)) {
r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
} else if(delta < (48*60*60)) {
r = '1 day ago';
} else {
r = (parseInt(delta / 86400)).toString() + ' days ago';
}

return r;

};

String.prototype.hashify = function() {
return this.replace(/#([A-Za-z0-9\/\.]*)/g, function(m) {
return '<a target="_new" href="http://twitter.com/search?q=' + m.replace('#','') + '">' + m + "</a>";
});
};

String.prototype.linkify = function(){
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
return m.link(m);
});
};

String.prototype.atify = function() {
return this.replace(/@[\w]+/g, function(m) {
return '<a href="http://www.twitter.com/' + m.replace('@','') + '">' + m + "</a>";
});
};

$.getJSON(URL, function(JSON) {

$.each(JSON.results, function(i, tweet) {

var profilePicture = tweet.profile_image_url;
var userLink = tweet.from_user;
var text = tweet.text;
text = text.linkify().atify().hashify();
var createdAt = new Date(tweet.created_at);
var myTweet = '<a href="http://www.twitter.com/' + userLink + '" title="' + userLink + '">' + userLink + '</a> ';
myTweet += text;
$(settings.tweetHolder).append('<li class="cycles">' + myTweet + '</li>');

});

var elements = $(settings.tweetHolder).children();
var timeOutStart = 5000;

function fader(elementId) {
setTimeout(function() {
$(elements[elementId]).fadeOut(settings.fadeSpeed, function() {
$(elements[elementId + 1]).fadeIn(settings.fadeSpeed);
});
}, timeOutStart * (elementId));
};

for (var j = 0; j < elements.length; j++) {
fader(j);
};

});

};

})(jQuery);

关于ajax - Twitter 和 jQuery ,呈现推文链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com