Página 1 de 1
Adaptar BOT
Publicado: 12 Ene 2011, 13:27
por chrischurr
Hola Muchachos,
Primero que nada me presento, mi nombre es Christina y me pueden decir Chris ^^. Llego acá luego de buscar soluciones por la web y obviamente sin ninguna solución hasta ahora.
Necesito adaptar un bot que actualmente esta funcionando para que antes de cumplir su función realice un paso mas que seria en si marcar un casillero.
Bueno el BOT en cuestion es este:
http://www.mediafire.com/?frsvo9eukhnrdkw
Re: Adaptar BOT
Publicado: 12 Ene 2011, 18:47
por BasicOs
Gracias por compartir el enlace con el código fuente de ese programa en Autoit. Leo en el fichero.au3 que FOTOBOT es Codigo abierto con la licencia "Creative Commons Reconocimiento-NoComercial 2.5". de Manuel A. Villarroel Almonacid.
SEgún el reglamento de Fotolog
O sea que
no puedes usar ese programa para disparar SPAM a la página.
En cambio
si lo puedes usar en Fotolog siempre que no satures sus cuentas con mensajes no deseados, o sea solo como herramienta de automatización para tu uso personal sin interés comercial, tu uso de esa página para tener un interface que no sea el html o el del navegador, sino el de un programa más WIN32, o sea de windows, sin repetir lo que envies para varias cuentas.
Esta aclaración es porque hay que aclarar lo que es legal y que uso puedes hacer tranquilamente de esta herramienta.
En caso que desees modificar ese programa puedes hacerlo con varias funciones que existen en AUTOIT, como SEND() que envia teclas a cualquier programa, y entre ellos al navegador, o las que trabajan directamente con el navegador _IExxxx ejecutando funciones como chequear un checkbox, que es lo que parece que deseas añadir en este caso, etc..
Por ahora no tengo tiempo de revisar todo el código del FOTOLOG y hacer los cambios, pero
si lo deseas puedes hacerlo tu mismo, para conocer y aprender Autoit y podrás usarlo para automatizar tus tareas diarias de trabajo y hacerte un uso del ordenador
más agradable, agil y automático, evitando tareas repetitivas y rutinarias, en que ahorres tu tiempo al haberlas automatizado antes.
Salu22:)
PD:
Otros enlaces del foro con automatización y cambio de acceso a las páginas web. En el ves que donde no tienes acceso permitido automatico del
BOT, te piden CAPTCHA normalmente,
http://www.emesn.com/autoitforum/search ... ds=captcha
Si lo deseas puedes colocar en la información de USUARIO en tu página de usuario de nuestro foro, tu página directa de fotolog.com , en caso de que quieras presentarte en el foro??

Re: Adaptar BOT
Publicado: 12 Ene 2011, 23:48
por chrischurr
Exacto, lo que quiero es hacer que el programa marque la casilla y la función entonces como sería?. Nosé si pudiste ver el .rar que subí pero en el hay un archivo Fotobot.source y en el se detalla todo el proceso para comentar y en si todo lo que hace el programa y dentro del mismo hay puntos "include" que hacen un llamado a otros archivos que se encuentran dentro de la carpeta sources.
La función esta que me decis vos la tendría que colocar en el archivo fotobot.source correcto?. Jaja, con un poquito de ayuda lo voy a hacer porque sola se me complica un poco, entiendo algo pero no mucho y sola me revienta la cabezita jaja
Muchas gracias Sr. Admin

Re: Adaptar BOT
Publicado: 13 Ene 2011, 06:09
por Chefito
Primeramente bienvenida. Espero que te guste AutoIt y te quedes con nosotros

.
chrischurr escribió:Exacto, lo que quiero es hacer que el programa marque la casilla y la función entonces como sería?
Seguramente la función que necesites sea _IEFormElementCheckBoxSelect. Mirala en la ayuda. Necesitaras algún dato como el texto, nombre o id del checkbox.
Respecto a donde colocarlo es más dificil. Aunque el código no es muy complicado, es bastante largo. Y encima yo no tengo cuenta en fotolog para probarlo y ver como funciona......ni quiero tenerla

