libs_Get_payload_JVC
This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/588212/1883409/Libs_PayLoad_JVC.js
// GET PARSE Payload64GZIP
// ASYNCH
async function getPayloadFromHtml(doc) {
const payload64 = [...doc.scripts].map(s => s.textContent.match(/jvc\.\w+Payload\s*=\s*["']([^"']+)["']/)).find(Boolean)?.[1];
if (!payload64) return null;
const bytes = Uint8Array.from(atob(payload64), c => c.charCodeAt(0));
const decompressedStream = new Blob([bytes]).stream().pipeThrough(new DecompressionStream('gzip'));
return await new Response(decompressedStream).json(); // GZIP + BASE 64
}
async function getPayloadFromRaw(rawData) {
const payload64 = rawData.match(/jvc\.\w+Payload\s*=\s*["']([^"']+)["']/)?.[1];
if (!payload64) return null;
const bytes = Uint8Array.from(atob(payload64), c => c.charCodeAt(0));
const decompressedStream = new Blob([bytes]).stream().pipeThrough(new DecompressionStream('gzip'));
return await new Response(decompressedStream).json(); // GZIP + BASE 64
}
// SYNCH https://cdn.jsdelivr.net/npm/[email protected]/umd/index.js
// GET PARSE Payload From HTML (sync, requiert fflate via @require)
/*
function getPayloadFromHtmlSynch(doc) {
const payload64 = [...doc.scripts].map(s => s.textContent.match(/jvc\.\w+Payload\s*=\s*["']([^"']+)["']/)).find(Boolean)?.[1];
if (!payload64) return null;
const bytes = Uint8Array.from(atob(payload64), c => c.charCodeAt(0));
const decompressed = fflate.gunzipSync(bytes); // UnGZIP Synch
const json = fflate.strFromU8(decompressed);
return JSON.parse(json); // GZIP + BASE 64
}
*/