/// <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(); }
/// <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; }
/// <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); }