DashXx / plugins /hackai.js
HerzaJ's picture
Create hackai.js
aa2955d verified
const axios = require('axios');
let currentAccount = null;
let requestCount = 0;
async function hackai(query) {
if (!currentAccount || requestCount >= 5) {
const tempMailResponse = await axios.post('https://api.internal.temp-mail.io/api/v3/email/new', {
min_name_length: 10,
max_name_length: 10
}, {
headers: {
'Content-Type': 'application/json',
'Application-Name': 'web',
'Application-Version': '4.0.0',
'X-CORS-Header': 'iaWg3pchvFx48fY'
}
});
const { email, token } = tempMailResponse.data;
await axios.post('https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=AIzaSyAaSg74fiq2FKPvfqo9QT55c5DmCmETKVY', {
requestType: 'EMAIL_SIGNIN',
email: email,
clientType: 'CLIENT_TYPE_WEB',
continueUrl: 'https://chat.hackaigc.com',
canHandleCodeInApp: true
}, {
headers: {
'X-Client-Version': 'Chrome/JsCore/10.12.1/FirebaseCore-web',
'X-Firebase-gmpid': '1:1096968884444:web:346299d4d159d5f9d8e419',
'Content-Type': 'application/json'
}
});
await new Promise(resolve => setTimeout(resolve, 5000));
const messagesResponse = await axios.get(`https://api.internal.temp-mail.io/api/v3/email/${email}/messages`, {
headers: {
'Content-Type': 'application/json',
'Application-Name': 'web',
'Application-Version': '4.0.0',
'X-CORS-Header': 'iaWg3pchvFx48fY'
}
});
const message = messagesResponse.data[0];
const urlMatch = message.body_html.match(/href='([^']+)'/);
const verifyUrl = urlMatch[1].replace(/&/g, '&');
const oobCodeMatch = verifyUrl.match(/oobCode=([^&]+)/);
const oobCode = oobCodeMatch[1];
const signInResponse = await axios.post('https://identitytoolkit.googleapis.com/v1/accounts:signInWithEmailLink?key=AIzaSyAaSg74fiq2FKPvfqo9QT55c5DmCmETKVY', {
email: email,
oobCode: oobCode
}, {
headers: {
'Content-Type': 'application/json'
}
});
const bearerToken = signInResponse.data.idToken;
const userId = signInResponse.data.localId;
currentAccount = {
email: email,
otpUrl: verifyUrl,
bearerToken: bearerToken,
userId: userId
};
requestCount = 0;
}
requestCount++;
const chatResponse = await axios.post('https://chat.hackaigc.com/api/chat', {
user_id: currentAccount.userId,
user_level: 'free',
model: 'gpt-4o',
messages: [{ role: 'user', content: query }],
prompt: '',
temperature: 0.7,
enableWebSearch: false,
usedVoiceInput: false
}, {
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${currentAccount.bearerToken}`
}
});
return {
email: currentAccount.email,
otpUrl: currentAccount.otpUrl,
bearerToken: currentAccount.bearerToken,
requestCount: requestCount,
response: chatResponse.data
};
}
const accountLimits = new Map();
const handler = async (req, res) => {
try {
const { text, key } = req.query;
if (!text || !key) {
return res.status(400).json({
success: false,
error: 'Missing required parameters: text and key'
});
}
const currentCount = accountLimits.get(key) || 0;
if (currentCount >= 8) {
return res.status(429).json({
success: false,
error: 'API key limit reached. Maximum 8 requests per key.'
});
}
const result = await hackai(text);
accountLimits.set(key, currentCount + 1);
res.json({
author: "Herza",
success: true,
email: result.email,
otpUrl: result.otpUrl,
bearerToken: result.bearerToken,
requestCount: result.requestCount,
keyUsage: `${currentCount + 1}/8`,
msg: result.response
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
};
module.exports = {
name: 'HackAI GPT-4o',
description: 'Generate responses using HackAI GPT-4o with automatic account rotation',
type: 'GET',
routes: ['api/AI/hackai'],
tags: ['ai', 'gpt4o', 'hackai'],
main: ['AI'],
parameters: ['text', 'key'],
enabled: true,
handler
};