Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ELVJop en 25 Abril 2012, 17:02 pm



Título: Actualizaciones batch
Publicado por: ELVJop en 25 Abril 2012, 17:02 pm
Estoy haciendo un programa de muchos programas (Como ya sabreis si habeis entrado en alguno de mis muchos post) y claro mi programa tiene actualizaciones constantes he echo un setup para su correcta instalación y desisntalación. (Contiene varios archivos) y claro tener que darles un link de descarga o pasarselo por pendrive es un aburrimiento. Por eso pregunto. Supongamso que yo tengo un blogspot y que puedo subir alli perfectamente las actualizaciones constantes. Existe algun metodo para conectarme y descargar las actualizaciones sin necesidad de abrir el navegador?

PD: Para explicar mejor: Entre las opciones una que diga: Buscar actualizaciones y cuando se metan contactara con mi blogspot y entonces dependiendo de la version que diga: Hay una nueva version desea descargarla ahora? Si- No y si le da a si que empieze la descarga vaya al lugar donde esta instalado y remplaze los archivos

PD2: Me da igual si es un comando externo.


Título: Re: Actualizaciones batch
Publicado por: Eleкtro en 25 Abril 2012, 17:45 pm
[Batch] [Mini-Aporte] MAME Panel (Una tool para el emulador MAME) (http://foro.elhacker.net/scripting/batch_miniaporte_mame_panel_una_tool_para_el_emulador_mame-t358688.0.html)
Puedes estudiar la opción para descargar la base de trucos. Aunque no hago nada para verificar si es una versión nueva del archivo, simplemente lo descarga y lo descomprime.



Requisitos:
1º - WGET.
2º - Seguir un nombre que identifique la versión de tu programa. (Ejemplo MiProgramaXXX.exe Donde XXX es lo único que irás cambiando, La versión.)

Pasos:
1º - Descargar el body de la url.
2º - Filtrarlo con un FOR.
3º - Descargar el archivo.


Código
  1. @Echo off
  2.  
  3. Set "Url=http://cheat.retrogames.com/"
  4. Set "UrlFile=cheat....zip"
  5. Set "TempFile=%TEMP%\temp.html"
  6.  
  7. WGET -q "%URL%" -O "%TempFile%"
  8.  
  9. For /F "Tokens=*" %%a in ('Type "%TempFile%" ^| Findstr "%URLFILE%"') DO (Echo %%a)
  10. :: Eso muestra la linea (SIN FILTRAR) que contiene el enlace directo al archivo (O eso debería).
  11. :: Como no dijiste ni que url es, ni el nombre del archivo, Tengo datos insuficientes, el resto te toca hacerlo a tí.
  12. :: Dáme más datos y hago las comprobaciones que faltan.
  13.  
  14. REM Para descargar el archivo:
  15. :: WGET "Enlace al archivo.exe"
  16.  

Salu2



Título: Re: Actualizaciones batch
Publicado por: ELVJop en 25 Abril 2012, 23:01 pm
PEro si tengo todo un bloc (una pagina) Con el link de descarga del archivo subido a google docs como lo podria hacer? Porque siempre que lo subo a mediafire o Google docs siempre me da un link distinto y eso es un problema


Título: Re: Actualizaciones batch
Publicado por: Eleкtro en 25 Abril 2012, 23:10 pm
PEro si tengo todo un bloc (una pagina) Con el link de descarga del archivo subido a google docs como lo podria hacer? Porque siempre que lo subo a mediafire o Google docs siempre me da un link distinto y eso es un problema

Lo he explicado y creo haber sido claro, El link no importa donde lo subas, Usa la página de tú Blog en el code, Ahi aparecerá el link que subiste a GDocs o MF...

Si no dices la página yo no puedo hacer nada más por ayudar.

PD: Y recuerda lo de usar un nombre que se pueda identificar cada vez que lo subas.
        Si uno se llama "mi programa v1.0.exe" y luego lo subes con el nombre "nuevo programa.exe" no se puede hacer una comparación.

Salu2


Título: Re: Actualizaciones batch
Publicado por: ELVJop en 26 Abril 2012, 18:47 pm
Vale yal o entendi pero necesitaria una ayudita con los FOR ya sabes que no son mi fuerte. Supongamos Que esta es la URL real del archivo
Código:
http://doc-04-24-docs.googleusercontent.com/docs/securesc/2lk8q97dj97tkt4og77fj6faepvp9v76/6gb50r91168c5nvuuncsk093cal8dg19/1335384000000/00252332886727426968/00252332886727426968/0B1K7YRbJ40aiakZHcHZqVDFMMlk?e=download&nonce=4r2ig7rjt1f3q&user=00252332886727426968&hash=olhbh4614dmmglh1m1l1gcg8ksvf4f2r
Como lo tendria que hacer?


Título: Re: Actualizaciones batch
Publicado por: Eleкtro en 26 Abril 2012, 18:56 pm
Código:
http://doc-04-24-docs.googleusercontent.com/docs/securesc/2lk8q97dj97tkt4og77fj6faepvp9v76/6gb50r91168c5nvuuncsk093cal8dg19/1335384000000/00252332886727426968/00252332886727426968/0B1K7YRbJ40aiakZHcHZqVDFMMlk?e=download&nonce=4r2ig7rjt1f3q&user=00252332886727426968&hash=olhbh4614dmmglh1m1l1gcg8ksvf4f2r
Como lo tendria que hacer?

ELVJop, Con eso no se puede xD, Y tampoco sirve con mediafire, Que usa Flash...
Necesito la url de tu blog (Si quieres.)... y que en el blog aparezca un enlace que tenga un nombre que se pueda identificar tipo "www.mediafire.com\miprograma111.exe" o como lo hagas.

De verdad, Pienso que estoy siendo muy claro...

Salu2


Título: Re: Actualizaciones batch
Publicado por: ELVJop en 26 Abril 2012, 19:45 pm
No no ya no quiero identificar versiones. Pero eso que tu haces yo no lo puedo hacer nunca he visto ningun enlace como ese. Por mucho que estudio tu code no logro entenderlo. Ahora te pondre un ejemplo de blog beo como lo haces y lo aplico al mio.
Ejemplo: http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html


Título: Re: Actualizaciones batch
Publicado por: Eleкtro en 26 Abril 2012, 21:06 pm
Ejemplo: http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html

Como quieras, Debido a mi insistencia y tú falta de cooperación advierto que no haré el trabajo 2 veces ni seguiré este tema a menos que decidas proporcionar los datos suficientes que se te pidieron para investigar. Ya que este code de aqui abajo es solo un ejemplo, Porque la página no contiene nada para identificar o comparar.

Código
  1. @Echo OFF
  2.  
  3. :: Página.
  4. Set "Url=http://el-contemplador.blogspot.com.es/2012/03/nueva-aventura-para-la-marca-del-este.html"
  5. :: Versión inicial.
  6. Set "Version=El Link"
  7. :: Archivo temporal para guardar el html de WGET.
  8. Set "TempFile=%TEMP%\temp.html"
  9. :: Archivo donde se guardará la última versión comprobada por el Bat.
  10. Set "LastVersion=%WINDIR%\Last_Version.txt"
  11.  
  12. REM Donde pone "El Link" debería poner "El Link XXX" por ejemplo "El Link 1.0" y cuando actualizases a una nueva versión lo cambiarías por: "El Link 1.1"
  13. REM Manteniendo el orden de incrementación en los números para hacer una comprobación (Distinguir la version nueva de la antigua). Sino no existe nada para comparar...
  14. REM Puedes hacer la comprobación con una palabra o con el propio archivo hospedado. (Como en el code del ejemplo de MAME Panel).
  15.  
  16. :: Si no existe el archivo, Crea el archivo con el nombre de la versión inicial.
  17. If NOT Exist "%LastVersion%" (Echo %VERSION%>"%LastVersion%")
  18.  
  19. :: Obtiene la última versión comprobada por el bat.
  20. For /F "Tokens=*" %%# in ('Type "%LastVersion%"') Do (Set "Version=%%#")
  21.  
  22. :: Descarga la página que contiene la url de descarga directa al archivo.
  23. WGET -q "%URL%" -O "%TempFile%"
  24.  
  25. :: Obtiene la linea donde se encuentra el enlace directo al archivo que se quiere descargar. Y lo filtra para poder setearlo.
  26. FOR /f tokens^=1-4^ delims^=:^" %%a in ('Type "%TempFile%" ^| find "%Version%"') Do (
  27. REM " Esta linea puedes borrarla.
  28.  
  29. :: Si la versión es igual que la de la última comprobación, Sale del bat.
  30. If "%%a" EQU "%Version%" (
  31. Echo: Usted tiene la ultima version.
  32. )
  33.  
  34. :: Si la versión es mayor que la de la última comprobación, Descarga el archivo en el escritorio.
  35. :: Guarda el nombre de la versión comprobada. Y sale del Bat.
  36. If "%%a" GTR "%Version%" (
  37. Echo: Descargando la nueva versión...
  38. WGET -U "Mozilla/5.0" %%c:%%d -O "%USERPROFILE%\Desktop\%%a"
  39. Echo %VERSION%>"%LastVersion%"
  40. )
  41.  
  42. REM Ejemplo para mostrar el contenido de las variables seteadas:
  43. REM Echo Ultima version comprobada: %Version%
  44. REM Echo Versión encontrada: %%a
  45. REM Echo Url al archivo directo: %%c:%%d
  46.  
  47. )

