mirror of
https://github.com/wukko/cobalt.git
synced 2024-06-15 03:26:48 +01:00
Compare commits
3 commits
462167955a
...
276780bc82
Author | SHA1 | Date | |
---|---|---|---|
|
276780bc82 | ||
|
25f2a015c5 | ||
|
b1adbd659e |
|
@ -67,7 +67,7 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) {
|
|||
|
||||
app.use('/api/json', express.json({
|
||||
verify: (req, res, buf) => {
|
||||
let acceptCon = String(req.header('Accept')) === "application/json";
|
||||
let acceptCon = String(req.header('Accept')) === "application/json" || String(req.header('Accept')) === "application/json; charset=utf-8";
|
||||
if (acceptCon) {
|
||||
if (buf.length > 720) throw new Error();
|
||||
JSON.parse(buf);
|
||||
|
@ -80,7 +80,7 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) {
|
|||
// handle express.json errors properly (https://github.com/expressjs/express/issues/4065)
|
||||
app.use('/api/json', (err, req, res, next) => {
|
||||
let errorText = "invalid json body";
|
||||
let acceptCon = String(req.header('Accept')) !== "application/json";
|
||||
let acceptCon = String(req.header('Accept')) !== "application/json" && String(req.header('Accept')) !== "application/json; charset=utf-8";
|
||||
|
||||
if (err || acceptCon) {
|
||||
if (acceptCon) errorText = "invalid accept header";
|
||||
|
@ -98,7 +98,7 @@ export function runAPI(express, app, gitCommit, gitBranch, __dirname) {
|
|||
let lang = languageCode(req);
|
||||
let j = apiJSON(0, { t: "bad request" });
|
||||
try {
|
||||
let contentCon = String(req.header('Content-Type')) === "application/json";
|
||||
let contentCon = String(req.header('Accept')) === "application/json" || String(req.header('Accept')) === "application/json; charset=utf-8";
|
||||
let request = req.body;
|
||||
if (contentCon && request.url) {
|
||||
request.dubLang = request.dubLang ? lang : false;
|
||||
|
|
|
@ -23,13 +23,22 @@ const forbiddenCharsString = ['}', '{', '%', '>', '<', '^', ';', '`', '$', '"',
|
|||
|
||||
export function apiJSON(type, obj) {
|
||||
try {
|
||||
try {
|
||||
var filename = obj.filename;
|
||||
if (obj.isAudioOnly == true && typeof filename == 'string' && !filename.endsWith(".mp3") && !filename.endsWith(".ogg") && !filename.endsWith(".wav") && !filename.endsWith(".opus")) {
|
||||
obj.filename = filename + '.mp3';
|
||||
}
|
||||
} catch (e) {
|
||||
return { status: 500, body: { status: "error", text: "Internal Server Error", critical: true } };
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case 0:
|
||||
return { status: 400, body: { status: "error", text: obj.t } };
|
||||
case 1:
|
||||
return { status: 200, body: { status: "redirect", url: obj.u } };
|
||||
return { status: 200, body: { status: "redirect", url: obj.u, filename: obj.filename } };
|
||||
case 2:
|
||||
return { status: 200, body: { status: "stream", url: createStream(obj) } };
|
||||
return { status: 200, body: { status: "stream", url: createStream(obj), filename: obj.filename } };
|
||||
case 3:
|
||||
return { status: 200, body: { status: "success", text: obj.t } };
|
||||
case 4:
|
||||
|
|
Loading…
Reference in a new issue