예제 #1
0
파일: Main.cs 프로젝트: saroj82/OscarLib
 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));
 }
예제 #2
0
        /// <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));
        }
예제 #3
0
파일: Main.cs 프로젝트: pkt30/OscarLib
 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));
 }
예제 #4
0
파일: Session.cs 프로젝트: pkt30/OscarLib
 /// <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);
     }
 }
예제 #5
0
파일: Main.cs 프로젝트: saroj82/OscarLib
        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();
                }
            }
        }