【发布时间】:2014-04-12 02:32:24
【问题描述】:
1 .Hi SO,我创建了一个类,用于借助屏幕名称从 twitter 获取用户的推文。我的问题是我经常超过速率限制。
2 .我为屏幕名称创建了表,我在其中保存了所有屏幕名称和
3 .我创建了另一个表来存储用户的推文。
以下是我的代码:
public List<TwitterProfileDetails> GetAllTweets(Func<SingleUserAuthorizer> AuthenticateCredentials,string screenname)
{
List<TwitterProfileDetails> lstofTweets = new List<TwitterProfileDetails>();
TwitterProfileDetails details = new TwitterProfileDetails();
var twitterCtx = new LinqToTwitter.TwitterContext(AuthenticateCredentials());
var helpResult =
(from help in twitterCtx.Help
where help.Type == HelpType.RateLimits &&
help.Resources == "search,users,socialgraph"
select help)
.SingleOrDefault();
foreach (var category in helpResult.RateLimits)
{
Console.WriteLine("\nCategory: {0}", category.Key);
foreach (var limit in category.Value)
{
Console.WriteLine(
"\n Resource: {0}\n Remaining: {1}\n Reset: {2}\n Limit: {3}",
limit.Resource, limit.Remaining, limit.Reset, limit.Limit);
}
}
var tweets = from t in twitterCtx.Status
where t.Type == StatusType.User && t.ScreenName == screename && t.Count == 15
select t;
if (tweets != null)
{
foreach (var tweetStatus in tweets)
{
if (tweetStatus != null)
{
lstofTweets.Add(new TwitterProfileDetails { Name = tweetStatus.User.Name, ProfileImagePath = tweetStatus.User.ProfileImageUrl, Tweets = tweetStatus.Text, UserID = tweetStatus.User.Identifier.UserID, PostedDate = Convert.ToDateTime(tweetStatus.CreatedAt),ScreenName=screename });
}
}
}
return lstofTweets;
}
-
我用上面的方法有下面..
foreach (var screenObj in screenName) { var getTweets = api.GetAllTweets(api.AuthenticateCredentials, screenObj.UserName); foreach (var obj in getTweets) { using (DBcontext = new DBContext()) { tweets.Name = obj.Name; tweets.ProfileImage = obj.ProfileImagePath; tweets.PostedOn = obj.PostedDate; tweets.Tweets = obj.Tweets; tweets.CreatedOn = DateTime.Now; tweets.ModifiedOn = DateTime.Now; tweets.Status = EntityStatus.Active; tweets.ScreenName = obj.ScreenName; var exist = context.UserTweets.Any(user => user.Tweets.Equals(obj.Tweets)); if (!exist) context.UserTweets.Add(tweets); context.SaveChanges(); } } }
【问题讨论】:
标签: c#-4.0 twitter linq-to-twitter