/// <summary>
 ///		Inicializa el formulario
 /// </summary>
 private void InitForm()
 {
     //	Inicializa la cuenta
         if (Account == null)
             Account = new TwitterAccount(Program.TwitterBotManager);
     // Carga los datos de la cuenta
         LoadAccount();
 }
Exemple #2
0
 /// <summary>
 ///		Borra una cuenta
 /// </summary>
 private void DeleteAccount(TwitterAccount objAccount)
 {
     if (objAccount == null)
         Bau.Controls.Forms.Helper.ShowMessage(this, "Seleccione una cuenta");
     else if (Bau.Controls.Forms.Helper.ShowQuestion(this, "¿Realmente desea borrar la cuenta " + objAccount.ScreenName + "?"))
         { // Elimina la cuenta
                 Program.TwitterBotManager.Accounts.RemoveByScreenName(objAccount.ScreenName);
                 AccountsRepository.Save(Program.TwitterBotManager.Accounts, Classes.TwitterConfiguration.FileNameAccounts);
             // Actualiza el control
                 InitControlMessenger();
         }
 }
        /// <summary>
        ///		Obtiene los amigos de un usuario
        /// </summary>
        public TwitterMessagesCollection GetFriends(TwitterAccount objAccount, string strScreenName = null)
        {
            ManagerTwitter objInstance = GetInstance(objAccount);
            TwitterMessagesCollection objColMessages = new TwitterMessagesCollection();

                // Añade los usuarios
                    if (strScreenName.IsEmpty())
                        objColMessages.AddRange(objInstance.Accounts[0].UserCommand.GetFriends(objAccount.ScreenName, false));
                    else
                        objColMessages.AddRange(objInstance.Accounts[0].UserCommand.GetFriends(strScreenName, false));
                // Devuelve la colección
                    return objColMessages;
        }
        /// <summary>
        ///		Añade un amigo a una cuenta
        /// </summary>
        public bool AddFriend(TwitterAccount objAccount, string strScreenName, bool blnFollow, out string strError)
        {
            ManagerTwitter objInstance = GetInstance(objAccount);
            bool blnAdded = false;

                // Inicializa los valores de salida
                    strError = "";
                // Añade el amigo
                    objInstance.Accounts[0].UserCommand.AddFriend(strScreenName, blnFollow);
                // Comprueba los errores
                    if (objInstance.Accounts[0].HasError)
                        strError = objInstance.Accounts[0].LastError.Message;
                    else
                        blnAdded = true;
                // Devuelve el valor que indica si se ha añadido el contacto
                    return blnAdded;
        }
        /// <summary>
        ///		Carga los datos del usuario
        /// </summary>
        private void LoadUser(TwitterAccount objAccount, string strScreenName)
        {
            if (objAccount != null && !objAccount.IsEmpty)
                { TwitterMessageUser objUser = Program.TwitterBotManager.TwitterMessenger.GetUserTwitter(objAccount, strScreenName);

                    // Muestra los datos del usuario
                        if (objUser == null)
                          Bau.Controls.Forms.Helper.ShowMessage(this, "Error al conectar con Twitter");
                        else if (objUser != null)
                          { txtDescription.Text = objUser.User.ScreenName;
                            lblFollowers.Text = objUser.User.FollowersCount.ToString();
                            lblFollowing.Text = objUser.User.FriendsCount.ToString();
                            lblWeb.Text = objUser.User.Url;
                          }
                      // Cambia el título con el nombre de usuario
                        Text = "@" + strScreenName;
                }
        }
        /// <summary>
        ///		Carga las cuentas de un archivo
        /// </summary>
        public static void Load(string strFileName, ManagerTwitter objManager)
        {
            TwitterAccountsCollection objColAccounts = new TwitterAccountsCollection();

                if (System.IO.File.Exists(strFileName))
                    {	MLFile objMLFile = new MLSerializer().Parse(MLSerializer.SerializerType.XML, strFileName);

                            // Recorre los nodos
                                foreach (MLNode objMLNode in objMLFile.Nodes)
                                    if (objMLNode.Name == cnstStrTagRoot)
                                        foreach (MLNode objMLAccount in objMLNode.Nodes)
                                            if (objMLAccount.Name == cnstStrTagAccount)
                                                { TwitterAccount objAccount = new TwitterAccount(objManager);

                                                        // Asigna los datos
                                                            objAccount.ID = objMLAccount.Nodes[cnstStrTagID].Value;
                                                            objAccount.ScreenName = objMLAccount.Nodes[cnstStrTagUser].Value;
                                                            objAccount.OAuthToken = objMLAccount.Nodes[cnstStrTagOAuthToken].Value;
                                                            objAccount.OAuthTokenSecret = objMLAccount.Nodes[cnstStrTagOAuthTokenSecret].Value;
                                                        // Añade la cuenta a la colección
                                                            objManager.Accounts.Add(objAccount);
                                                }
                    }
        }
        /// <summary>
        ///		Obtiene el timeLine público
        /// </summary>
        public TwitterMessagesCollection GetPublicTimeLine(TwitterAccount objAccount)
        {
            ManagerTwitter objInstance = GetInstance(objAccount);
            TwitterMessagesCollection objColMessages = new TwitterMessagesCollection();

                // Añade los mensajes
                    objColMessages.AddRange(objInstance.Accounts[0].StatusCommand.GetPublicTimeLine());
                // Devuelve la colección
                    return objColMessages;
        }
        /// <summary>
        ///		Obtiene una instancia de la librería de Twitter
        /// </summary>
        private ManagerTwitter GetInstance(TwitterAccount objAccount)
        {
            ManagerTwitter objTwitter = new ManagerTwitter();

            // Configura el objeto de envío de Twitter
              objTwitter.OAuthConsumerKey = BotManager.OAuthConsumerKey;
              objTwitter.OAuthConsumerSecret = BotManager.OAuthConsumerSecret;
            // Añade la cuenta
              objTwitter.Accounts.Add(GetAccount(objTwitter, objAccount));
            // Devuelve la librería de Twitter inicializada
              return objTwitter;
        }
        /// <summary>
        ///		Obtiene una cuenta para Twitter
        /// </summary>
        private TwitterAccount GetAccount(ManagerTwitter objTwitter, TwitterAccount objAccount)
        {
            TwitterAccount objAccountTwitter = new TwitterAccount(objTwitter);

            // Asigna las propiedades
              objAccountTwitter.ID = Guid.NewGuid().ToString();
              objAccountTwitter.ScreenName = objAccount.ScreenName;
              objAccountTwitter.OAuthToken = objAccount.OAuthToken;
              objAccountTwitter.OAuthTokenSecret = objAccount.OAuthTokenSecret;
            // Devuelve la cuenta
              return objAccountTwitter;
        }
        /// <summary>
        ///		Envía un mensaje
        /// </summary>
        public bool SendMessage(TwitterAccount objAccount, string strMessage, out string strError)
        {
            ManagerTwitter objTwitter = GetInstance(objAccount);

                // Inicializa los datos de salida
                    strError = "";
                // Envía el mensaje
                    objTwitter.Accounts[0].StatusCommand.Send(NormalizeText(strMessage));
                // Obtiene el error
                    if (objTwitter.Accounts[0].HasError)
                        strError = objTwitter.Accounts[0].LastError.Message;
                // Devuelve el valor que indica si se ha enviado
                    return strError.IsEmpty();
        }
        /// <summary>
        ///		Elimina un amigo de una cuenta
        /// </summary>
        public bool RemoveFriend(TwitterAccount objAccount, string strScreenName, out string strError)
        {
            ManagerTwitter objInstance = GetInstance(objAccount);
            bool blnRemoved = false;

                // Inicializa los valores de salida
                    strError = "";
                // Añade el amigo
                    objInstance.Accounts[0].UserCommand.RemoveFriend(strScreenName);
                // Obtiene el error
                    if (objInstance.Accounts[0].HasError)
                        strError = objInstance.Accounts[0].LastError.Message;
                    else
                        blnRemoved = true;
                // Devuelve el valor que indica si se ha eliminado
                    return blnRemoved;
        }
        /// <summary>
        ///		Obtiene los datos de una cuenta en Twitter
        /// </summary>
        public TwitterMessageUser GetUserTwitter(TwitterAccount objAccount, string strScreenName)
        {
            ManagerTwitter objInstance = GetInstance(objAccount);
            User objUser = objInstance.Accounts[0].UserCommand.GetExtendedInfo(strScreenName, false);

                if (objUser == null)
                    return new TwitterMessageUser(new User { ID = 0, CreatedAt = DateTime.Now.ToString() });
                else
                    return new TwitterMessageUser(objUser);
        }
        /// <summary>
        ///		Obtiene el TimeLine de un usuario
        /// </summary>
        public TwitterMessagesCollection GetUserTimeLine(TwitterAccount objAccount, string strScreenName = null)
        {
            ManagerTwitter objInstace = GetInstance(objAccount);
            TwitterMessagesCollection objColMessages = new TwitterMessagesCollection();

                // Añade el timeLine
                    if (!strScreenName.IsEmpty())
                        objColMessages.AddRange(objInstace.Accounts[0].StatusCommand.GetUserTimeLine(strScreenName));
                    else
                        objColMessages.AddRange(objInstace.Accounts[0].StatusCommand.GetUserTimeLine(objAccount.ScreenName));
                // Devuelve el timeLine
                    return objColMessages;
        }
Exemple #14
0
        /// <summary>
        ///		Modifica una cuenta
        /// </summary>
        private void UpdateAccount(TwitterAccount objAccount)
        {
            Forms.frmAccount frmNewAccount = new Forms.frmAccount();

                // Asigna las propiedades
                    frmNewAccount.Account = objAccount;
                // Muestra el formulario
                    frmNewAccount.ShowDialog();
                // Actualiza el formulario
                    if (frmNewAccount.DialogResult == DialogResult.OK)
                        InitControlMessenger(frmNewAccount.Account.ScreenName);
        }