private void rtbTalk_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //privmsg #channel :messagePart if (rtbTalk.Text.StartsWith("/")) { ircCore1.SendRaw(rtbTalk.Text.Substring(1)); } else if (rtbTalk.Text.Length > 0) { PrivMsgEventArgs nPME = new PrivMsgEventArgs(); UserInfo uinfo = new UserInfo(); uinfo.RealName = dc.GetName(); uinfo.Nick = dc.GetNick(); rtbTalk.Text = rtbTalk.Text.Replace("\n", ""); rtbMsg.AppendText(rtbTalk.Text + "\n"); string nic = (string)lbPrivates.SelectedItem; ircCore1.SendRaw("PRIVMSG #" + nic + " :" + rtbTalk.Text + "\r\n"); } rtbTalk.Text = ""; e.SuppressKeyPress = true; } }
internal void CheckChannel(string server,string scChannel, PrivMsgEventArgs nPME) { Dictionary<string, ChanFav> favs; favs = dc.GetFavoriteList(server); ChanFav cf; if (favs.TryGetValue(scChannel, out cf)) { dc.UpdateChanFavLast(); if (cf.Last == null) { return; } DateTime activity = cf.Last; int Threshold = cf.NotifyMinute; if (cf.NotifyMinute == 0) return; activity = activity.AddMinutes(Threshold); if (activity > DateTime.Now) { //if added activity time > currenttime then no need to notify, get out. return; } string ph; if (cf.Phonetic.Length == 0) ph = cf.channel; else ph = cf.Phonetic; if (ph.ToLower() == "notset") return; speaker.Speak("channel " + ph + " has activity from " + nPME.User.Nick); } }
private void AppendText(PrivMsgEventArgs pme) { int suggestedLen; int textLen; int divisor = 1; tempMessage = pme.Message; //save for debuggind and use it. Size size; size = TextRenderer.MeasureText(tempMessage, rtbBox.Font); textLen = size.Width; if (textLen > rtbBox.Width) { place = 54; divisor = textLen / rtbBox.Width; divisor++; suggestedLen = tempMessage.Length / divisor; } else { suggestedLen = tempMessage.Length; } if (tempMessage.Length > suggestedLen) { place = 4; index = 0; endlen = 0; for (int i = 0; i < divisor; i++) { msg = MessagePart(suggestedLen + 1, tempMessage); rtbBox.AppendText(msg + retval); place = 6; if (i == 0) { rtbTopic.AppendText(pme.From + ":" + pme.User.Nick + retval); } else { rtbTopic.AppendText(retval); } } } else { rtbBox.AppendText(tempMessage + retval); rtbTopic.AppendText(pme.From + ":" + pme.User.Nick + retval); } rtbTopic.SelectAll(); rtbTopic.SelectionAlignment = HorizontalAlignment.Right; ScrollToBottom(rtbTopic); ScrollToBottom(rtbBox); }
internal void CheckChannel(string server, string scChannel, PrivMsgEventArgs nPME) { Dictionary <string, ChanFav> favs; favs = dc.GetFavoriteList(server); ChanFav cf; if (favs.TryGetValue(scChannel, out cf)) { dc.UpdateChanFavLast(); if (cf.Last == null) { return; } DateTime activity = cf.Last; int Threshold = cf.NotifyMinute; if (cf.NotifyMinute == 0) { return; } activity = activity.AddMinutes(Threshold); if (activity > DateTime.Now) { //if added activity time > currenttime then no need to notify, get out. return; } string ph; if (cf.Phonetic.Length == 0) { ph = cf.channel; } else { ph = cf.Phonetic; } if (ph.ToLower() == "notset") { return; } speaker.Speak("channel " + ph + " has activity from " + nPME.User.Nick); } }
void iparse_oPrivMsgEvent(object sender, PrivMsgEventArgs e) { ChanMessageList cml; List <string> nll = dc.GetNickList(); if (!nll.Contains(e.User.Nick.ToLower())) { return; //Return when no accepted nicks are found. We don't want private messages from users we don't know. } if (!ChannelList.TryGetValue("priv_=!" + e.User.Nick, out cml)) { cml = new ChanMessageList(); ChannelList.Add("priv_=!" + e.User.Nick, cml); } else { cml.AddPrivMsg(e); cml.LastUpdate = DateTime.Now; btnPrivMsg.Visible = true; } }
void iparse_oPrivMsgEvent(object sender, PrivMsgEventArgs e) { ChanMessageList cml; List<string> nll = dc.GetNickList(); if (!nll.Contains(e.User.Nick.ToLower())) return; //Return when no accepted nicks are found. We don't want private messages from users we don't know. if (!ChannelList.TryGetValue("priv_=!" + e.User.Nick,out cml)) { cml = new ChanMessageList(); ChannelList.Add("priv_=!" + e.User.Nick, cml); } else { cml.AddPrivMsg(e); cml.LastUpdate = DateTime.Now; btnPrivMsg.Visible = true; } }
private void AppendText(PrivMsgEventArgs pme, bool wrap) { bool alert; alert = false; if (pme.Message.IndexOf(tbNick.Text) >= 0) { alert = true; } if (pme.Message.Length > 7 && pme.Message.Substring(1, 6) == "ACTION") { rtbBox.AppendText("*" + pme.User.Nick + " " + pme.Message.Substring(7) + "\n"); } else { iSubStrStart = rtbBox.Text.Length; rtbBox.AppendText("{" + pme.User.Nick + "} " + pme.Message + "\n"); if (pme.User.Nick == tbNick.Text) { iSubStrEnd = rtbBox.Text.Length; rtbBox.Select(iSubStrStart, iSubStrEnd - iSubStrStart); rtbBox.SelectionColor = NickColor; } else { iSubStrEnd = iSubStrStart + pme.User.Nick.Length + 2; int lenthOfName = iSubStrEnd - iSubStrStart; rtbBox.Select(iSubStrStart, lenthOfName); rtbBox.SelectionColor = NameColor; if (alert) { rtbBox.Select(iSubStrEnd, rtbBox.Text.Length - iSubStrEnd); rtbBox.SelectionColor = AlertColor; } } rtbBox.Select(rtbBox.Text.Length, 0); } place = 4; }
private void AppendText(PrivMsgEventArgs pme, bool wrap) { bool alert; alert = false; if (pme.Message.IndexOf(MyNick) >= 0) alert = true; if (pme.Message.Length > 7 && pme.Message.Substring(1, 6) == "ACTION") { rtbMsg.AppendText("*" + pme.User.Nick + " " + pme.Message.Substring(7) + "\n"); } else { iSubStrStart = rtbMsg.Text.Length; rtbMsg.AppendText("{" + pme.User.Nick + "} " + pme.Message + "\n"); if (pme.User.Nick == MyNick) { iSubStrEnd = rtbMsg.Text.Length; rtbMsg.Select(iSubStrStart, iSubStrEnd - iSubStrStart); rtbMsg.SelectionColor = NickColor; } else { iSubStrEnd = iSubStrStart + pme.User.Nick.Length + 2; int lenthOfName = iSubStrEnd - iSubStrStart; rtbMsg.Select(iSubStrStart, lenthOfName); rtbMsg.SelectionColor = NameColor; if (alert) { rtbMsg.Select(iSubStrEnd, rtbMsg.Text.Length - iSubStrEnd); rtbMsg.SelectionColor = AlertColor; } } rtbMsg.Select(rtbMsg.Text.Length, 0); } }
private void cmdPRIVMSG(string[] args) { _Parsed = true; string[] source = args[0].Split(new char[] { '!' }); string nick = source[0].Replace(":", ""); string realname = source[1].Split(arobas)[0]; string hostname = source[1].Split(arobas)[1]; UserInfo user = new UserInfo(nick, realname, hostname, false); string channel = args[2]; string message = UtilityService.JoinString(args, 3, args.Length).Remove(0, 1); PrivMsgEventArgs e; if (channel.StartsWith("#") == false) { e = new PrivMsgEventArgs(user, message, nick, false); } else { e = new PrivMsgEventArgs(user, message, channel, true); } _Pmargs = e; oPrivMsgEvent(this, e); }
public void AddPrivMsg(PrivMsgEventArgs pmea) { PrivMsgList.Add(pmea); }
public void Copy(ref PrivMsgEventArgs npme) { npme.SetData(this.m_message, this.m_user, this.From, this.IsFromAChannel); }
private void rtbTalk_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up) { rtbTalk.Text = LastSent; rtbTalk.Select(rtbTalk.Text.Length, 0); e.SuppressKeyPress = true; } if (e.KeyCode == Keys.Tab) { if (rtbTalk.Text.Length > 1) { string name; string test = FindLastWord(rtbTalk.Text); foreach (string s in currentCML.nicks) { if (s.Length == 0) { continue; } if (s[0] == '@' || s[0] == '+') { name = s.Substring(1); } else { name = s; } if (name.ToLower().StartsWith(test)) { rtbTalk.Text = rtbTalk.Text.Substring(0, lidx); if (IsFirstWord) { rtbTalk.AppendText(name + ": "); } else { rtbTalk.AppendText(" " + name); } } } } e.SuppressKeyPress = true; } if (e.KeyCode == Keys.Enter) { //privmsg #channel :messagePart if (rtbTalk.Text.StartsWith("/")) { ircCore1.SendRaw(rtbTalk.Text.Substring(1)); } else if (rtbTalk.Text.Length > 0) { PrivMsgEventArgs nPME = new PrivMsgEventArgs(); UserInfo uinfo = new UserInfo(); uinfo.RealName = dc.GetName(); uinfo.Nick = dc.GetNick(); rtbTalk.Text = rtbTalk.Text.Replace("\n", ""); nPME.SetData(rtbTalk.Text, uinfo, selectedChannel, false); ChanMessageList cml; if (!ChannelList.TryGetValue(nPME.From, out cml)) { cml = new ChanMessageList(); ChannelList.Add(nPME.From, cml); } cml.AddPrivMsg(nPME); AppendText(nPME, true); ircCore1.SendRaw("PRIVMSG #" + selectedChannel + " :" + rtbTalk.Text + "\r\n"); LastSent = rtbTalk.Text; } rtbTalk.Text = ""; e.SuppressKeyPress = true; } }
//IrcalBot ibot; private void icore_ProgressChanged(object sender, ProgressChangedEventArgs e) { place = -1; if (e.UserState is List <Message> ) { mList = (List <Message>)e.UserState; } else { return; } place = -2; try { int icnt = mList.Count; if (sbmc == null) { sbmc = new SBMessage(); } //if (ibot == null) // ibot = new IrcalBot(ircCore1); //ibot.pushmessage(mList); for (int i = 0; i < icnt; i++) { place = 49; m = (Message)mList[i]; place = 52; // //:[email protected] PRIVMSG #HamRadio :test //sbmc.SendSBM(m.message); if (m.message.Contains("PRIVMSG")) { place = 53; iparse.MainParser(m.message); PrivMsgEventArgs pme = iparse.pmargs; PrivMsgEventArgs nPME = new PrivMsgEventArgs(); pme.Copy(ref nPME); ChanMessageList cml; place = 54; string scChannel = StripPND(nPME.From); sbmc.SendSBM(m.message, scChannel); MessageQueue.Add(m.message); if (!ChannelList.TryGetValue(scChannel, out cml)) { cml = new ChanMessageList(); ChannelList.Add(nPME.From, cml); } if (ChannelList.TryGetValue(scChannel, out cml)) { cml.AddPrivMsg(nPME); if (!cml.nicks.Contains(nPME.User.Nick)) { cml.nicks.Add(nPME.User.Nick); } //Only add text to window if channel is selected. if (selectedChannel == scChannel.ToLower()) { AppendText(nPME, true); rtbTopic.SelectAll(); rtbTopic.SelectionAlignment = HorizontalAlignment.Right; ScrollToBottom(rtbBox); } oNotify.CheckName(nPME.User.Nick); oNotify.CheckChannel(ircCore1.ServerName, scChannel, nPME); cml.LastUpdate = DateTime.Now; } place = 88; } else { iparse.MainParser(m.message); if (!iparse.parsed) { string msg = m.message.Trim(); if (msg.Length > 0) { if (msg.StartsWith("PING")) { break; } rtbGeneral.AppendText(msg + retval); rtbGeneral.Select(rtbGeneral.Text.Length, 0); } } } //if (m.Direction == "parse") //{ // place = 71; // iparse.MainParser(m.message.Split(new char[] { ' ' })); //} } place = 72; mList.RemoveRange(0, mList.Count); place = 73; } catch (Exception ex) { rtbGeneral.AppendText("ERROR:place" + place.ToString() + ex.Message); // MessageBox.Show(ex.Message + " err: place = "+ place.ToString()); } }
//IrcalBot ibot; private void icore_ProgressChanged(object sender, ProgressChangedEventArgs e) { place = -1; if (e.UserState is List<Message>) mList = (List<Message>)e.UserState; else return; place = -2; try { int icnt = mList.Count; if (sbmc == null) sbmc = new SBMessage(); //if (ibot == null) // ibot = new IrcalBot(ircCore1); //ibot.pushmessage(mList); for (int i = 0; i < icnt; i++) { place = 49; m = (Message) mList[i]; place = 52; // //:[email protected] PRIVMSG #HamRadio :test //sbmc.SendSBM(m.message); if (m.message.Contains("PRIVMSG")) { place = 53; iparse.MainParser(m.message); PrivMsgEventArgs pme = iparse.pmargs; PrivMsgEventArgs nPME = new PrivMsgEventArgs(); pme.Copy(ref nPME); ChanMessageList cml; place = 54; string scChannel = StripPND(nPME.From); sbmc.SendSBM(m.message,scChannel); MessageQueue.Add(m.message); if (!ChannelList.TryGetValue(scChannel, out cml)) { cml = new ChanMessageList(); ChannelList.Add(nPME.From, cml); } if (ChannelList.TryGetValue(scChannel, out cml)) { cml.AddPrivMsg(nPME); if (!cml.nicks.Contains(nPME.User.Nick)) cml.nicks.Add(nPME.User.Nick); //Only add text to window if channel is selected. if (selectedChannel == scChannel.ToLower()) { AppendText(nPME, true); rtbTopic.SelectAll(); rtbTopic.SelectionAlignment = HorizontalAlignment.Right; ScrollToBottom(rtbBox); } oNotify.CheckName(nPME.User.Nick); oNotify.CheckChannel(ircCore1.ServerName, scChannel, nPME); cml.LastUpdate = DateTime.Now; } place = 88; } else { iparse.MainParser(m.message); if (!iparse.parsed) { string msg = m.message.Trim(); if (msg.Length > 0 ) { if (msg.StartsWith("PING")) break; rtbGeneral.AppendText(msg + retval); rtbGeneral.Select(rtbGeneral.Text.Length, 0); } } } //if (m.Direction == "parse") //{ // place = 71; // iparse.MainParser(m.message.Split(new char[] { ' ' })); //} } place = 72; mList.RemoveRange(0, mList.Count); place = 73; } catch (Exception ex) { rtbGeneral.AppendText("ERROR:place" + place.ToString() + ex.Message); // MessageBox.Show(ex.Message + " err: place = "+ place.ToString()); } }
private void AppendText(PrivMsgEventArgs pme) { int suggestedLen; int textLen; int divisor = 1; tempMessage = pme.Message; //save for debuggind and use it. Size size; size = TextRenderer.MeasureText(tempMessage, rtbBox.Font); textLen = size.Width; if (textLen > rtbBox.Width) { place = 54; divisor = textLen / rtbBox.Width; divisor++; suggestedLen = tempMessage.Length / divisor; } else suggestedLen = tempMessage.Length; if (tempMessage.Length > suggestedLen) { place = 4; index = 0; endlen = 0; for (int i = 0; i < divisor; i++) { msg = MessagePart(suggestedLen + 1, tempMessage); rtbBox.AppendText(msg + retval); place = 6; if (i == 0) rtbTopic.AppendText(pme.From + ":" + pme.User.Nick + retval); else rtbTopic.AppendText(retval); } } else { rtbBox.AppendText(tempMessage + retval); rtbTopic.AppendText(pme.From + ":" + pme.User.Nick + retval); } rtbTopic.SelectAll(); rtbTopic.SelectionAlignment = HorizontalAlignment.Right; ScrollToBottom(rtbTopic); ScrollToBottom(rtbBox); }
void iparse_oPrivMsgEvent(object sender, PrivMsgEventArgs e) { AppendText(e,true); }
private void rtbTalk_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Up) { rtbTalk.Text = LastSent; rtbTalk.Select(rtbTalk.Text.Length, 0); e.SuppressKeyPress = true; } if (e.KeyCode == Keys.Tab) { if (rtbTalk.Text.Length > 1 ) { string name; string test = FindLastWord(rtbTalk.Text); foreach (string s in currentCML.nicks) { if (s.Length == 0) continue; if (s[0] == '@' || s[0] == '+') name = s.Substring(1); else name = s; if (name.ToLower().StartsWith(test)) { rtbTalk.Text = rtbTalk.Text.Substring(0, lidx); if (IsFirstWord) { rtbTalk.AppendText(name + ": "); } else rtbTalk.AppendText(" " + name); } } } e.SuppressKeyPress = true; } if (e.KeyCode == Keys.Enter) { //privmsg #channel :messagePart if (rtbTalk.Text.StartsWith("/")) { ircCore1.SendRaw(rtbTalk.Text.Substring(1)); } else if (rtbTalk.Text.Length > 0) { PrivMsgEventArgs nPME = new PrivMsgEventArgs(); UserInfo uinfo = new UserInfo(); uinfo.RealName = dc.GetName(); uinfo.Nick = dc.GetNick(); rtbTalk.Text = rtbTalk.Text.Replace("\n", ""); nPME.SetData(rtbTalk.Text, uinfo, selectedChannel, false); ChanMessageList cml; if (!ChannelList.TryGetValue(nPME.From, out cml)) { cml = new ChanMessageList(); ChannelList.Add(nPME.From, cml); } cml.AddPrivMsg(nPME); AppendText(nPME, true); ircCore1.SendRaw("PRIVMSG #" + selectedChannel + " :" + rtbTalk.Text + "\r\n"); LastSent = rtbTalk.Text; } rtbTalk.Text = ""; e.SuppressKeyPress = true; } }
void iparse_oPrivMsgEvent(object sender, PrivMsgEventArgs e) { AppendText(e, true); }