akiraa-scrape
Version:
Module & tools for bot whatsApp
273 lines (253 loc) • 7.22 kB
JavaScript
const WebSocket = require("ws");
const axios = require("axios");
const cheerio = require("cheerio");
function generateRandomUserAgent() {
const androidVersions = [
"4.0.3",
"4.1.1",
"4.2.2",
"4.3",
"4.4",
"5.0.2",
"5.1",
"6.0",
"7.0",
"8.0",
"9.0",
"10.0",
"11.0",
];
const deviceModels = [
"M2004J19C",
"S2020X3",
"Xiaomi4S",
"RedmiNote9",
"SamsungS21",
"GooglePixel5",
];
const buildVersions = [
"RP1A.200720.011",
"RP1A.210505.003",
"RP1A.210812.016",
"QKQ1.200114.002",
"RQ2A.210505.003",
];
const selectedModel =
deviceModels[Math.floor(Math.random() * deviceModels.length)];
const selectedBuild =
buildVersions[Math.floor(Math.random() * buildVersions.length)];
const chromeVersion =
"Chrome/" +
(Math.floor(Math.random() * 80) + 1) +
"." +
(Math.floor(Math.random() * 999) + 1) +
"." +
(Math.floor(Math.random() * 9999) + 1);
const userAgent = `Mozilla/5.0 (Linux; Android ${androidVersions[Math.floor(Math.random() * androidVersions.length)]}; ${selectedModel} Build/${selectedBuild}) AppleWebKit/537.36 (KHTML, like Gecko) ${chromeVersion} Mobile Safari/537.36 WhatsApp/1.${Math.floor(Math.random() * 9) + 1}.${Math.floor(Math.random() * 9) + 1}`;
return userAgent;
}
function generateRandomIP() {
const octet = () => Math.floor(Math.random() * 256);
return `${octet()}.${octet()}.${octet()}.${octet()}`;
}
async function talkai(type, message) {
try {
const headers = {
"User-Agent": generateRandomUserAgent(),
Referer: "https://talkai.info/id/chat/",
"X-Forwarded-For": generateRandomIP(),
};
const data = {
temperature: 1,
frequency_penalty: 0,
type: type,
messagesHistory: [
{
from: "chatGPT",
content:
"Nama ku akiraa aku adalah maskot dari TalkAi sedang bisa membantu mu 😋👍",
},
{
from: "you",
content: message,
},
],
message: message,
};
let response;
try {
response = await axios.post("https://talkai.info/id/chat/send/", data, {
headers,
});
} catch (sendError) {
console.error(
'Error with "send" request. Falling back to "send2".',
sendError,
);
// If "send" fails, try "send2"
response = await axios.post("https://talkai.info/id/chat/send2/", data, {
headers,
});
}
return response.data;
} catch (error) {
console.error("Terjadi kesalahan:", error);
}
}
async function BlackBox(text) {
return new Promise(async (resolve, reject) => {
try {
const danz = await axios.post(
"https://www.useblackbox.io/chat-request-v4",
{
text: text,
allMessages: [
{
user: text,
},
],
stream: "",
clickedContinue: false,
},
{
headers: {
"Content-Type": "application/json",
"User-Agent":
"Mozilla/5.0 (Linux x86_64) Gecko/20130401 Firefox/71.3",
},
},
);
resolve(danz.data);
} catch (e) {
reject(e);
}
});
}
const soVits = {
model: async (number) => {
return new Promise(async (resolve) => {
const { data } = await axios.get(
"https://raw.githubusercontent.com/ArifzynXD/database/master/ai/anime.json",
);
const model = data.model[number.toString()];
if (model) {
resolve(model);
} else {
resolve(data);
}
});
},
language: async (id) => {
return new Promise(async (resolve) => {
const { data } = await axios.get(
"https://raw.githubusercontent.com/ArifzynXD/database/master/ai/anime.json",
);
const lang = data.language[id.toString()];
if (lang) {
resolve(lang);
} else {
resolve(data);
}
});
},
generate: async (text, model_id, language) => {
return new Promise(async (resolve, reject) => {
const model = await this.model(model_id);
const lang = await this.language(language);
const send_hash = {
session_hash: "4odx020bres",
fn_index: 2,
};
const send_data = {
fn_index: 2,
data: [text, model, lang, 1, false],
session_hash: "4odx020bres",
};
const result = {};
const ws = new WebSocket(
"wss://plachta-vits-umamusume-voice-synthesizer.hf.space/queue/join",
);
ws.onopen = function () {
console.log("Connected to websocket");
};
ws.onmessage = async function (event) {
let message = JSON.parse(event.data);
switch (message.msg) {
case "send_hash":
ws.send(JSON.stringify(send_hash));
break;
case "estimation":
console.log("Menunggu antrean: ️" + message.rank);
break;
case "send_data":
console.log("Processing your audio....");
ws.send(JSON.stringify(send_data));
break;
case "process_completed":
result.url =
"https://plachta-vits-umamusume-voice-synthesizer.hf.space/file=" +
message.output.data[1].name;
break;
}
};
ws.onclose = function (event) {
if (event.code === 1000) {
console.log("Process completed️");
} else {
console.log("Err : WebSocket Connection Error:\n");
}
resolve(result);
};
});
},
};
async function imgToPrompt(url) {
try {
const response = await fetch(url);
const imageData = await response.buffer();
const imageBase64 = Buffer.from(imageData).toString("base64");
const payload = {
consume_points: 1,
image: imageBase64,
};
const headers = {
"Content-Type": "application/json",
Cookie:
"_ga=GA1.1.1902043976.1711876868; _ga_WQ0WB7ZY96=GS1.1.1711876868.1.1.1711877146.0.0.0",
Origin: "https://animegenius.live3d.io",
Referer: "https://animegenius.live3d.io/",
Authorization:
"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTI5MTQyMTIsInN1YiI6Imdvb2dsZSAxNjEzMTIzIGdlbnR1cnN5MDJAZ21haWwuY29tIn0.niSNoUYnECi7nKdY9BObDHAt_EX-FsLcdhxfoUCWbbs",
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
};
const result = await fetch(
"https://api.live3d.io/api/v1/generation/img2prompt",
{
method: "POST",
headers: headers,
body: JSON.stringify(payload),
},
);
const responseData = await result.json();
return responseData;
} catch (error) {
console.error("Terjadi kesalahan:", error.message);
return null;
}
}
module.exports = {
talkai,
BlackBox,
soVits,
imgToPrompt,
};
let fs = require("fs");
let chalk = require("chalk");
let file = require.resolve(__filename);
fs.watchFile(file, () => {
fs.unwatchFile(file);
console.log(chalk.redBright("Update scrape"));
delete require.cache[file];
require(file);
});