Menu

Auto Downloader Script

ADS (2)
Trebor

Concepto de AutoDownloader

En AutoDownloader, el script sirve para automatizar el proceso de buscar el link dentro de la web, y el link del video dentro del servidor. En otras palabras, para crear un script antes tenemos que conocer la forma de obtener los links, o más bien, donde se encuentran esos links dentro del codigo fuente.

Por ejemplo, si vamos a una dirección web como AnimeFLV, y buscamos en recursos .mp4, encontramos un link de descarga del .mp4. Ese es el proceso que podemos automatizar con los scripts.

En los scripts para web, tenemos que buscar los links correspondientes a todos los servidores que acepte la web y añadirlos a la lista de links. Para ver esa lista en AutoDownloader podemos usar el comando "Tools". Para ver la ejecucion del script paso por paso podemos usar el comando "DebugMode = On". El programa detectara si los links estan rotos automaticamente, pero en algunos casos puede dar error de cache, es por eso que devemos especificar tambien como detectar que el link esta roto para que no se añada a la lista de servidores disponibles. Si existen links de servidores iguales el programa los considerara Partes de un mismo archivo y descargara las dos.

Introdución al Script ADS(AutoDownloader Script)

Para empezar a crear scripts antes tenemos que crear el archivo del script, tenemos que crear un archivo en formato de texto llano (.txt), lo creamos en la carpeta scripts de AutoDownloader. Tenemos una carpeta para los scripts que corresponden a webs, y otra para los que corresponden a servidores. Creamos nuestro script en la carpeta "web".

En el script separamos cada orden o comando con un salto de linea. Si Autodownloader detecta que hay un texto entre dos saltos de linea que no corresponde a un script lo saltara automaticamente. Sinembargo, para hacer comentarios es recomendable usar "//", de modo que un comentario quedaria así: "// Esto es un comentario".

Como en todos los scripts podemos declarar variables, sin en vargo en ADS tenemos declaradas 254 variables que tienen un numero de identificador y son todas de tipo String (texto), no hay variables de tipo integrer (numeros) más que las propias del programa. Para asignar un valor a una variable lo hacemos de la siguiente manera:

Var(1,Hola Mundo)
//1 es el identificador de la variable y Hola mundo es el valor.
Var(2, Trebor18)
//El valor de la variable 2 es " Trebor18"

Hay que tener en cuenta que entre la coma y el parentesis se considera un valor, un espacio delante la coma también.

Podemos informar del contenido de una variable en el Script Error Log, una de las ventanas que se abre con "Tools". Para ello usamos la orden "Info(1)". En este caso mostrariamos en el Error Script Log el contenido de la variable con el identificador 1. La mayoria de las ordenes sin en vargo trabajan sobre una variable llamada Font. Si queremos mostrar el contenido de font lo podemos hacer con "Info(Font)".

Podemos asignar valores antre variables con la orden Assign, "Assign(1,2)", para hacer que font tenga el valor de una variable lo podemos hacer con
"Font(2)". Para hacer que una variable tenga el valor de font lo podemos hacer con "Var(1,Font)". Y por ultimo podemos sumar variables con "APlus(1,2)".

Var(1,Hola Mundo)
Var(2, Trebor18)
Var(3, Scriot)
APlus(1,2)
// Var(1) = Hola Mundo Trebor18
Assign(1,3)
/
/ Var(1) = Scriot
Font(2)
// Font = Trebor18
Var(1,Font)
/
/ Var(1) = Trebor18