.
Pienso que lo más correcto y facil sería que te pusieses en contacto con su creador y se lo comentases a él.
Saludos.
Re: Adaptar BOT
Publicado: 13 Ene 2011, 07:33
por chrischurr
Ui que bueno ya tengo la función :D
Yo te puedo prestar una cuenta para probar Chefi, te la mando por privado :) No entendi lo del ID del checkbox, como lo puedo conseguir?.
Si me ayudas te regalo algo (?) jaja
Mil gracias a los dos chicos!
PD: El que escribió el código del programa esta desaparecido de la red u.u no lo puedo ubicar por ningún lado, la web que tenia le venció el dominio y no lo renovó u.u

Re: Adaptar BOT
Publicado: 14 Ene 2011, 04:48
por Chefito
chrischurr escribió:PD: El que escribió el código del programa esta desaparecido de la red u.u no lo puedo ubicar por ningún lado, la web que tenia le venció el dominio y no lo renovó u.u
Este no es su foro?:
http://gshop.forosphpbb.org/forum
Mirar esto es un follón. Lo siento pero no me entran ganas ninguna

. El programa principal llama a un montón de includes propios y me lío.
Puede que si tuviese el código html de esa página donde está ese checkbox se pueda hacer algo.
Saludos.
Re: Adaptar BOT
Publicado: 14 Ene 2011, 17:37
por Alastor
Me he pegado un rato hasta llegar a la parte donde se postean los comentarios...
\Source\post.au3
A partir de la linea 212
Código: Seleccionar todo
_FileWriteLog($DEBUG_LOG_FILE, @ScriptLineNumber & " -> " & "Inyectando header javascript.")
_IEHeadInsertEventScript($iE, "document", "onclick", _
"$('#guestbookMessage').val('" & $comment & "');" & _
"eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(" & _
"/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=funct" & _
"ion(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'" & _
"\\b','g'),k[c]);return p}('$(\'.1\').2(3(){4($(0).5()==\'6 7 8\'){$(0).9();a}}" & _
");',11,11,'this|btSubmit|each|function|if|text|Deja|tu|comentario|submit|return'." & _
"split('|'),0,{}))")
_IEAction ( $oBody, "click" )
Sleep(1000)
_IELoadWait($iE)
Habria que activar la checkbox justo antes del _IEAction ( $oBody, "click" )
No voy a decir como porque no tengo cuenta en la página para probar y ademas nunca me he llevado muy bien con _IE
Re: Adaptar BOT
Publicado: 14 Ene 2011, 18:18
por chrischurr
Chefito escribió:chrischurr escribió:PD: El que escribió el código del programa esta desaparecido de la red u.u no lo puedo ubicar por ningún lado, la web que tenia le venció el dominio y no lo renovó u.u
Este no es su foro?:
http://gshop.forosphpbb.org/forum
Mirar esto es un follón. Lo siento pero no me entran ganas ninguna

. El programa principal llama a un montón de includes propios y me lío.
Puede que si tuviese el código html de esa página donde está ese checkbox se pueda hacer algo.
Saludos.
Sisi ese es su foro pero si miras dentro esta muerto, y la verdad es que en esa comunidad son todos mentirosos, prometieron el Fotobot 4.0 hace muchisimos tiempo y aun nada igual a mi no me molesta, yo no lo uso pero me propuse modificar esto porque hace tiempo si lo usaba y dije si tan solo pudiese firmar en privado esto iria mucho mejor pues por eso que vengo aca, que por cierto, son el UNICO lugar donde me dieron importancia
Estuve revisando en ayuda y encontré la función para marcar la casilla, si no me equivoco es esta:
Código: Seleccionar todo
#include <IE.au3>
_IEFormElementCheckBoxSelect ( ByRef $o_object, $s_string [, $s_name = "" [, $f_select = 1 [, $s_mode = "byValue" [, $f_fireEvent = 1]]]] )
Luego busqué en el código fuente de fotolog.com, que en realidad a exepción de la pagina principal el resto de las paginas de usuarios son todas iguales por ende da lo mismo buscar en una que en otra, mas facil je. Encontre esto en el código fuente:
Código: Seleccionar todo
<input type="checkbox" name="isPrivate" id="isPrivate" value="true" tabindex="2"> <label for="isPrivate">Comentario privado</label> <a href="http://www.fotolog.com/a/info/faq?q=93#guestbooks">[?]</a>
Por ende la id del "checkbox" es, si no me equivoco y si lo hago diganme porfis, "isPrivate".
Por ende, para hacer que el BOT comente en privado tendria que agregar la siguiente linea de código:
#include <IE.au3>
_IEFormElementCheckBoxSelect ( ByRef $o_object, $s_string [, $s_name = "isPrivate" [, $f_select = 1 [, $s_mode = "byValue" [, $f_fireEvent = 1]]]] )
Justo arriba de:
Como me dijo Alastor
Corrijanme si me equivoque en algun paso por favor, faltan pocos pasos y objetivo cumplido

