[Aporte] TweetBot v1.0

Iniciado por P4nd3m0n1um, 28 Mayo 2012, 04:49 AM

0 Miembros y 1 Visitante están viendo este tema.

P4nd3m0n1um


Bien como podemos ver este es un simple Bot de Twitter, esto quiere decir que podemos mandar Tweets sin necesidad de visitar la pagina, simplemente debemos loguearnos y comenzar a twittear. En este caso no he terminado el multiple-tweet por ende esta des-habilitado.

Vamos a ver un poco el código; en este caso trabajaremos con webbrowser (Internet Explorer):

Tenemos dos paginas; la de login: https://mobile.twitter.com/login/ y la del tweet: https://mobile.twitter.com/compose/tweet utilizaremos la versión mobile ya que no tiene tantos gráficos y trabaja más rápida que la versión normal.

Código (vb) [Seleccionar]
Private Sub Form_Load()
    WebBrowser1.Navigate "https://mobile.twitter.com/compose/tweet"
End Sub


Comenzaremos visitando la URL al iniciar el programa, luego utilizaremos la función DocumentComplete, para verificar que sitio se cargo:

Código (vb) [Seleccionar]
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
   If (pDisp Is WebBrowser1.Object) Then
        'si se cargo el sitio habilitamos los botones y login.
       
        Debug.Print "Se Cargo la pagina completamente..."
       
        'verificamos en que sitio estamos: si login o tweet?
        Text4.Text = WebBrowser1.Document.body.outerText
        If Label3.Caption = Text5.Text Then
            'Estamos en Inicio de Sesion.
            Command1.Enabled = True
            Text2.Enabled = True
            Text3.Enabled = True
        Else
            'Estamos en Tweet.
            Text1.Enabled = True
            Command2.Enabled = True
            'Des-habilitamos login.
            Command1.Enabled = False
            Text2.Enabled = False
            Text3.Enabled = False
        End If
   End If
'¡Inicia sesión en Twitter! Regístrate

End Sub



Vamos a mover el contenido de texto del WebBrowser a un TextBox (Text4), luego vamos a tener un label con el contenido "¡Inicia sesión en Twitter" (Label3), luego vamos a verificar con el texto del TextBox5 haber que pagina se cargo (IF), en el caso que se haya cargado la pagina de inicio de sesión, se nos habilitaran los botones y textbox de login, en el caso que ya estemos logueados y podemos postear, se bloquearan los botones y textbox de login habilitando el textbox de tweet y el botón de envio.

Código (vb) [Seleccionar]
Private Sub Text4_Change()
Dim Palabras() As String
    Palabras = Split(Text4.Text, "!")
    Text5.Text = Palabras(0)
End Sub



Del TextBox4 vamos a extraer la primer parte para compararla con el label3 y así saber cual es la pagina visitada.

Código (vb) [Seleccionar]
Private Sub Text2_Change()
'Completamos el campo del usuario con el TextBox 2.
Do While WebBrowser1.Busy
    Loop
    WebBrowser1.Document.getelementbyid("username").Value = Text2.Text
End Sub

Private Sub Text3_Change()
'Completamos el campo del password con el TextBox 3.
Do While WebBrowser1.Busy
    Loop
    WebBrowser1.Document.getelementbyid("password").Value = Text3.Text
End Sub

Private Sub Command1_Click()
'Enviamos el formulario con el usuario y contraseña.
WebBrowser1.Document.getelementbyid("commit").Click
End Sub



Ahora trabajaremos con el logueo, cuando cambie el text2, se completara en el WebBrowser el usuario, así mismo pasara con el text3, se completara en el WebBrowser el password y con commit enviamos la información.

Código (vb) [Seleccionar]
Private Sub Text1_Change()
'Completamos el campo del usuario con el TextBox 1.
Do While WebBrowser1.Busy
    Loop
    WebBrowser1.Document.All("tweet[text]").Value = Text1.Text
End Sub

Private Sub Command2_Click()
'Enviamos el tweet.
    WebBrowser1.Document.getelementbyid("commit").Click
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
'visitamos el sitio tweet:
WebBrowser1.Navigate "https://mobile.twitter.com/compose/tweet"
Timer1.Enabled = False
End Sub



Para ir terminando, ya tenemos el logueo, ahora simplemente falta el tweet, el campo de texto del tweet sera tomado por el text1, con commit, enviearemos el tweet y vamos a poner un timer para esperar unos segundos y recargar la pagina del tweet así podemos seguir enviando mensajes.

DESCARGAR CÓDIGO FUENTE

FUENTE: http://www.nochesdecode.com.ar/2012/05/tweetbot-v10.html

BlackZeroX

.
mmm esta bien aun que en lo personal es mejor liarse con el API del servicio...

Dulces Lunas!¡.
The Dark Shadow is my passion.

extreme69

#2
Cita de: P4nd3m0n1um en 28 Mayo 2012, 04:49 AM
Código (vb) [Seleccionar]
Do While WebBrowser1.Busy
    Loop
    WebBrowser1.Document.getelementbyid("username").Value = Text2.Text
End Sub


Que buena manera de enviar datos a un formulario web, esto lo pregunté especificamente hace un tiempo y me dijeron que no era posible sin usar sendkeys... ¡los dolores de cabeza que me hubiese ahorrado y que me ahorrarás con esto!

Está lindo el aporte, gracias.


79137913

HOLA!!!

Cita de: BlackZeroX (Astaroth) en 28 Mayo 2012, 05:13 AM
.
mmm esta bien aun que en lo personal es mejor liarse con el API del servicio...

Dulces Lunas!¡.

El tema es que se necesita si o si estar registrado para obtener el oAuth, por ende si vas a hacer maldades no te sirve, te van a tracear muy facilmente XD.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*