Spaces:
Paused
Paused
/* | |
Credits @xpushz on telegram | |
Copyright 2017-2025 (c) Randy W @xtdevs, @xtsea on telegram | |
from : https://github.com/TeamKillerX | |
Channel : @RendyProjects | |
This program is free software: you can redistribute it and/or modify | |
it under the terms of the GNU Affero General Public License as published by | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
This program is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU Affero General Public License for more details. | |
You should have received a copy of the GNU Affero General Public License | |
along with this program. If not, see <https://www.gnu.org/licenses/>. | |
*/ | |
import express from 'express'; | |
const app = express(); | |
import * as swaggerUi from 'swagger-ui-express'; | |
import * as openapiSpecification from './swagger.js'; | |
import * as cheerio from 'cheerio'; | |
import * as lifestyle from './lifestyle.js'; | |
import sharp from "sharp"; | |
import { Readable } from "stream"; | |
import bodyParser from 'body-parser'; | |
import { schellwithflux } from './fluxai.js'; | |
import { OpenaiRes, tebakgambar, AnimeHentai } from './scrapper.js'; | |
import { GeminiResponse } from './googleGemini.js'; | |
import { CheckMilWare } from './midware.js'; | |
const CheckMilWares = new CheckMilWare(); | |
app.disable('x-powered-by'); | |
app.use(bodyParser.json()); | |
app.use( | |
bodyParser.urlencoded({ | |
extended: true, | |
}) | |
); | |
app.get('/', (req, res) => { | |
res.redirect('https://t.me/RendyProjects'); | |
}); | |
app.get('/api-docs.json', (req, res) => { | |
res.setHeader('Content-Type', 'application/json'); | |
res.send(openapiSpecification); | |
}); | |
app.use(async (req, res, next) => { | |
await CheckMilWares.handle(req, res, next); | |
}); | |
app.get('/api/v1/hentai-anime', async (req, res) => { | |
try { | |
const result = await AnimeHentai(); | |
if (result) { | |
res.json({ result }); | |
} else { | |
res.status(404).json({ error: "No result found." }); | |
} | |
} catch (error) { | |
res.status(500).json({ error: error.message }); | |
} | |
}); | |
app.get("/api/v1/google-gemini", async (req, res) => { | |
try { | |
const query = req.query.query; | |
const results = await GeminiResponse(query); | |
res.json({ message: results }); | |
} catch (e) { | |
res.status(500).json({ error: e.message }); | |
} | |
}); | |
app.get('/api/v1/tebakgambar', async (req, res) => { | |
try { | |
const result = await tebakgambar(); | |
if (result) { | |
res.json({ result }); | |
} else { | |
res.status(404).json({ error: "No result found." }); | |
} | |
} catch (error) { | |
res.status(500).json({ error: error.message }); | |
} | |
}); | |
app.get('/api/v1/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 }); | |
} | |
}); | |
app.post("/api/v1/fluxai-ai", async (req, res) => { | |
try { | |
const query = req.body.query; | |
const imageBytes = await schellwithflux(query); | |
if (!query) { | |
return res.status(400).send('Query parameter is missing'); | |
} | |
if (!imageBytes) { | |
return res.status(500).json({ error: "Failed to fetch image bytes" }); | |
} | |
const buffer = Buffer.isBuffer(imageBytes) ? imageBytes : Buffer.from(imageBytes); | |
const processedImage = await sharp(buffer) | |
.jpeg() | |
.toBuffer(); | |
res.set("Content-Type", "image/jpeg"); | |
const stream = Readable.from(processedImage); | |
stream.pipe(res); | |
} catch (error) { | |
console.error("Error processing image:", error.message); | |
res.status(500).json({ error: "Internal server error" }); | |
} | |
}); | |
lifestyle.startServer(app); |