jeje.
PD: Les dejo una cuenta en Fotolog.com por si acaso lo quieren probar,
Usuario: testing_abc123
Contraseña: rocker334
Saludos y mil gracias a todos!

Re: Adaptar BOT
Publicado: 14 Ene 2011, 18:38
por chrischurr
:S
Estube probando y obtuve el siguiente error, saben de que se trata?.

Re: Adaptar BOT
Publicado: 14 Ene 2011, 18:47
por Chefito
Necesitaría el código de la página, no solo el código del objeto checkbox. A la función que te dije se le tiene que pasar como primer argumento un objeto form de la página web. Supongo que ese checkbox esté dentro de un form (formulario). Mira a ver si está entre dos etiquetas parecidas a estas: <form ..............> ................ </form> .
Si está dentro de esas dos etiquetas, pertenece a un form y se puede hacer con la función que te dije. Necesitaría el código de la primera etiqueta del form (<form .................>). Para ser exactos, necesitas el valor de la propiedad name de ese form para poder utilizarlo con la función _IEFormGetObjByName. Esta función te devolverá una instancia del objeto form, la cual le tienes que pasar como primer parámetro a la función _IEFormElementCheckBoxSelect. Si miras el ejemplo de la última función lo verás más claro.
Es que no puedo acceder (o no se) a la página donde está ese checkbox. No se si es porque no se, porque no tiene amigos la cuenta que nos has dado, porque no tiene fotos, o que se yo.
Si está entre un form y no tiene la propiedad name se puede hacer con la función _IEFormGetCollection, que te devuelve una instancia del objeto form que tu le indiques con un índice, entre todos los que haya en la página.
Y si no está en un form, tranquila, hay otra solución

. Casi siempre hay solución. Y sería tratar con el objeto y sus propiedades directamente. Si llegamos a este caso, ya te diré lo que tendrías que poner.
Saludos.
Re: Adaptar BOT
Publicado: 14 Ene 2011, 20:10
por chrischurr
:O que buena explicación jaja.
Mira busque en el código fuente y encontré esto:
Código: Seleccionar todo
<script type="text/javascript">commentMax = 1500;</script>
<form id="gbForm" action="/gb.post" method="post" class="gbForm">
<input type="hidden" name="t" value="pwsa3DYodWCeCEBYbHmJCWGR73fYZCrVdOARnAoOdGVzdGluZ19hYmMxMjMQ773PHxjY08it2CU">
<input type="hidden" name="giftValue" id="giftValue">
<input type="hidden" name="giftPrice" id="giftPrice">
<div class="cfx">
<div class="gbMessage cfx">
<div id="caption_limit" class="caption_limit"><var>1500</var> caracteres restantes</div>
<ul class="formatting cfx">
<li><a href="#" id="bold" class="bold">B</a></li>
<li><a href="javascript:void(0);" id="italic" class="italic">I</a></li>
<li id="giftsButton"><a href="javascript:void(0);"> </a></li>
</ul>
<div id="gbMessageContainer" class="cfx gbMessageContainer">
<div id="giftPreviewContainer">
<div id="giftPreview"></div>
<span id="giftPricePreview" class="f"></span><br>
<a href="javascript:void(0);" class="cancel">cancelar el regalo</a>
</div>
<textarea name="message" id="guestbookMessage" class="guestbookMessage" tabindex="1"></textarea>
</div>
</div>
</div>
<div class="buttons cfx">
<div style="float: right;">
<span><img class="btWing transp" src="http://si.fotolog.com/i101/buttons/buttonL.png" alt=""><button type="submit" class="btSubmit" id="btPreview" tabindex="3">Vista previa</button><img class="btWing transp" src="http://si.fotolog.com/i101/buttons/buttonR.png" alt="">
</span>
<span><img class="btWing transp" src="http://si.fotolog.com/i101/buttons/buttonL.png" alt=""><button type="submit" class="btSubmit" id="gbSubmit" tabindex="4"><strong class='btText'>Deja tu comentario</strong></button><img class="btWing transp" src="http://si.fotolog.com/i101/buttons/buttonR.png" alt="">
<img src="http://si.fotolog.com/i101/images/icon_ajax_3boxes.gif" width="43" height="11" alt="" id="gbAjaxIndicator" class="gbAjaxIndicator"></span>
</div>
<input type="checkbox" name="isPrivate" id="isPrivate" value="true" tabindex="2"> <label for="isPrivate">Comentario privado</label> <a href="http://www.fotolog.com/a/info/faq?q=93#guestbooks">[?]</a>
</div>
</form>
Te explico como ver el código asi lo ves por tu cuenta y no por mi que soy muy cuadrada jaja:
Ingresas a:
http://account.fotolog.com/login
Logueas con los datos que te pasé, luego vas a cualquier página de Fotolog, puede ser esa misma cuenta que te pase y recién ahi te aparece el cuadro de texto donde comentar y abajo tenes el checkbox para poner el comentario en privado.
Con Firefox, en esa cuenta puse Click derecho-->Ver código fuente y te copie todo en un .txt para que puedas ver el código fuente de tooda la página
http://hotfile.com/dl/96773593/b125c05/CF.txt.html

