rendered paste body--- TwitterIrcGateway/src/TwitterIrcGatewayCore/Session.cs 2007-09-29 03:03:48.000000000 +0900+++ TwitterIrcGateway-eno/src/TwitterIrcGatewayCore/Session.cs 2007-10-03 01:44:21.546875000 +0900@@ -969,17 +969,55 @@ { Statuses statuses = _twitter.GetTimeline(_lastAccessTimeline); Array.Reverse(statuses.Status);+ foreach (Status status in statuses.Status)+ {+ ProcessTimelineStatus (status, ref friendsCheckRequired);+ }++ statuses = _twitter.GetReplies();+ Array.Reverse(statuses.Status);+ bool dummy = false;+ foreach (Status status in statuses.Status)+ {+ if (status.CreatedAt < _lastAccessTimeline)+ continue;+ // Here I pass dummy, because no matter how the replier flags+ // friendsCheckRequired, we cannot receive his or her info+ // through get_friends.+ ProcessTimelineStatus (status, ref dummy);+ }+ if (_isFirstTime && _server.EnableDropProtection) { _lastAccessTimeline = DateTime.Now; }- foreach (Status status in statuses.Status)+ _isFirstTime = false;+ }+ catch (WebException ex)+ {+ if (ex.Response == null || !(ex.Response is HttpWebResponse) || ((HttpWebResponse)(ex.Response)).StatusCode != HttpStatusCode.NotModified) {+ // not-modified 以外+ SendServerErrorMessage(ex.Message);+ }+ return false;+ }+ catch (TwitterServiceException ex2)+ {+ SendServerErrorMessage(ex2.Message);+ return false;+ }++ return true;+ }++ private void ProcessTimelineStatus (Status status, ref Boolean friendsCheckRequired)+ { // 差分チェック if (_server.EnableDropProtection) { if (_statusBuffer.Contains(status))- continue;+ return; _statusBuffer.AddLast(status); if (_statusBuffer.Count > 100)@@ -1001,7 +1039,7 @@ // チェック if (status.User == null || String.IsNullOrEmpty(status.User.ScreenName)) {- continue;+ return; } // friends チェックが必要かどうかを確かめる@@ -1013,13 +1051,13 @@ if (!_filter.ExecuteFilters(filterArgs)) { // 捨てる- continue;+ return; } // 自分がゲートウェイを通して発言したものは捨てる if (_lastStatusIdsFromGateway.Contains(status.Id)) {- continue;+ return; } // TinyURL@@ -1094,25 +1132,6 @@ _lastAccessTimeline = status.CreatedAt; } }- }- _isFirstTime = false;- }- catch (WebException ex)- {- if (ex.Response == null || !(ex.Response is HttpWebResponse) || ((HttpWebResponse)(ex.Response)).StatusCode != HttpStatusCode.NotModified)- {- // not-modified 以外- SendServerErrorMessage(ex.Message);- }- return false;- }- catch (TwitterServiceException ex2)- {- SendServerErrorMessage(ex2.Message);- return false;- }-- return true; }