private IQMessage IQMessage_Presence(String domain, PresenceShow presenceShow, String presenceStatus) { String message; String tagAvatar; String tagVCard; if (mPresenceAvatarSHA1 != "") { tagAvatar = "<x xmlns='jabber:x:avatar'><hash>" + mPresenceAvatarSHA1 + "</hash></x>"; tagVCard = "<x xmlns='vcard-temp:x:update'><photo>" + mPresenceAvatarSHA1 + "</photo></x>"; } else { tagAvatar = "<x xmlns='jabber:x:avatar'/>"; tagVCard = "<x xmlns='vcard-temp:x:update'/>"; } if (presenceShow == PresenceShow.offline) { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show/><status>" + presenceStatus + "</status><priority>1</priority>" + tagAvatar + tagVCard + "</presence>"; } else if (presenceShow == PresenceShow.chat) { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show>" + presenceShow.ToString() + "</show><status>" + presenceStatus + "</status><priority>1</priority>" + tagAvatar + tagVCard + "</presence>"; } else { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show>" + presenceShow.ToString() + "</show><status>" + presenceStatus + "</status><priority>0</priority>" + tagAvatar + tagVCard + "</presence>"; } return(new IQMessage(domain, message)); }
/// <summary> /// Lets you change the XMPP Presence /// </summary> /// <param name="status">Your status</param> /// <param name="pres">The presence</param> /// <param name="show">The show</param> /// <returns>The output presence</returns> public string PresenceAsString(string status, PresenceType pres, PresenceShow show) { var encodedXml = System.Security.SecurityElement.Escape(status); return($"<presence type=\"{ConvertPresenceType.ConvertPresenceTypeToString(pres)}\">" + "<priority>0</priority>" + $"<show>{ConvertPresenceShow.ConvertPresenceShowToString(show)}</show>" + $"<status>{encodedXml}</status>" + "</presence>"); }
/// <summary> /// Lets you change the XMPP Presence /// </summary> /// <param name="status">Your status</param> /// <param name="pres">The presence</param> /// <param name="show">The show</param> public void SetPresence(string status, PresenceType pres, PresenceShow show) { Presence = new ChatPresence { FromJid = ChatClient.MainJid, LastOnline = DateTime.Now.ToString("dd-MM-yyyy"), PresenceShow = show, PresenceType = pres, Status = status }; var encodedXml = System.Security.SecurityElement.Escape(status); ChatClient.TcpClient.SendString(PresenceAsString(status, pres, show)); }
/// <summary> /// Converts <see cref="PresenceShow"/> to a string /// </summary> /// <param name="show">The presence to convert</param> /// <returns>The XMPP string equivalent</returns> public static string ConvertPresenceShowToString(PresenceShow show) { switch (show) { case PresenceShow.Away: return("away"); case PresenceShow.Chat: return("chat"); case PresenceShow.Mobile: return("mobile"); case PresenceShow.Dnd: return("dnd"); case PresenceShow.Xa: return("xa"); default: return("chat"); } }
internal void SendPresence(string domain, PresenceShow presenceShow, String presenceStatus) { this.OnSendIQMessage(IQMessage_Presence(domain, presenceShow, presenceStatus), new EventArgs()); }
private IQMessage IQMessage_Presence(String domain, PresenceShow presenceShow, String presenceStatus) { String message; String tagAvatar; String tagVCard; if (mPresenceAvatarSHA1 != "") { tagAvatar = "<x xmlns='jabber:x:avatar'><hash>" + mPresenceAvatarSHA1 + "</hash></x>"; tagVCard = "<x xmlns='vcard-temp:x:update'><photo>" + mPresenceAvatarSHA1 + "</photo></x>"; } else { tagAvatar = "<x xmlns='jabber:x:avatar'/>"; tagVCard = "<x xmlns='vcard-temp:x:update'/>"; } if (presenceShow == PresenceShow.offline) { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show/><status>" + presenceStatus + "</status><priority>1</priority>" + tagAvatar + tagVCard + "</presence>"; } else if (presenceShow == PresenceShow.chat) { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show>" + presenceShow.ToString() + "</show><status>" + presenceStatus + "</status><priority>1</priority>" + tagAvatar + tagVCard + "</presence>"; } else { message = "<presence id=\"" + mTag + "-" + mCounter.ToString() + "\" to=\"" + domain + "\"><show>" + presenceShow.ToString() + "</show><status>" + presenceStatus + "</status><priority>0</priority>" + tagAvatar + tagVCard + "</presence>"; } return new IQMessage(domain, message); }
internal void SendPresence(string domain, PresenceShow presenceShow, String presenceStatus) { this.OnSendIQMessage(IQMessage_Presence(domain, presenceShow, presenceStatus), new EventArgs()); }