|
|
@ -1,7 +1,7 @@ |
|
|
|
// ==UserScript==
|
|
|
|
// @name PNGExtraEmbed
|
|
|
|
// @namespace https://coom.tech/
|
|
|
|
// @version 0.126
|
|
|
|
// @version 0.127
|
|
|
|
// @description uhh
|
|
|
|
// @author You
|
|
|
|
// @match https://boards.4channel.org/*
|
|
|
@ -11303,7 +11303,10 @@ |
|
|
|
resolve(resp); |
|
|
|
}, |
|
|
|
ontimeout: () => reject("fetch timeout"), |
|
|
|
onerror: () => reject("fetch error"), |
|
|
|
onerror: (...args) => { |
|
|
|
debugger; |
|
|
|
reject("fetch error"); |
|
|
|
}, |
|
|
|
onabort: () => reject("fetch abort") |
|
|
|
}; |
|
|
|
xmlhttprequest(gmopt); |
|
|
@ -11392,15 +11395,16 @@ |
|
|
|
return new Blob([ret]); |
|
|
|
}; |
|
|
|
var decodeCoom3Payload = async (buff) => { |
|
|
|
const pees = buff.toString().split(" ").slice(0, 5).filter((e) => e.startsWith("http")); |
|
|
|
return Promise.all(pees.map(async (pee) => { |
|
|
|
const pees = buff.toString().split(" ").slice(0, 5).filter((e) => e.startsWith("https://files.catbox.moe/")); |
|
|
|
return (await Promise.all(pees.map(async (pee) => { |
|
|
|
try { |
|
|
|
const headers = headerStringToObject(await GM_head(pee)); |
|
|
|
const res = await GM_fetch(pee, { |
|
|
|
headers: { ranges: "bytes=0-2048" }, |
|
|
|
headers: { ranges: "bytes=0-2048", "user-agent": "" }, |
|
|
|
mode: "cors", |
|
|
|
referrerPolicy: "no-referrer" |
|
|
|
}); |
|
|
|
const size = +headers["content-size"] || 0; |
|
|
|
const size = +headers["content-length"] || 0; |
|
|
|
const header = import_buffer2.Buffer.from(await res.arrayBuffer()); |
|
|
|
let hptr = 0; |
|
|
|
if (header.slice(0, 4).toString() == "PEE\0") |
|
|
@ -11427,15 +11431,17 @@ |
|
|
|
let thumbsize = 0; |
|
|
|
if (hasThumbnail) { |
|
|
|
thumbsize = header.readInt32LE(ptr); |
|
|
|
console.log("Thumbnail size of ", thumbsize); |
|
|
|
thumb = import_buffer2.Buffer.from(await (await GM_fetch(pee, { headers: { range: `bytes=${ptr + 4}-${ptr + 4 + thumbsize}` } })).arrayBuffer()); |
|
|
|
thumb = import_buffer2.Buffer.from(await (await GM_fetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr + 4}-${ptr + 4 + thumbsize}` } })).arrayBuffer()); |
|
|
|
} |
|
|
|
return { |
|
|
|
filename: fn, |
|
|
|
data: async (lsn) => import_buffer2.Buffer.from(await (await GM_fetch(pee, { headers: { range: `bytes=${ptr + 4 + thumbsize}-${size - 1}` } }, lsn)).arrayBuffer()), |
|
|
|
data: async (lsn) => import_buffer2.Buffer.from(await (await GM_fetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr + 4 + thumbsize}-${size - 1}` } }, lsn)).arrayBuffer()), |
|
|
|
thumbnail: thumb |
|
|
|
}; |
|
|
|
})); |
|
|
|
} catch (e) { |
|
|
|
console.warn(e); |
|
|
|
} |
|
|
|
}))).map((e) => e); |
|
|
|
}; |
|
|
|
var fireNotification = (level, text2, lifetime = 3) => { |
|
|
|
document.dispatchEvent(new CustomEvent("CreateNotification", { |
|
|
|