private void sess_BuddyItemReceived(Session sess, SSIBuddy buddy) { //foreach (ContactListGroup clg in groups) //{ // if ((clg.group != null) && (clg.group.ID == buddy.GroupID)) // { // for (int i = 0; i < clg.group.Children.GetLength(0); ++i) // { // if (clg.group.Children[i] == buddy.ID) // { // clg.buddies[i] = buddy; // } // } // } //} Console.WriteLine(String.Format("Received Buddy({0}): {1}({2}) GroupId:{3}", buddy.ID, buddy.Name, buddy.DisplayName, buddy.GroupID)); }
/// <summary> /// <para>Request full user informations from Server. Strings are ASCII and UTF8.</para> /// <para>Works only with ICQ-Contacts not e.g. AOL-Contacts.</para> /// </summary> /// <param name="screenname">The screenname to get information about, see <see cref="Utility.ScreennameVerifier.IsValidICQ"/></param> /// <remarks>Results are returned by the <see cref="FullUserInfoReceived"/> event.</remarks> public void RequestFullUserInfo(string screenname) { if (!ScreennameVerifier.IsValidICQ(screenname)) { return; } ByteStream stream = new ByteStream(); // Metatoken SSIBuddy buddy = parent.SSI.GetBuddyByName(screenname); byte[] metatoken = (buddy != null ? buddy.MetaInfoToken : null); // Length ushort len_token = (ushort)(metatoken != null ? metatoken.Length + 4 : 0); ushort len_name = (ushort)(Encoding.ASCII.GetByteCount(screenname) + 4); /* * * * * User * * * * */ stream.WriteUshort(0x0003); stream.WriteUint((uint)1); stream.WriteUshort((ushort)(len_name + len_token)); // size to end // MetaToken for extendet userinfo if (metatoken != null) { stream.WriteUshort(0x003c); stream.WriteUshort((ushort)metatoken.Length); stream.WriteByteArray(metatoken); } // TLV Block stream.WriteUshort(0x0032); stream.WriteUshort((ushort)Encoding.ASCII.GetByteCount(screenname)); stream.WriteString(screenname, Encoding.ASCII); /* * * * * Header * * * * */ SNACHeader sh = CreateIcqMetaHeader(); stream = CreateDirectoryHeader(DirectoryRequestType.QueryInfoRequest, stream); stream = CreateMetaInfoHeader(parent, sh, MetaInfoRequestType.DirectoryQueryRequest, stream); parent.StoreRequestID(sh.RequestID, DirecotyQueryType.InfoUser); SNACFunctions.BuildFLAP(Marshal.BuildDataPacket(parent, sh, stream)); }
private void sess_BuddyItemReceived(Session sess, SSIBuddy buddy) { //foreach (ContactListGroup clg in groups) //{ // if ((clg.group != null) && (clg.group.ID == buddy.GroupID)) // { // for (int i = 0; i < clg.group.Children.GetLength(0); ++i) // { // if (clg.group.Children[i] == buddy.ID) // { // clg.buddies[i] = buddy; // } // } // } //} Console.WriteLine(String.Format("Received Buddy({0}): {1}({2}) GroupId:{3}", buddy.ID, buddy.Name, buddy.DisplayName,buddy.GroupID)); }
/// <summary> /// Raises the <see cref="BuddyItemRemoved"/> event /// </summary> /// <param name="buddy">An <see cref="SSIBuddy"/> object</param> protected internal void OnBuddyItemRemoved(SSIBuddy buddy) { if (this.BuddyItemRemoved != null) { this.BuddyItemRemoved(this, buddy); } }
public void Go() { string line; while ((line = Console.ReadLine()) != "quit") { start = DateTime.Now; if (line.Equals("sendsms")) { Console.WriteLine("Enter phone to send SMS to (+972XXXXXXXXX)"); string phone = Console.ReadLine(); Console.WriteLine("Enter phone message"); string message = Console.ReadLine(); sess.ICQ.SendSMSMessage(phone, message, "SMS"); } else if (line.Equals("filesend")) { filecookie = sess.SendFile("560280115", "C:\\DevTools.exe"); } else if (line.Equals("filesendproxy")) { filecookie = sess.SendFileProxied("560280115", "C:\\DevTools.exe"); } else if (line.Equals("filecancel")) { if (filecookie != null) { sess.CancelFileTransfer(filecookie); } } else if (line.Equals("upicon")) { sess.Graphics.UploadBuddyIcon("C:\\testavatar.jpg"); } else if (line.Equals("addbuddy")) { Console.WriteLine("Name?"); string buddyname = Console.ReadLine(); Console.WriteLine("Group ID?"); ushort parentID = ushort.Parse(Console.ReadLine()); Console.WriteLine("Index?"); int index = int.Parse(Console.ReadLine()); sess.AddBuddy(buddyname, parentID, index, "", "", "", "", "", false, ""); } else if (line.Equals("addgroup")) { Console.WriteLine("Name?"); string groupname = Console.ReadLine(); Console.WriteLine("Index?"); int index = int.Parse(Console.ReadLine()); sess.AddGroup(groupname, index); } else if (line.Equals("movebuddy")) { Console.WriteLine("ID?"); ushort buddyID = ushort.Parse(Console.ReadLine()); Console.WriteLine("Group ID?"); ushort parentID = ushort.Parse(Console.ReadLine()); Console.WriteLine("Index?"); int index = int.Parse(Console.ReadLine()); sess.MoveBuddy(buddyID, parentID, index); } else if (line.Equals("movegroup")) { Console.WriteLine("ID?"); ushort groupID = ushort.Parse(Console.ReadLine()); Console.WriteLine("Index?"); int index = int.Parse(Console.ReadLine()); sess.MoveGroup(groupID, index); } else if (line.Equals("removebuddy")) { Console.WriteLine("ScreenName?"); SSIBuddy buddy = sess.SSI.GetBuddyByName(Console.ReadLine()); if (buddy != null) { sess.SSI.RemoveBuddy(buddy); sess.SSI.RemoveYourself(buddy.Name); } } else if (line.Equals("removegroup")) { Console.WriteLine("ID?"); ushort groupID = ushort.Parse(Console.ReadLine()); sess.RemoveGroup(groupID); } else if (line.Equals("offline")) { Console.WriteLine("Retrieving offline messages"); sess.Messages.RetrieveOfflineMessages(); } else if (line.Equals("sendoffline")) { Console.WriteLine("Who?"); string destination = Console.ReadLine(); sess.Messages.SendMessage(destination, "An offline message", OutgoingMessageFlags.DeliverOffline); } else if (line.Equals("send")) { Console.WriteLine("Where?"); string destination = Console.ReadLine(); sess.Messages.SendMessage(destination, "A test message"); } else if (line.Equals("shortinfo")) { Console.WriteLine("Who?"); sess.ICQ.RequestShortUserInfo(Console.ReadLine()); } else if (line.Equals("fullinfo")) { Console.WriteLine("Who?"); sess.ICQ.RequestFullUserInfo(Console.ReadLine()); } else if (line.Equals("setpass")) { Console.WriteLine("New password?"); sess.ICQ.SendNewPassword(Console.ReadLine()); } else if (line.Equals("updatebuddy")) { SSIBuddy buddy = sess.SSI.GetBuddyByName("560280115"); Console.WriteLine("New Nick?"); string nick = Console.ReadLine(); buddy.DisplayName = nick; sess.SSI.ModifyBuddy(buddy); } else if (line.Equals("setinfo")) { Console.WriteLine("Sets own userdetails"); sess.ICQ.SendUserInfo(myui); } else if (line.Equals("setemail")) { Console.WriteLine("Email?"); string email = Console.ReadLine(); Console.WriteLine("error code: " + sess.ICQ.SendUserEmail(email)); } else if (line.Equals("checkout")) { sess.SendContactListCheckout(); } } }