PD: No se si con GDocs te servirá... Con un link de mediafire ni lo intentes. WGET tiene que dirigirse al link directo que contiene el archivo (Como en el ejemplo del code de MAME PANEL), No a una pagina que tenga recaptcha o algo parecido. WGET no es Jdownloader...

Puedes subir los archivos a un FTP público o en tu propio FTP y así no habría problemas al intentar descargar el enlace.

Salu2.


Título: Re: Actualizaciones batch
Publicado por: ELVJop en 5 Mayo 2012, 16:14 pm
Okay consegui lo que queria actualizaciones y por versiones en un dominio que no se borra. Ahora viene lo dificil.
Tengo este code:
Código:
@echo off
PING 72.14.204.147 | FIND "TTL=" > NUL
IF %ERRORLEVEL%==1 (echo Conectese a internet para descargar las actualizaciones) else (echo Tiene conexion a internet)
pause
exit
Que me dice si tengo conexion a internet la question es que si meto a descargar las actualizaciones y no se descarga nada aparte del html es que no hay actualizaciones pero si las hay las descarga. Mi pregunta es existe poder hacer para comprobar si una web existe?
Me serviria porque si la actualizacion es pesada descargaria sin decir nada y el que esta en la pantalla no sabria si esta comprovando o descargando


Título: Re: Actualizaciones batch
Publicado por: Eleкtro en 5 Mayo 2012, 16:20 pm
Mi pregunta es existe poder hacer para comprobar si una web existe?

