Skip to content

Instantly share code, notes, and snippets.

@oyakodon
Created March 25, 2016 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oyakodon/06324af2a2535d429394 to your computer and use it in GitHub Desktop.
Save oyakodon/06324af2a2535d429394 to your computer and use it in GitHub Desktop.
最初のツイートから何番目のツイートは何なのか?(関数のみ) / C#
static Status getNumOfTweet(Tokens t, int targetNum)
{
// targetNum番目のツイートを返す(過去3200ツイート中で)
// [注意] 3200ツイート以上のロードが必要な場合、取得できる限り取得してツイートを返す。
// なんか3200土10ぐらいの差があるが、そこら辺までしか取得できない。
var me = t.Account.UpdateProfile();
var targetCount = me.StatusesCount - targetNum;
if (targetCount == 0 )
{
// 最新のツイート
return me.Status;
}
int c = targetCount > 200 ? 1 : 0;
var lastId = me.Status.Id - 1;
while ( true )
{
var statuses = t.Statuses.UserTimeline(user_id => me.Id, count => 200, max_id => (lastId - 1));
foreach ( var item in statuses )
{
lastId = item.Id;
c++;
if ( targetCount <= c ) break;
}
if ( statuses.Count < 20 )
break;
if ( targetCount <= c ) break;
}
return t.Statuses.Show(id => lastId);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment