|
|
|
|
|
import axios from 'axios'; |
|
|
|
export const config = { |
|
"name": "chatgpt4", |
|
"url": "/api/chatgpt4", |
|
"description": "Get response from Chatgpt4. Chatgpt4 is a ChatGPT API. It can be used to get responses from ChatGPT. It can provide you with the latest news, weather, and more.", |
|
"query": "prompt", |
|
"response": "text", |
|
"testURL": "./api/chatgpt4?prompt=hello" |
|
} |
|
|
|
|
|
function generateUserAgent() { |
|
const osList = [ |
|
"Windows NT 10.0; Win64; x64", |
|
"Windows NT 10.0; WOW64", |
|
"Windows NT 6.1; Win64; x64", |
|
"Windows NT 6.1; WOW64", |
|
"Macintosh; Intel Mac OS X 10_15_7", |
|
"Macintosh; Intel Mac OS X 10_14_6", |
|
"X11; Ubuntu; Linux x86_64", |
|
"X11; Linux x86_64" |
|
]; |
|
|
|
const webkitVersion = `${getRandomInt(500, 600)}.${getRandomInt(0, 99)}.${getRandomInt(0, 999)}`; |
|
const chromeVersion = `Chrome/${getRandomInt(80, 90)}.${getRandomInt(0, 9999)}.${getRandomInt(0, 999)}`; |
|
const safariVersion = `Safari/${getRandomInt(500, 600)}.${getRandomInt(0, 99)}.${getRandomInt(0, 999)}`; |
|
const firefoxVersion = `Gecko/20100101 Firefox/${getRandomInt(80, 90)}.${getRandomInt(0, 99)}`; |
|
|
|
const os = randomChoice(osList); |
|
const browser = randomChoice(['Chrome', 'Safari']); |
|
const engine = randomChoice(['Edge', 'OPR']) || 'Gecko/20100101 Firefox'; |
|
|
|
return `Mozilla/5.0 (${os}) AppleWebKit/${webkitVersion} (KHTML, like Gecko) ${browser}/${browser === 'Chrome' ? chromeVersion : safariVersion} ${engine}/${browser === 'Chrome' ? chromeVersion : firefoxVersion}`; |
|
} |
|
|
|
const userAgent = generateUserAgent(); |
|
const navigator = { |
|
userAgent: userAgent, |
|
}; |
|
|
|
console.log(userAgent); |
|
|
|
|
|
function getRandomInt(min, max) { |
|
return Math.floor(Math.random() * (max - min + 1)) + min; |
|
} |
|
|
|
function randomChoice(arr) { |
|
return arr[Math.floor(Math.random() * arr.length)]; |
|
} |
|
|
|
export default async function handler(req, res) { |
|
if (req.method === 'GET') { |
|
|
|
const { prompt } = req.query; |
|
|
|
|
|
const url = "https://chatgpt4online.org/wp-json/mwai-ui/v1/chats/submit"; |
|
|
|
|
|
try { |
|
const response = await axios.get('https://chatgpt4online.org/#chat'); |
|
const string = response.data; |
|
const regex = /restNonce":"([^&]+)"/; |
|
const match = string.match(regex); |
|
|
|
if (match) { |
|
const restNonce = match[1]; |
|
|
|
|
|
const payload = { |
|
botId: "default", |
|
newMessage: prompt || "Hi", |
|
newFileId: null, |
|
stream: false |
|
}; |
|
|
|
|
|
const headers = { |
|
'X-Wp-Nonce': restNonce, |
|
'User-Agent': generateUserAgent() |
|
}; |
|
|
|
|
|
const postResponse = await axios.post(url, payload, { headers }); |
|
|
|
console.log("Chat message submitted successfully."); |
|
|
|
console.log("Response data:", postResponse.data); |
|
|
|
res.status(200).json({ message: "Chat message submitted successfully", responseData: postResponse.data }); |
|
} else { |
|
console.log('No match found'); |
|
res.status(500).json({ message: "Failed to fetch X-Wp-Nonce" }); |
|
} |
|
} catch (error) { |
|
console.error("Failed to submit chat message:", error.message); |
|
|
|
if (error.response) { |
|
console.error("Error response data:", error.response.data); |
|
} |
|
res.status(error.response?.status || 500).json({ message: "Failed to submit chat message" }); |
|
} |
|
} else { |
|
res.setHeader('Allow', ['GET']); |
|
res.status(405).end(`Method ${req.method} Not Allowed`); |
|
} |
|
} |
|
|