ryu-js / index.js
randydev's picture
Update index.js
fa3c558 verified
raw
history blame
3.48 kB
/*
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 swaggerDocs from './swagger.js';
import * as cheerio from 'cheerio';
import * as lifestyle from './lifestyle.js';
import sharp from "sharp";
import { Readable } from "stream";
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.get('/', (req, res) => {
res.redirect('https://t.me/RendyProjects');
});
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 (!imageBytes) {
return res.status(500).json({ error: "Failed to fetch image bytes" });
}
const processedImage = await sharp(imageBytes)
.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);