VELIN / dist /index.js
shashwatIDR's picture
Upload 16 files
9bea604 verified
// server/index.ts
import express2 from "express";
import { fileURLToPath } from "url";
import { dirname } from "path";
// Get __dirname equivalent for ES modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// server/routes.ts
import { createServer } from "http";
async function registerRoutes(app2) {
app2.get("/api/download-audio/:videoId", async (req, res) => {
try {
const { videoId } = req.params;
const response = await fetch(`https://backendmix.vercel.app/streams/${videoId}`);
if (!response.ok) {
return res.status(404).json({ error: "Stream not found" });
}
const data = await response.json();
if (data.audioStreams && data.audioStreams.length > 0) {
const audioStream = data.audioStreams[0];
const audioResponse = await fetch(audioStream.url);
if (!audioResponse.ok) {
return res.status(404).json({ error: "Audio stream not available" });
}
res.setHeader("Content-Type", "audio/webm");
res.setHeader("Cache-Control", "public, max-age=86400");
const audioBuffer = await audioResponse.arrayBuffer();
res.send(Buffer.from(audioBuffer));
} else {
res.status(404).json({ error: "No audio streams available" });
}
} catch (error) {
console.error("Audio download error:", error);
res.status(500).json({ error: "Failed to download audio" });
}
});
const httpServer = createServer(app2);
return httpServer;
}
// server/vite.ts
import express from "express";
import fs from "fs";
import path2 from "path";
import { createServer as createViteServer, createLogger } from "vite";
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";
import runtimeErrorOverlay from "@replit/vite-plugin-runtime-error-modal";
// Get __dirname for vite config
const getViteConfigDirname = () => {
const __filename = fileURLToPath(import.meta.url);
return dirname(__filename);
};
var vite_config_default = defineConfig({
plugins: [
react(),
runtimeErrorOverlay(),
...process.env.NODE_ENV !== "production" && process.env.REPL_ID !== undefined ? [
await import("@replit/vite-plugin-cartographer").then(
(m) => m.cartographer()
)
] : []
],
resolve: {
alias: {
"@": path.resolve(getViteConfigDirname(), "client", "src"),
"@shared": path.resolve(getViteConfigDirname(), "shared"),
"@assets": path.resolve(getViteConfigDirname(), "attached_assets")
}
},
root: path.resolve(getViteConfigDirname(), "client"),
build: {
outDir: path.resolve(getViteConfigDirname(), "dist/public"),
emptyOutDir: true
},
server: {
fs: {
strict: true,
deny: ["**/.*"]
}
}
});
// server/vite.ts
import { nanoid } from "nanoid";
var viteLogger = createLogger();
function log(message, source = "express") {
const formattedTime = (new Date()).toLocaleTimeString("en-US", {
hour: "numeric",
minute: "2-digit",
second: "2-digit",
hour12: true
});
console.log(`${formattedTime} [${source}] ${message}`);
}
async function setupVite(app2, server) {
const serverOptions = {
middlewareMode: true,
hmr: { server },
allowedHosts: true
};
const vite = await createViteServer({
...vite_config_default,
configFile: false,
customLogger: {
...viteLogger,
error: (msg, options) => {
viteLogger.error(msg, options);
process.exit(1);
}
},
server: serverOptions,
appType: "custom"
});
app2.use(vite.middlewares);
app2.use("*", async (req, res, next) => {
const url = req.originalUrl;
try {
const clientTemplate = path2.resolve(
__dirname,
"..",
"client",
"index.html"
);
let template = await fs.promises.readFile(clientTemplate, "utf-8");
template = template.replace(
`src="/src/main.tsx"`,
`src="/src/main.tsx?v=${nanoid()}"`
);
const page = await vite.transformIndexHtml(url, template);
res.status(200).set({ "Content-Type": "text/html" }).end(page);
} catch (e) {
vite.ssrFixStacktrace(e);
next(e);
}
});
}
function serveStatic(app2) {
const distPath = path2.resolve(__dirname, "public");
if (!fs.existsSync(distPath)) {
throw new Error(
`Could not find the build directory: ${distPath}, make sure to build the client first`
);
}
app2.use(express.static(distPath));
app2.use("*", (_req, res) => {
res.sendFile(path2.resolve(distPath, "index.html"));
});
}
// server/index.ts
var app = express2();
app.use(express2.json());
app.use(express2.urlencoded({ extended: false }));
app.use((req, res, next) => {
const start = Date.now();
const path3 = req.path;
let capturedJsonResponse = undefined;
const originalResJson = res.json;
res.json = function(bodyJson, ...args) {
capturedJsonResponse = bodyJson;
return originalResJson.apply(res, [bodyJson, ...args]);
};
res.on("finish", () => {
const duration = Date.now() - start;
if (path3.startsWith("/api")) {
let logLine = `${req.method} ${path3} ${res.statusCode} in ${duration}ms`;
if (capturedJsonResponse) {
logLine += ` :: ${JSON.stringify(capturedJsonResponse)}`;
}
if (logLine.length > 80) {
logLine = logLine.slice(0, 79) + "…";
}
log(logLine);
}
});
next();
});
(async () => {
const server = await registerRoutes(app);
app.use((err, _req, res, _next) => {
const status = err.status || err.statusCode || 500;
const message = err.message || "Internal Server Error";
res.status(status).json({ message });
throw err;
});
if (app.get("env") === "development") {
await setupVite(app, server);
} else {
serveStatic(app);
}
const port = parseInt(process.env.PORT || "7860", 10);
server.listen({
port,
host: "0.0.0.0",
reusePort: true
}, () => {
log(`serving on port ${port}`);
});
})();