Recuerdo que ADS distingue entre mayusculas y minusculas, un comando Var(1,Font) escrito como var(1,font) no seria reconocido. Por una cuestion de programación las variables pueden contener cualquier caracter excepto (") y (,). Una variable Var(1,Hola "Mu,ndo") no seria reconocida. Es recomendable siempre no crear muchas variables, sino ir substituyeno las que ya se tienen, de este modo puedes retener mentalmente el valor de cada variable en cada punto.

Font y Pos

Ahora veamos algunos comandos de Font y de Pos y de como estos interactuan entre ellos. Dentro de font es donde realmente vamos a processar y obtener el link más que no en las variables. Por ejemplo podemos usar el comando DelS(/) para eliminar todas las "/" o el comando Replace(/,Hola) para convertir todas las / en Hola. Recuerdo que estas variables trabajan sobre el valor que contenga Font. Si se dan cuenta Relpace(/,) es equivalente a DelS(/), pero por comodidad es util que se use Replace para reemplazar y DelS para eliminar. Otra diferencia entre DelS y Replace es que DelS no distinge variables, por lo tanto no podemos hacer DelS(Var(1)), mientras que si podriamos hacer Replace(Var(1),).

Var(1,E&jem&pl&o_d&e_999hi898i&pt)
Font(1)
DelS(&)
Var(2,_)
Replace(Var(2), )
Replace(999hi898,scr)
/*/ Font = Ejemplo de script

Aparte de Eliminar y Remplazar tambien tenemos comandos para Buscar y eliminar. En este caso introduciomos la variable Pos de tipo Integer (numero). Con el comando pos podemos encontrar la posición de un texto dentro de Fuente. Y luego usando StDel o EnDel podemos eliminar desde el princpio hasta ese caracter o desde el final hasta ese caracter. Tambien temos el comando Plus, que nos permite sumar o restar posiciones a Pos.

Var(1,Voy a descargar un video)
Font(1)
Pos(video)
EnDel
// Font = Voy a descargar un
Pos(descargar)
Plus(-1)
StDel
/
/ Font = descargar un
Replace (d,D)
Var(1,Font)
Var(2,coche)
APlus(1,2)
/*/ Font = Descargar un coche

Este tipo de estroctura usando StDel i EnDel es util para procesar links, pues no podemos reemplazar texto que no conocemos. Pos empieza a buscar lo que le indiquemos desde el principio y guarda en Pos el numero de caracter de la primera coincidencia. Sen en vargo, en algunos casos es necesario empezar la busqueda desde el final, en ese caso usamos IPos()

Ordenes sin más.

Ahora vamos a ver un seguido de ordenes con funciones especificas. Por ejmplo, para obtener el codigo fuente de un link y guardarlo en Font. Para ello podemos usar dos comandos, el comando SeaveCode, o el comando Cache(10). Vamos a verlos en acción:

FontURL
// FontURL es el link que ha introducido el usuario en el programa. Con este comando >guardamos ese link en Font.
SeaveCode
/
/ En Font teniamos el link, ahora con SeaveCode guardamos el codigo fuente en Font.

FontURL
Cache(20)
/*/ Ponemos el programa en espera durante 20 segundos y luego extraemos el codigo fuente de la >dirección ya cargada. El comando cache resulta un poco inestable pero es necesario para >obtener codigo PHP o XML que no podrimos obtener con SeaveCode.

Una peculiaridad de los scripts para webs es que tienen que tener una estructura. Primero tienen que obtener el nombre del archivo que se guardara, ese nombre se saca de la url que introduce el usuario y una vez procesado se guarda con el comando Filename. Tambien si queremos poder usar el boton Descargar toda la serie tenemos que buscar el numero de capitulo. Una vez tengamos el numero del capitulo en Font le decimos al programa que eso es lo que tendra que aumentar cada vez que quiera que descargar el proximo capitulo. Para ello usamos Next. En este ejemplo extraemos el filename y el next de todoanimes.com:

FontURL = http://www.todoanimes.com/naruto-shippuden-blood-prison/1/

FontURL
Pos(.com/)
Plus(4)
StDel
Var(1,Font)
Pos(/)
StDel
DelS(/)
Var(2,Font)
Font(1)
DelS(/)
Filename
Font(2)
Next

Resultado:
Filename = naruto-shippuden-blood-prison1
Next = 1

Otro comando muy importante es Server?(), este comando nos sirve para añadir el link que esta en Font como link de un servidor y busca si el texto que tenemos entre parentesis corresponde a un script de servidores. Si es afirmativo añade el servidor como disponible. Por ejmplo:

Font = http://videobam.com/widget/cOCeG/custom/568

Server?(videobam.com)

En nuestro script muy probablemente tengamos un camando para añadir un servidor, pero que este no exista, entonces se devolveria 404 y no se realizaria la descarga. El comando Server? también se encarga de detectar los 404, pero en algunos casos puede que no los encuentre. Por ello es necesaria la introdución de otro comando, el 404Test(). Usando las herramiendas (comando en FontURL: Tools), o activando el DebugMode podemos averiguar que aspecto tiene Font en un 404 justo antes de que se ejecute el comando Server?. El comando 404Test busca si existe el texto entre parentesis en Font. Si no existe 404Test devuelve false, y se guarda el servdor en la lista. En caso de que exista intenta quitar los 5 caracteres que estan a continuación de ese texto, si no puede hacerlo devuelve True y el Servidor no se añade a la lista. En otras palabras el texto entre parentesis de Test404 tiene que corresponder a uno o varios de los 5 caracteres antes del fin de la cadena. Por ejemplo:

Font = "&void;"

Test404(id;)
Server(videoksea.com)

Resultado:
Error 404 detectado.

Font = "http://videoksea.com/video1/"

Test404(id;)
Server(videoksea.com)

Resultado:
Error 404 no detectado, el servidor de añade a la lista si existiese un script para videoksea.com

Finalmente tenemos que acavar todos los scripts de web con estas dos lineas:

ServerListEnd
End

El comando ServerListEnd indica que ya no hay más servidors a añadir y que podemos empezar con el script de servidores. El comando end en realidad no es un comando, se pone porque ADS no detecta el script que este en la ultima linea y es necesario una linea con un texto más, pero podemos poner lo que queramos, por ejemplo Autor: Trebor18

Por ultimo un comando que no hace falta ni explicarlo es el comando (solo para scripts de servidores): Download

  • Proximamente arreglo algunos desastres de AMS y creo algunos scripts más, por el momento disfrutad de AutoDownloader con las webs de anime de los scripts por defecto. Si habeis echo vuestro propio script y me lo quereis enviar que lo añada en versiónes futuras de AutoDownloader - BETA para MANCOS contactarme por correo en trebor18.r@gmail.com

  • Perdonad las faltas de ortografia, las correguire en proximas versiones :P

Nota de versión

ADS se actualiza con cada nueva versión, pequeños detallas que mejoran el resultado de AutoDown. Este manual es de la versión 0.2.0, sin embargo a partir de la versión 0.2.3 ADS permite que la orden Cache() se coloque en cualquier sitio y detecta los 404 no por Server? sino con los comandos siguientes:

  • 404Test() ::: Detecta un 404 si no puede eliminar los 5 caracteres siguientes al texto introducido.
  • 404CodeExist() ::: Si el texto existe en font detecta un 404.
  • 404CodeNotExist() ::: Si el texto existe en font marca que no hay 404.

Related

Wiki: Introducción a AutoDownloader

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.