Re: Adaptar BOT
Publicado: 15 Ene 2011, 18:11
por Chefito
Para señalar ese checkbox debes poner este código en el lugar adecuado, justo después de que carge la página donde encriba y mande ese comentario, y justo antes de que lo envíe.
Código: Seleccionar todo
$oForm=_IEFormGetObjByName($oIE,"gbForm")
_IEFormElementCheckBoxSelect($oForm,"true")
Saludos.
Re: Adaptar BOT
Publicado: 15 Ene 2011, 22:42
por chrischurr
Oh que bien, entonces pongo eso donde dijo Alastor?
Alastor escribió:Me he pegado un rato hasta llegar a la parte donde se postean los comentarios...
\Source\post.au3
A partir de la linea 212
Código: Seleccionar todo
_FileWriteLog($DEBUG_LOG_FILE, @ScriptLineNumber & " -> " & "Inyectando header javascript.")
_IEHeadInsertEventScript($iE, "document", "onclick", _
"$('#guestbookMessage').val('" & $comment & "');" & _
"eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(" & _
"/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=funct" & _
"ion(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'" & _
"\\b','g'),k[c]);return p}('$(\'.1\').2(3(){4($(0).5()==\'6 7 8\'){$(0).9();a}}" & _
");',11,11,'this|btSubmit|each|function|if|text|Deja|tu|comentario|submit|return'." & _
"split('|'),0,{}))")
_IEAction ( $oBody, "click" )
Sleep(1000)
_IELoadWait($iE)
Habria que activar la checkbox justo antes del _IEAction ( $oBody, "click" )
No voy a decir como porque no tengo cuenta en la página para probar y ademas nunca me he llevado muy bien con _IE
Re: Adaptar BOT
Publicado: 15 Ene 2011, 22:51
por chrischurr
El error que obtengo es "Variable used without beeing declared".

Siento que estoy molestando mucho jeje, perdonen chicos

Re: Adaptar BOT
Publicado: 16 Ene 2011, 01:04
por BasicOs
Hay un nombre de una variable que no tiene valor previo, puede que te equivoques en el nombre al escribirla, o bien que simplemente cuando el programa la usa no existe, por ejemplo:
quiero sumar uno a $mivariable:
$mivariable=5
$suma=$mivariab+1
daría ese tipo de error porque $mivariab no existe ni el programa sabe que es,
SAlu22:)
Re: Adaptar BOT
Publicado: 16 Ene 2011, 04:56
por Chefito
Lo que te puse era un ejemplo general. No te lo adapté exactamente al código. Prueba esto a ver si va:
Código: Seleccionar todo
Local $oForm
$oForm=_IEFormGetObjByName($IE,"gbForm")
_IEFormElementCheckBoxSelect($oForm,"true")
Por favor, analiza un poco el código con ayuda de la ayuda de AutoIt. No copies y peges simplemente.
Lo que hacen esas dos líneas es asignar una instancia del form que contiene ese checkbox a la variable $oForm (con propiedad id="gbForm"), y la otra señala el checkbox de ese formulario el cual tiene la propiedad value="true".
Saludos.
Re: Adaptar BOT
Publicado: 16 Ene 2011, 11:02
por chrischurr
Como agradecerles?, les envio alfajores argentinos? jajaja.
Ya funcionó :D
MIL gracias chicos!
