Página 1 de 2

hdfull fix aadecode

Publicado: 15 Feb 2017, 00:49
por robalo
En el Hilo de HDFULL
viewtopic.php?f=22&t=8725

Re: hdfull fix aadecode

Publicado: 15 Feb 2017, 01:40
por Cmos
Te me has adelantado al final :D Había dejado escrito el hilo para publicarlo y cuando vuelvo ya has posteado la solución xD Veo que controlas si el .js usa la nueva codificación o la anterior, yo no tenía muchas ganas de complicarme hoy :lol:

Re: hdfull fix aadecode

Publicado: 15 Feb 2017, 07:30
por robalo
Ha sido bajo presión :) Al ver el proviiders en aadecode lo primero que hice fue ponerle el try/except pero se quedo solo en eso :)

Me estaba dando problemas el eval y como no paraban de castigarme metí el exec, de ahí que sólo posteara la parte fix por si tardabas. La línea del exec es una bomba tal como está.

Tenía pensado borrar el code code del post a lo más tardar a las 8 de la mañana de hoy y dejar sólo la parte del aadecode o enlazar a lo que con toda seguridad, postearas.

Lo dicho, me cepillo el code para la sesión nocturna y enlazo :)

Re: hdfull fix aadecode

Publicado: 15 Feb 2017, 18:08
por Cmos
Si es que ayer, en san valentín, no era plan de calentarse la cabeza tanto, no me extraña que estuvieras bajo presión :mrgreen:

Pues al final hoy lo han vuelto a cambiar, a ver cuando se cansan xD

Re: hdfull fix aadecode

Publicado: 16 Feb 2017, 00:02
por robalo
:) nos fuerzan a usar los dos casos, a ver que será lo siguiente. No hay dos sin tres o eso dicen

Re: hdfull fix aadecode

Publicado: 16 Feb 2017, 14:40
por tormund
He pasado este algoritmo a Java y al decodificar el texto me tardaba bastante (unos 13 segundos), así que he hecho un apaño para optimizarlo y he conseguido reducirlo a un par de segundos. Lo que me ralentizaba tanto son los continuos "eval" que se realizan hasta encontrar uno válido que obtenga un entero. No sé si en python ocurre lo mismo o es problema de la librería que uso para evaluar javascript pero por si os sirve de algo os comento la solución que he llevado a cabo:

He creado dos contadores, uno contabiliza el número de paréntesis abiertos y otro los cerrados, de forma que sólo evalúo la cadena que se va almacenando en la variable "c" cuando estos dos contadores tienen el mismo valor y éste es mayor de 0. De esta forma, en lugar de hacer 200 evaluaciones sólo realizo 4. Es una solución un tanto rudimentaria pero a mi me ha valido.

Aún no me ha dado tiempo a probarlo a fondo pero por ahora en todas las pruebas que he hecho he conseguido obtener la URL del vídeo (lo he probado para obtener los enlaces de OpenLoad).

Lo dicho, si os puede servir decídmelo y os paso el código.

Saludos.

Re: hdfull fix aadecode

Publicado: 17 Feb 2017, 00:10
por Cmos
Gracias tormund por el ofrecimiento, pero creo que en python no hay ese problema, vamos, al menos a mí me desde que termina de descargar las páginas hasta que muestra el listado me tarda uno o dos segundos (dependiendo del número de enlaces), así que veo complicado aligerar mucho eso xD

No sé por qué tienes que utilizar en java tantas veces el eval, en python solo se hace una vez por cada enlace, y aunque se podría reducir almacenando el resultado del eval por cada servidor para que luego si se repite no volver a hacerlo, la ganancia sería mínima...

Re: hdfull fix aadecode

Publicado: 17 Feb 2017, 17:37
por tormund
Quizá yo lo he interpretado mal el algoritmo (no estoy muy puesto en python) pero creo que se hace un eval cada vez que se entra en el segundo "for", al menos así lo he implementado. Por cada vez que se entra en este segundo "for" se intenta un "eval" y, por lo que dices, la librería que uso se toma su tiempo en evaluar.

Saludos.

Re: hdfull fix aadecode

Publicado: 18 Feb 2017, 01:06
por robalo
@tormund si está hablando del aadecode el que mejor me funciona es
aadecode.java

Código: Seleccionar todo

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class aaDecode {
	
	String decode;

	aaDecode(String encode) {

		String patron = "";
		Matcher  matches;
		String res = "";

		ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");

		encode = encode.replaceAll("\\s+", "");
		encode = encode.replaceAll("';.゚Д゚..'_'.", "'; res = ");
		encode = encode.replaceAll(".'_'.;$", ";");

		try {
			engine.eval(encode);
				res = (String) engine.get("res");
			if (new String(res).contains("toString")){
				patron = "=\\((.*)\\);";
				matches = Pattern.compile(patron).matcher(res);
				while (matches.find())
					res = (String) matches.group(1);

				engine.eval("res =" + res + ";");
				res = (String) engine.get("res");
			}
		} catch (ScriptException e) {
			e.printStackTrace();
		}
		System.out.println("res: " + res);
		decode = res;
	}
}

Re: hdfull fix aadecode

Publicado: 19 Feb 2017, 11:08
por tormund
He probado tu código pero me da error al realizar el "eval". Definitivamente la librería que uso no es todo lo buena que debiera, pero bueno, con el apaño que he hecho me vale.

Gracias.

Saludos.