viernes, 20 de mayo de 2011

Controlar PC desde Twitter

Hola todos, en este post les mostraré como controlar una computadora desde Twitter. Primeramente agradecer a www.twitterizer.com, en la que se encuantra la mejor librería para el manejo de Twitter desde aplicaciones .Net(escritorio, web, etc.).


Bueno, básicamente lo que hace la aplicación es determinar cierto intervalo de actualización, es decir, cada cuanto tiempo obtendrá el último estado del usuario que seleccionemos, obviamente si queremos controlar nuestra computadora deberiamos utilizar nuestro propio usuario, en fin, se obtrendrá el último estado de este usuario y verificaremos que el estado comience con la subcadena "zombie:" y seguida de un comando. Luego ejecutamos el comando y lo demas es historia.


Bueno, actualmente este código fuente solo acepta dos tipos de comandos ("zombie:calc", "zombie:cmd"), los cuales abren una la calculadora de Windows y una terminal respectivamente. La aplicación final es como se muestra en la imagen:







Y bueno, algunas de las funciones que utilice para hacer esto, son:


El siguiente código obtiene el usuario según su username:
public TwitterUser GetUsuarioByUsername(string username){
    TwitterUser user = null;
    try {
        // Obtiene una respuesta segun los tokens
        // y  el nombre del usuario
        TwitterResponse response;
        response = TwitterUser.Show(tokens, username);

        // Obtiene un objeto usuario y lo asigna
        // a la variable de retorno
        user = response.ResponseObject;
    }
    catch(Exception ex) {
        //Logger.Guardar(ex.Message);
        throw ex;
    }
    return user;
}

Este código es el encargado de obtener el ultimo estado del usuario, y lo procesa en caso que comience con la subcadena "zombie:"
private void tmrListener_Tick(object sender, EventArgs e) {
    if (!ActualizarUsuario())
        MessageBox.Show(this, "Error al conectarse", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);


    if (this.user != null && iniciado) {
        string ultimoStatus = this.user.Status.Text;
        //txtNotificaciones.Text += "\n Tweet: " + ultimoStatus;

        if (ultimoStatus.StartsWith("zombie:")) {
            if (!ultimoStatus.Equals(ultimoComando)) {
                this.ultimoComando = ultimoStatus;

                txtNotificaciones.Text += "Comando: " + ultimoStatus + Environment.NewLine;
                // Procesa el comando recivido
                ProcesarComando(ultimoStatus.Substring(7));
            }
        }
    }
}


Ahora para poder utilizar esto, simplemente hay que twitear, con la diferencia que el tweet es de la forma zombie:comando. Bueno, espero les haya gustado, este es un simple ejemplo de lo que se puede hacer con la librería Twitterizer.


Saludos



Código:

No hay comentarios:

Publicar un comentario