Changeset 359
- Timestamp:
- 01/17/08 02:50:12 (12 months ago)
- Location:
- TwitterIrcGateway/TwitterIrcGatewayCore
- Files:
-
- 3 modified
-
Group.cs (modified) (1 diff)
-
IRCClient/IRCMessage.cs (modified) (1 diff)
-
Session.cs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
TwitterIrcGateway/TwitterIrcGatewayCore/Group.cs
r65 r359 62 62 public class Group : IComparable 63 63 { 64 public String Name; 65 public String Mode; 66 public List<String> Members; 67 public Boolean IsJoined = false; 64 public String Name { get; set; } 65 public String Mode { get; set; } 66 public List<String> Members { get; set; } 67 public Boolean IsJoined { get; set; } 68 public String Topic { get; set; } 68 69 69 70 public Group() -
TwitterIrcGateway/TwitterIrcGatewayCore/IRCClient/IRCMessage.cs
r47 r359 559 559 private String _channel; 560 560 561 public String Topic 562 { 563 get { return _topic; } 564 set { _topic = value; } 565 } 566 567 public String Channel 568 { 569 get { return _channel; } 570 set { _channel = value; } 571 } 572 561 573 public 562 574 TopicMessage() : base() -
TwitterIrcGateway/TwitterIrcGatewayCore/Session.cs
r357 r359 66 66 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_LIST); 67 67 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_TIGGC); 68 MessageRecieved += new EventHandler<MessageRecievedEventArgs>(MessageRecieved_TOPIC); 68 69 69 70 _groups = new Groups(); … … 407 408 SendNumericReply(NumericReply.RPL_ENDOFNAMES, channelName, "End of NAMES list"); 408 409 group.IsJoined = true; 410 411 // Set topic of client, if topic was set 412 Send(new TopicMessage(channelName, group.Topic)); 409 413 } 410 414 } … … 793 797 } 794 798 795 privatevoid MessageRecieved_TIGGC(object sender, MessageRecievedEventArgs e)799 void MessageRecieved_TIGGC(object sender, MessageRecievedEventArgs e) 796 800 { 797 801 if (String.Compare(e.Message.Command, "TIGGC", true) != 0) return; … … 800 804 SendTwitterGatewayServerMessage(String.Format("Garbage Collect: {0:###,##0} bytes -> {1:###,##0} bytes", memUsage, GC.GetTotalMemory(false))); 801 805 } 806 807 void MessageRecieved_TOPIC(object sender, MessageRecievedEventArgs e) 808 { 809 if (String.Compare(e.Message.Command, "TOPIC", true) != 0) return; 810 TopicMessage topicMsg = e.Message as TopicMessage; 811 812 // client -> server (TOPIC #Channel :Topic Msg) && channel name != server primary channel(ex.#Twitter) 813 if (!String.IsNullOrEmpty(topicMsg.Topic) && (String.Compare(topicMsg.Channel, _server.ChannelName, true) != 0)) 814 { 815 // Set channel topic 816 Group group = GetGroupByChannelName(topicMsg.Channel); 817 group.Topic = topicMsg.Topic; 818 SaveGroups(); 819 820 // server -> client (set client topic) 821 Send(new TopicMessage(topicMsg.Channel, topicMsg.Topic){ 822 Sender = _clientHost 823 }); 824 } 825 } 826 802 827 #endregion 803 828 … … 1120 1145 foreach (Group group in _groups.Values) 1121 1146 { 1122 if (group.IsJoined && group.Exists(status.User.ScreenName)) 1147 if (!group.IsJoined) 1148 continue; 1149 1150 Boolean isMatched = String.IsNullOrEmpty(group.Topic) ? true : Regex.IsMatch(line, group.Topic); 1151 1152 // 1: member exists in channel && match regex 1153 // 2: no members in channel(self only) && match regex 1154 if ((group.Exists(status.User.ScreenName) || group.Members.Count == 1) && isMatched) 1123 1155 { 1124 1156 switch (filterArgs.IRCMessageType.ToUpperInvariant())
