Gusto en saludarles comunidad de indetectables.net,
por la presente es para solicitarles apoyo para dilucidar un conflicto que tengo con el código que les mostraré a continuación, pero ante todo
seré honesto con ustedes y les proporcionaré el mayor contexto posible.

Este código es un auto activador de una app llamada KrakenTV, esta app proporciona TV Premium de forma gratuita y sin publicidad intrusiva dentro de los canales,
Películas, etc. El único inconveniente es que hay que activarla 2 veces al día, entiendo perfectamente que esta excelente app sobrevive con publicidad,
pero me resulta molesto que en medio de una película se me interrumpa la programación porque hay que activar.
 
[DETALLES]
- Al activar la app se activa para todos los equipos conectados a la misma IP pública, como consecuencia al cambiar la IP
se debe volver a activar, (Es un auténtico problema si usas datos móviles en lugar de wi-fi)
- La página tiene la capacidad de validar si existe algún AdBloker para denegar el acceso a la misma.
- La app se activa desde la siguiente página: [Enlace externo eliminado para invitados]
la cual en el código interno del Botón está el siguiente código HTML:
Imagen
- Por lo cual con un simple código js se puede activar y para generar un auto activador, pues con NodeJS se automatizaría sin necesidad de tener extensos conocimientos informáticos nivel Dios
entonces se implementa este código:

Código: Seleccionar todo

