Spaces:
Paused
Paused
const express = require('express') | |
const app = express() | |
const port = 7860 | |
const axios = require('axios') | |
const { Database } = require('./database'); | |
const startup = async () => { | |
try { | |
const dbClient = new Database("AkenoXJs", "FastJsAPI"); | |
console.log("Starting application..."); | |
await dbClient.connect(); | |
console.log("MongoDB connected successfully."); | |
} catch (error) { | |
console.error("Error during startup:", error.message); | |
process.exit(1); | |
} | |
}; | |
const startServer = async () => { | |
await startup(); | |
app.listen(port, () => { | |
console.log(`Server running on http://localhost:${port}`); | |
}); | |
}; | |
app.get('/', (req, res) => { | |
res.redirect('https://t.me/RendyProjects'); | |
}); | |
app.use(async (req, res, next) => { | |
const dbClient = new Database("AkenoXJs", "FastJsAPI"); | |
const xForwardedFor = req.headers['x-forwarded-for']; | |
const xRealIP = req.headers['x-real-ip']; | |
const cfConnectingIP = req.headers['cf-connecting-ip']; | |
let realIP = req.ip; | |
if (xForwardedFor) { | |
realIP = xForwardedFor.split(',')[0].trim(); | |
} | |
else if (xRealIP){ | |
realIP = xRealIP; | |
} | |
else if (cfConnectingIP) { | |
realIP = cfConnectingIP; | |
} | |
req.realIP = realIP; | |
const isBlocked = await dbClient.CheckIsBlocked(realIP) | |
if (isBlocked && isBlocked.blocked === true) { | |
return res.status(403).send("Access denied: IP is blocked"); | |
} | |
if (req.path === '/env') { | |
console.log("check path /env"); | |
await dbClient.AddIpisBlocked(realIP) | |
return res.status(403).send("Access denied: IP is blocked.."); | |
} | |
await dbClient.IPAddressAndUpdate(realIP); | |
console.log(`Real IP address is: ${realIP}, header: ${xForwardedFor ? "x-forwarded-for" : xRealIP ? "x-real-ip" : cfConnectingIP ? "cf-connecting-ip" : "req.ip"} `); | |
await next(); | |
}); | |
app.get('/api/test', async (req, res) => { | |
try { | |
// console.log("Test", req) | |
res.send("Hello world") | |
} catch (error) { | |
res.status(401).json({error: error.message}) | |
} | |
}) | |
const payload = (prompt) => ({ | |
model: "gpt-4o", | |
prompt: prompt, | |
top_p: 1, | |
logprobs: null, | |
stop: null | |
}); | |
const OpenaiRes = async (prompt) => { | |
try { | |
const EncodeUrl = "aHR0cHM6Ly9vcGVuYWktZ3B0LnJlbWl4cHJvamVjdC5vcmcv" | |
let url; | |
try { | |
url = atob(EncodeUrl); | |
} catch (e) { | |
console.error("Could not decode the string! " + e); | |
} | |
const headers = { | |
"Accept": "application/json", | |
"Content-Type": "application/json", | |
"Accept-Language": "en", | |
"Connection": "keep-alive", | |
"Origin": "https://remix.ethereum.org", | |
"Referer": "https://remix.ethereum.org/", | |
"Sec-Fetch-Dest": "empty", | |
"Sec-Fetch-Mode": "cors", | |
"Sec-Fetch-Site": "cross-site", | |
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134" | |
}; | |
const response = await axios.post(url, payload(prompt), { headers, timeout: 50000 }); | |
if (response.status === 200) { | |
return response.data.choices[0].message.content + "\n\nPowered By xtdevs"; | |
} | |
// console.log("Response:", response) | |
} catch (error) { | |
console.error("Error:", error.message); | |
return null; | |
} | |
}; | |
app.get('/api/gpt-old', async (req, res) => { | |
try { | |
const query = req.query.query; | |
const results = await OpenaiRes(query); | |
res.json({ results }); | |
} catch (error) { | |
res.status(401).json({ error: error.message }); | |
} | |
}); | |
startServer(); |