music start
This commit is contained in:
@ -9,6 +9,7 @@ async function search(query) {
|
||||
let data = sc.search(query);
|
||||
return data;
|
||||
}
|
||||
|
||||
// so um fuck lucida
|
||||
// based on https://github.com/imputnet/cobalt/blob/58ea4aed01383ead74d5e32e75335eddc2f015be/api/src/processing/services/soundcloud.js
|
||||
|
||||
@ -72,7 +73,7 @@ const findBestForPreset = (transcodings, preset) => {
|
||||
return inferior;
|
||||
}
|
||||
async function download(obj) {
|
||||
const clientId = await findClientID();
|
||||
const clientId = cachedID.id;
|
||||
if (!clientId) return { error: "fetch.fail" };
|
||||
|
||||
let link = obj;
|
||||
@ -150,4 +151,4 @@ async function download(obj) {
|
||||
}
|
||||
}
|
||||
|
||||
export { search, download };
|
||||
export { search, download, findClientID };
|
||||
28
index.js
28
index.js
@ -10,15 +10,21 @@ import compression from "compression";
|
||||
// import { accs, infdb, polytrack } from "./database.js";
|
||||
import { accs } from "./database.js";
|
||||
import { } from "./accounts/friend.js";
|
||||
import { search, download } from "./accounts/music.js";
|
||||
import { findClientID, search, download } from "./accounts/music.js";
|
||||
import { banUser, removeAccount, verifyCookie, getUserFromCookie, createAccount, resetPassword, loginAccount, addBadge } from "./accounts/manage.js";
|
||||
import { } from "./accounts/misc.js";
|
||||
import { getRawData, generateAccountPage, editProfile, saveData, getUsers, isAdmin, retrieveData } from "./accounts/profile.js";
|
||||
import { callAI } from "./ai.js";
|
||||
import { Readable } from 'stream';
|
||||
import os from "node:os";
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
await findClientID();
|
||||
setInterval(async () => {
|
||||
await findClientID();
|
||||
}, 1000 * 60 * 20);
|
||||
|
||||
const port = process.env.PORT || 3000;
|
||||
|
||||
const app = express();
|
||||
@ -160,6 +166,26 @@ app.post("/api/ai/sendMessage", async (req, res) => {
|
||||
// stream back reply
|
||||
})
|
||||
|
||||
// music endpoints
|
||||
app.get("/api/music/search", async (req, res) => {
|
||||
res.status(200).send(await search(req.query.q))
|
||||
})
|
||||
|
||||
app.use("/api/music/download", async (req, res, next) => {
|
||||
// console.log()
|
||||
let song = req.query.url;
|
||||
song = song.replaceAll(" ", "");
|
||||
const processor = Bun.spawn([
|
||||
"yt-dlp",
|
||||
"bestaudio[abr<=160]",
|
||||
"-o", `-`,
|
||||
"https://soundcloud.com/" + req.query.url
|
||||
]);
|
||||
for await (const chunk of processor.stdout) {
|
||||
res.write(chunk);
|
||||
}
|
||||
res.end();
|
||||
});
|
||||
|
||||
// friends endpoints
|
||||
app.get("/api/friends/list", async (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user