Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: P4nd3m0n1um en 28 Mayo 2012, 04:49 am



Título: [Aporte] TweetBot v1.0
Publicado por: P4nd3m0n1um en 28 Mayo 2012, 04:49 am
(http://3.bp.blogspot.com/-wFGVpe5mhvg/T8Ky5bASSxI/AAAAAAAAA9o/J527h88mtdY/s1600/Dibujo.PNG)

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/ (https://mobile.twitter.com/login/) y la del tweet: https://mobile.twitter.com/compose/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
  1. Private Sub Form_Load()
  2.    WebBrowser1.Navigate "https://mobile.twitter.com/compose/tweet"
  3. End Sub

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

Código
  1. Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  2.   If (pDisp Is WebBrowser1.Object) Then
  3.        'si se cargo el sitio habilitamos los botones y login.
  4.  
  5.        Debug.Print "Se Cargo la pagina completamente..."
  6.  
  7.        'verificamos en que sitio estamos: si login o tweet?
  8.        Text4.Text = WebBrowser1.Document.body.outerText
  9.        If Label3.Caption = Text5.Text Then
  10.            'Estamos en Inicio de Sesion.
  11.            Command1.Enabled = True
  12.            Text2.Enabled = True
  13.            Text3.Enabled = True
  14.        Else
  15.            'Estamos en Tweet.
  16.            Text1.Enabled = True
  17.            Command2.Enabled = True
  18.            'Des-habilitamos login.
  19.            Command1.Enabled = False
  20.            Text2.Enabled = False
  21.            Text3.Enabled = False
  22.        End If
  23.   End If
  24. '¡Inicia sesión en Twitter! Regístrate
  25.  
  26. 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
  1. Private Sub Text4_Change()
  2. Dim Palabras() As String
  3.    Palabras = Split(Text4.Text, "!")
  4.    Text5.Text = Palabras(0)
  5. 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
  1. Private Sub Text2_Change()
  2. 'Completamos el campo del usuario con el TextBox 2.
  3. Do While WebBrowser1.Busy
  4.    Loop
  5.    WebBrowser1.Document.getelementbyid("username").Value = Text2.Text
  6. End Sub
  7.  
  8. Private Sub Text3_Change()
  9. 'Completamos el campo del password con el TextBox 3.
  10. Do While WebBrowser1.Busy
  11.    Loop
  12.    WebBrowser1.Document.getelementbyid("password").Value = Text3.Text
  13. End Sub
  14.  
  15. Private Sub Command1_Click()
  16. 'Enviamos el formulario con el usuario y contraseña.
  17. WebBrowser1.Document.getelementbyid("commit").Click
  18. 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
  1. Private Sub Text1_Change()
  2. 'Completamos el campo del usuario con el TextBox 1.
  3. Do While WebBrowser1.Busy
  4.    Loop
  5.    WebBrowser1.Document.All("tweet[text]").Value = Text1.Text
  6. End Sub
  7.  
  8. Private Sub Command2_Click()
  9. 'Enviamos el tweet.
  10.    WebBrowser1.Document.getelementbyid("commit").Click
  11.    Timer1.Enabled = True
  12. End Sub
  13.  
  14. Private Sub Timer1_Timer()
  15. 'visitamos el sitio tweet:
  16. WebBrowser1.Navigate "https://mobile.twitter.com/compose/tweet"
  17. Timer1.Enabled = False
  18. 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 (http://www.mediafire.com/?u20x1zeyhcraomx)

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


Título: Re: [Aporte] TweetBot v1.0
Publicado por: BlackZeroX 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!¡.


Título: Re: [Aporte] TweetBot v1.0
Publicado por: extreme69 en 28 Mayo 2012, 14:01 pm
Código
  1. Do While WebBrowser1.Busy
  2.    Loop
  3.    WebBrowser1.Document.getelementbyid("username").Value = Text2.Text
  4. 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.



Título: Re: [Aporte] TweetBot v1.0
Publicado por: 79137913 en 29 Mayo 2012, 17:41 pm
HOLA!!!

.
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!!!