StableBOT / lib /textpro.js
RamaZyx's picture
Upload folder using huggingface_hub
a2b2aac verified
import cheerio from 'cheerio'
import cookie from 'cookie'
import fetch from 'node-fetch'
import FormData from 'form-data'
async function post(url, formdata = {}, cookies) {
let encode = encodeURIComponent;
let body = Object.keys(formdata)
.map((key) => {
let vals = formdata[key];
let isArray = Array.isArray(vals);
let keys = encode(key + (isArray ? "[]" : ""));
if (!isArray) vals = [vals];
let out = [];
for (let valq of vals) out.push(keys + "=" + encode(valq));
return out.join("&");
})
.join("&");
return await fetch(`${url}?${body}`, {
method: "GET",
headers: {
Accept: "*/*",
"Accept-Language": "en-US,en;q=0.9",
"User-Agent": "GoogleBot",
Cookie: cookies,
},
});
}
async function textpro(url, text) {
if (!/^https:\/\/textpro\.me\/.+\.html$/.test(url))
throw new Error("Url Salah!!");
const geturl = await fetch(url, {
method: "GET",
headers: {
"User-Agent": "GoogleBot",
},
});
const caritoken = await geturl.text();
let hasilcookie = geturl.headers
.get("set-cookie")
.split(",")
.map((v) => cookie.parse(v))
.reduce((a, c) => {
return { ...a, ...c };
}, {});
hasilcookie = {
__cfduid: hasilcookie.__cfduid,
PHPSESSID: hasilcookie.PHPSESSID,
};
hasilcookie = Object.entries(hasilcookie)
.map(([name, value]) => cookie.serialize(name, value))
.join("; ");
const $ = cheerio.load(caritoken);
const token = $('input[name="token"]').attr("value");
const form = new FormData();
if (typeof text === "string") text = [text];
for (let texts of text) form.append("text[]", texts);
form.append("submit", "Go");
form.append("token", token);
form.append("build_server", "https://textpro.me");
form.append("build_server_id", 1);
const geturl2 = await fetch(url, {
method: "POST",
headers: {
Accept: "*/*",
"Accept-Language": "en-US,en;q=0.9",
"User-Agent": "GoogleBot",
Cookie: hasilcookie,
...form.getHeaders(),
},
body: form.getBuffer(),
});
const caritoken2 = await geturl2.text();
const token2 = /<div.*?id="form_value".+>(.*?)<\/div>/.exec(caritoken2);
if (!token2) throw new Error("Token Not Found!!");
const prosesimage = await post(
"https://textpro.me/effect/create-image",
JSON.parse(token2[1]),
hasilcookie
);
const hasil = await prosesimage.json();
return `https://textpro.me${hasil.fullsize_image}`;
}
export {
textpro
}