Changeset 75

Show
Ignore:
Timestamp:
05/16/07 23:55:56 (18 months ago)
Author:
mayuki
Message:
 
Location:
TwitterIrcGateway
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • TwitterIrcGateway/TwitterIrcGateway/TwitterIrcGateway.csproj

    r56 r75  
    3232    <ExcludedPermissions> 
    3333    </ExcludedPermissions> 
    34     <ApplicationIcon>Resources\ApplicationIcon.ico</ApplicationIcon> 
     34    <ApplicationIcon> 
     35    </ApplicationIcon> 
    3536  </PropertyGroup> 
    3637  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
  • TwitterIrcGateway/TwitterIrcGatewayCore/Filter.cs

    r70 r75  
    5050 
    5151        /// <summary> 
    52         /// メッセージをフィルタします 
     52        /// メチE��ージをフィルタしまぁE 
    5353        /// </summary> 
    5454        /// <param name="user"></param> 
    5555        /// <param name="message"></param> 
    56         /// <returns>メッセージを捨てるかどうか</returns> 
     56        /// <returns>メチE��ージを捨てるかどぁE��</returns> 
    5757        public Boolean ExecuteFilters(FilterArgs args) 
    5858        { 
  • TwitterIrcGateway/TwitterIrcGatewayCore/Server.cs

    r59 r75  
    1818        /// </summary> 
    1919        public Int32 Interval = 60; 
     20 
     21        /// <summary> 
     22        /// �_�C���N�g���b�Z�[�W��F�b�N�����u 
     23        /// </summary> 
     24        public Int32 IntervalDirectMessage = 60 * 5; 
    2025 
    2126        /// <summary> 
  • TwitterIrcGateway/TwitterIrcGatewayCore/Session.cs

    r73 r75  
    2828        private LinkedList<Int32> _lastStatusIdsFromGateway; 
    2929        private Timer _timer; 
     30        private Timer _timerDirectMessage; 
    3031        private Groups _groups; 
    3132        private Filters _filter; 
     
    3738        private LinkedList<Status> _statusBuffer; 
    3839        private Boolean _isCallbackRunning = false; 
     40        private Boolean _isCallbackDirectMessageRunning = false; 
    3941        private TraceListener _traceListeneer; 
    4042 
     
    6971            _lastStatusIdsFromGateway = new LinkedList<int>(); 
    7072            _timer = new Timer(new TimerCallback(OnTimerCallback), null, Timeout.Infinite, Timeout.Infinite); 
     73            _timerDirectMessage = new Timer(new TimerCallback(OnTimerCallbackDirectMessage), null, Timeout.Infinite, Timeout.Infinite); 
    7174        } 
    7275 
     
    123126            try 
    124127            { 
     128                SendPing(); 
     129 
     130                // Friendsをチェックするのは成功して、チェックが必要となったとき 
     131                Boolean friendsCheckRequired = false; 
     132                if (CheckNewTimeLine(out friendsCheckRequired) && friendsCheckRequired) 
     133                { 
     134                    CheckFriends(); 
     135                } 
     136            } 
     137            finally 
     138            { 
     139                _isCallbackRunning = false; 
     140            } 
     141        } 
     142 
     143        /// <summary> 
     144        ///  
     145        /// </summary> 
     146        /// <param name="stateObject"></param> 
     147        private void OnTimerCallbackDirectMessage(Object stateObject) 
     148        { 
     149            // あまりに処理が遅れると二重になる可能性がある 
     150            lock (_timer) 
     151            { 
     152                if (_isCallbackDirectMessageRunning) 
     153                    return; 
     154                _isCallbackDirectMessageRunning = true; 
     155            } 
     156 
     157            try 
     158            { 
    125159                CheckDirectMessage(); 
    126                 SendPing(); 
    127                 CheckFriends(); 
    128                 CheckNewTimeLine(); 
    129160            } 
    130161            finally 
    131162            { 
    132                 _isCallbackRunning = false; 
     163                _isCallbackDirectMessageRunning = false; 
    133164            } 
    134165        } 
     
    542573 
    543574            Type t = typeof(Server); 
    544             _clientHost = String.Format("{0}!{1}@{2}", _nick, _username, ((IPEndPoint)(e.Client.Client.RemoteEndPoint)).Address); 
     575            _clientHost = String.Format("{0}!{1}@{2}", _nick, e.Message.CommandParams[0], ((IPEndPoint)(e.Client.Client.RemoteEndPoint)).Address); 
    545576 
    546577            SendNumericReply(NumericReply.RPL_WELCOME 
     
    572603 
    573604            _timer.Change(0, _server.Interval * 1000); 
     605            _timerDirectMessage.Change(0, _server.IntervalDirectMessage * 1000); 
    574606        } 
    575607 
     
    923955        } 
    924956 
    925         private void CheckNewTimeLine() 
    926         { 
     957        private Boolean CheckNewTimeLine(out Boolean friendsCheckRequired) 
     958        { 
     959            friendsCheckRequired = false; 
     960 
    927961            try 
    928962            { 
     
    962996                        continue; 
    963997                    } 
     998 
     999                    // friends チェックが必要かどうかを確かめる 
     1000                    // まだないときは取ってくるフラグを立てる 
     1001                    friendsCheckRequired |= !(_nickNames.Contains(status.User.ScreenName)); 
    9641002                     
    9651003                    // フィルタ 
     
    10591097                    SendServerErrorMessage(ex.Message); 
    10601098                } 
     1099                return false; 
    10611100            } 
    10621101            catch (TwitterServiceException ex2) 
    10631102            { 
    10641103                SendServerErrorMessage(ex2.Message); 
    1065             } 
     1104                return false; 
     1105            } 
     1106 
     1107            return true; 
    10661108        } 
    10671109 
  • TwitterIrcGateway/TwitterIrcGatewayCore/TwitterService.cs

    r73 r75  
    318318                webRequest.Accept = "text/xml, application/xml"; 
    319319                webRequest.UserAgent = String.Format("{0}/{1}", TwitterService.ClientName, GetType().Assembly.GetName().Version); 
    320                 webRequest.Referer = TwitterService.Referer; 
     320                //webRequest.Referer = TwitterService.Referer; 
    321321                webRequest.Headers["X-Twitter-Client"] = TwitterService.ClientName; 
    322322                webRequest.Headers["X-Twitter-Client-Version"] = TwitterService.ClientVersion; 
     
    357357            webRequest.Accept = "text/xml, application/xml"; 
    358358            webRequest.UserAgent = String.Format("{0}/{1}", TwitterService.ClientName, TwitterService.ClientVersion); 
    359             webRequest.Referer = TwitterService.Referer; 
     359            //webRequest.Referer = TwitterService.Referer; 
    360360            webRequest.Headers["X-Twitter-Client"] = TwitterService.ClientName; 
    361361            webRequest.Headers["X-Twitter-Client-Version"] = TwitterService.ClientVersion;