const stream = fs.createWriteStream('1- logs.txt', { flags:'a' }); const ua = 'Mozilla/5.0 (Linux; Android 10; SM-G960U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36'; const simpleLog = (message) => { const fecha = new Date().toLocaleString('en-US').replace(/,/, ''); stream.write(`[${fecha}]: ${message}\n`); } const main = async() => { try { let res = await axios({ method: 'get', url: 'https://www.listasiptvactualizadas.com/activar-kraken-tv/', headers: { 'User-Agent': ua, "Referer": "https://www.listasiptvactualizadas.com/activar-kraken-tv/", "Origin": "https://www.listasiptvactualizadas.com" } }); setTimeout(main, 1000*10*1); let html = res.data; let $ = cheerio.load(html); const msgActivaste = $('#activarspliktv').first().text().length > 0 ? $('#activarspliktv').first().text() : null; const msgHora = $('.info').first().text().length > 0 ? $('.info').first().text() : null; if (!(msgActivaste || msgHora)) { const id = html.substring(html.indexOf(".setAttribute('name', '")+".setAttribute('name', '".length, html.indexOf("');")); console.log(`ID es: ${id}, activando...`); simpleLog(`ID es: ${id}, activando...`); const data = new url.URLSearchParams({ method_name: 'activate', token: 'token', [id]: 'Pulsa aquí para activar ' }); res = await axios({ method: 'post', url: 'https://www.listasiptvactualizadas.com/activar-kraken-tv/', data: data.toString(), headers: { "Content-Type": "application/x-www-form-urlencoded", 'User-Agent': ua, "Referer": "https://www.listasiptvactualizadas.com/activar-kraken-tv/", "Origin": "https://www.listasiptvactualizadas.com", "Content-Length": Buffer.byteLength(data.toString()) } }); html = res.data; $ = cheerio.load(html); const msgActivaste = $('#activarspliktv').first().text().length > 0 ? $('#activarspliktv').first().text() : null; if (msgActivaste === 'Error!') { const msgInfo = $('#info').first().text().length > 0 ? $('#info').first().text() : null; console.log(`${msgActivaste} ${msgInfo}`); simpleLog(`${msgActivaste} ${msgInfo}`); setTimeout(main, 5000); } else if (msgActivaste === 'Activado!') { console.log(msgActivaste); simpleLog(msgActivaste); setTimeout(main, 1000*6*1); } //Cada Hora 1000*60*60 else { console.log('Creo que banearon, revisa el html'); simpleLog('Creo que banearon, revisa el html'); await fs.promises.writeFile('1- ban.html', html, 'utf8'); return; } } else { console.log(`${msgActivaste} ${msgHora}`); simpleLog(`${msgActivaste} ${msgHora}`); setTimeout(main, 1000*6*1); } } catch (e) { console.error(e); simpleLog(e.message); setTimeout(main, 5000); } } main();

Código: Seleccionar todo

- Este codigo se puede automatizar en un bucle de tiempo que se desee.
- Actualmente actualizaron la pagina y me encuentro con el siguiente conflicto:

Código: Seleccionar todo

if (!(msgActivaste || msgHora)) { const id = html.substring(html.indexOf(".setAttribute('name', '")+".setAttribute('name', '".length, html.indexOf("');")); console.log(`ID es: ${id}, activando...`); simpleLog(`ID es: ${id}, activando...`); const data = new url.URLSearchParams({ method_name: 'activate', token: 'token', [id]: 'Pulsa aquí para activar ' });

Como se puede observar en este fragmento de código, toma los datos dentro de la sección del input del html [Name=][Value=] para activar automáticamente, la cual al actualizar la página
el Token cambia. y allí está mi problema, la cual no logro extraer ese Token o especificarlo en él código para que el auto activador sea autónomo.

Me despido atento ante cualquier sugerencia o inquietud,
Saludos cordiales.


Código Completo:
Url: [Enlace externo eliminado para invitados]
Clave: indetectables.net

Si deseas el proyecto completo, no habría problema en facilitarlo solo con la condición de mejorar el código en esta misma comunidad de indetectables.net si algun Moderador o Administrador lo permite.
quesillo
Fijate si podes scrapear la pagina y si es posible haces que lea el token de la web. Vi que usan cloudflare, por lo que por ahí es un problema...
Yo me canse de hacer automatismos de todo tipo con "scrape-it" en node y eran muy rápido de hacer.
También en php usando "mervick/curl-helper" y regex me canse de culearme paginas 🤣

 

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
DSR! escribió: 18 Sep 2022, 05:25 Fijate si podes scrapear la pagina y si es posible haces que lea el token de la web. Vi que usan cloudflare, por lo que por ahí es un problema...
Yo me canse de hacer automatismos de todo tipo con "scrape-it" en node y eran muy rápido de hacer.
También en php usando "mervick/curl-helper" y regex me canse de culearme paginas 🤣


 
jaja no lo dudo, la verdad sinceramente cuento con conocimientos muy modestos, pero la intención es lograr un auto-activador lo más autónomo posible con un buen control Anti-BAN, mi único problema es lograr tomar ese token que se actualiza cada vez que se refresca la página, he intentado parsearlo para tomarlo y, es muy frustrante no encontrar la solución. 😂😭😭

Anotado: scrape-it y mervick/curl-helper 📓🧐
quesillo
divertite

Código: Seleccionar todo

<?php

//composer require mervick/curl-helper
require __DIR__ . '/vendor/autoload.php';

// agarro el token de uso y si no existe agarro el del form
$html = file_get_contents('https://www.listasiptvactualizadas.com/activar-kraken-tv');

preg_match('/Token: (.*?) </', $html, $response_token);
if (is_array($response_token) && isset($response_token[1])) {
	exit("Token: {$response_token[1]}");
}

preg_match('/name="token" value="(.*?)"/', $html, $form_token);
if (!is_array($form_token) || !$form_token[1]) {
	echo 'No encontre el token!';
	//var_dump($form_token, $html);
	exit();
}

// simulo el request
$response = Mervick\CurlHelper::factory()
	->setUrl('https://www.listasiptvactualizadas.com/activar-kraken-tv/')
	->setPostFields([
		'method_name'	=> 'activate',
		'token' 		=> $form_token[1],
	])
	->exec();

// agarro token
preg_match('/Token: (.*?) </', $response['content'], $response_token);
if (is_array($response_token) && isset($response_token[1])) {
	exit("Token: {$response_token[1]}");
}

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Responder

Volver a “Dudas y Preguntas”