Si ping no encuentra una página, Manda un código de error 1

Código
  1. @Echo off
  2. ping www.esta_web_no_existe.com
  3. Echo %Errorleverl%
  4. REM Es 1

Saludos.


Título: Re: Actualizaciones batch
Publicado por: Slava_TZD en 5 Mayo 2012, 17:48 pm
Llego tarde, ya estás intentado hacerlo de otra forma, pero si aun sigues interesado en descargar ficheros desde Mediafire te dejo un ejemplo en de lo que tendrías que hacer usando solo wget y grep.

Código:
[kyperf@Hagher ~]$ wget http://www.mediafire.com/?q1cb736gqd7bywq
--2012-05-05 17:46:01--  http://www.mediafire.com/?q1cb736gqd7bywq
Resolviendo www.mediafire.com... 205.196.120.8, 205.196.120.6
Connecting to www.mediafire.com|205.196.120.8|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: no especificado [text/html]
Saving to: `index.html?q1cb736gqd7bywq'

    [  <=>                                                                                                      ] 62.257       120K/s   in 0,5s    

2012-05-05 17:46:02 (120 KB/s) - `index.html?q1cb736gqd7bywq' saved [62257]

[kyperf@Hagher ~]$ grep -o "http://[^[:space:]]*.rar" index.html\?q1cb736gqd7bywq > enlace
[kyperf@Hagher ~]$ wget -i enlace
--2012-05-05 17:47:38--  http://205.196.122.24/1a4jre1djehg/q1cb736gqd7bywq/solobajalo.blogspot.com.elpy%40nyzt.part1.rar
Connecting to 205.196.122.24:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 100431872 (96M) [application/x-rar-compressed]
Saving to: `solobajalo.blogspot.com.elpy@nyzt.part1.rar'

 2% [=>                                                                                                         ] 2.096.020    503K/s  eta 3m 51s  ^

Suerte con lo que sea que estés intentado.