mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-02 13:14:29 -04:00
Add KYOO_PREFIX handling in api's redirect
This commit is contained in:
parent
92b0076bef
commit
204344955e
@ -15,6 +15,7 @@ import { KError } from "~/models/error";
|
|||||||
import { bubble } from "~/models/examples";
|
import { bubble } from "~/models/examples";
|
||||||
import { AcceptLanguage, isUuid, processLanguages } from "~/models/utils";
|
import { AcceptLanguage, isUuid, processLanguages } from "~/models/utils";
|
||||||
import { imageDir } from "./seed/images";
|
import { imageDir } from "./seed/images";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
function getRedirectToImageHandler({
|
function getRedirectToImageHandler({
|
||||||
filter,
|
filter,
|
||||||
@ -87,8 +88,8 @@ function getRedirectToImageHandler({
|
|||||||
}
|
}
|
||||||
set.headers["content-language"] = ret.language;
|
set.headers["content-language"] = ret.language;
|
||||||
return quality
|
return quality
|
||||||
? redirect(`/images/${ret.image!.id}?quality=${quality}`)
|
? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`)
|
||||||
: redirect(`/images/${ret.image!.id}`);
|
: redirect(`${prefix}/images/${ret.image!.id}`);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,8 +182,8 @@ export const imagesH = new Elysia({ tags: ["images"] })
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
return quality
|
return quality
|
||||||
? redirect(`/images/${ret.image!.id}?quality=${quality}`)
|
? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`)
|
||||||
: redirect(`/images/${ret.image!.id}`);
|
: redirect(`${prefix}/images/${ret.image!.id}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: { description: "Get the image of a staff member." },
|
detail: { description: "Get the image of a staff member." },
|
||||||
@ -256,8 +257,8 @@ export const imagesH = new Elysia({ tags: ["images"] })
|
|||||||
}
|
}
|
||||||
set.headers["content-language"] = ret.language;
|
set.headers["content-language"] = ret.language;
|
||||||
return quality
|
return quality
|
||||||
? redirect(`/images/${ret.image!.id}?quality=${quality}`)
|
? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`)
|
||||||
: redirect(`/images/${ret.image!.id}`);
|
: redirect(`${prefix}/images/${ret.image!.id}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: { description: "Get the logo of a studio." },
|
detail: { description: "Get the logo of a studio." },
|
||||||
|
@ -22,6 +22,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { getShows, showFilters, showSort } from "./logic";
|
import { getShows, showFilters, showSort } from "./logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
export const collections = new Elysia({
|
export const collections = new Elysia({
|
||||||
prefix: "/collections",
|
prefix: "/collections",
|
||||||
@ -113,7 +114,7 @@ export const collections = new Elysia({
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No collection in the database.",
|
message: "No collection in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/collections/${serie.slug}`);
|
return redirect(`${prefix}/collections/${serie.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -15,6 +15,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { getShows, showFilters, showSort } from "./logic";
|
import { getShows, showFilters, showSort } from "./logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
|
export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
|
||||||
.model({
|
.model({
|
||||||
@ -103,7 +104,7 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No movies in the database.",
|
message: "No movies in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/movies/${movie.slug}`);
|
return redirect(`${prefix}/movies/${movie.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -15,6 +15,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { getShows, showFilters, showSort } from "./logic";
|
import { getShows, showFilters, showSort } from "./logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
export const series = new Elysia({ prefix: "/series", tags: ["series"] })
|
export const series = new Elysia({ prefix: "/series", tags: ["series"] })
|
||||||
.model({
|
.model({
|
||||||
@ -103,7 +104,7 @@ export const series = new Elysia({ prefix: "/series", tags: ["series"] })
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No series in the database.",
|
message: "No series in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/series/${serie.slug}`);
|
return redirect(`${prefix}/series/${serie.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -13,6 +13,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { getShows, showFilters, showSort } from "./logic";
|
import { getShows, showFilters, showSort } from "./logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
export const showsH = new Elysia({ prefix: "/shows", tags: ["shows"] })
|
export const showsH = new Elysia({ prefix: "/shows", tags: ["shows"] })
|
||||||
.model({
|
.model({
|
||||||
@ -31,7 +32,7 @@ export const showsH = new Elysia({ prefix: "/shows", tags: ["shows"] })
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No shows in the database.",
|
message: "No shows in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/${show.kind}s/${show.slug}`);
|
return redirect(`${prefix}/${show.kind}s/${show.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -22,6 +22,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { showFilters, showSort } from "./shows/logic";
|
import { showFilters, showSort } from "./shows/logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
const staffSort = Sort(
|
const staffSort = Sort(
|
||||||
{
|
{
|
||||||
@ -160,7 +161,7 @@ export const staffH = new Elysia({ tags: ["staff"] })
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No staff in the database.",
|
message: "No staff in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/staff/${member.slug}`);
|
return redirect(`${prefix}/staff/${member.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -32,6 +32,7 @@ import {
|
|||||||
} from "~/models/utils";
|
} from "~/models/utils";
|
||||||
import { desc } from "~/models/utils/descriptions";
|
import { desc } from "~/models/utils/descriptions";
|
||||||
import { getShows, showFilters, showSort } from "./shows/logic";
|
import { getShows, showFilters, showSort } from "./shows/logic";
|
||||||
|
import { prefix } from "~/elysia";
|
||||||
|
|
||||||
const studioSort = Sort(
|
const studioSort = Sort(
|
||||||
{
|
{
|
||||||
@ -200,7 +201,7 @@ export const studiosH = new Elysia({ prefix: "/studios", tags: ["studios"] })
|
|||||||
status: 404,
|
status: 404,
|
||||||
message: "No studios in the database.",
|
message: "No studios in the database.",
|
||||||
});
|
});
|
||||||
return redirect(`/studios/${studio.slug}`);
|
return redirect(`${prefix}/studios/${studio.slug}`);
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
detail: {
|
detail: {
|
||||||
|
@ -46,7 +46,8 @@ export const base = new Elysia({ name: "base" })
|
|||||||
})
|
})
|
||||||
.as("plugin");
|
.as("plugin");
|
||||||
|
|
||||||
export const app = new Elysia({ prefix: process.env.KYOO_PREFIX })
|
export const prefix = process.env.KYOO_PREFIX;
|
||||||
|
export const app = new Elysia({ prefix })
|
||||||
.use(base)
|
.use(base)
|
||||||
.use(showsH)
|
.use(showsH)
|
||||||
.use(movies)
|
.use(movies)
|
||||||
|
@ -9,7 +9,7 @@ await migrate();
|
|||||||
|
|
||||||
let secret = process.env.JWT_SECRET;
|
let secret = process.env.JWT_SECRET;
|
||||||
if (!secret) {
|
if (!secret) {
|
||||||
const auth = process.env.AUTH_SERVER ?? "http://auth:4568";
|
const auth = process.env.AUTH_SERVER ?? "http://auth:4568/auth";
|
||||||
try {
|
try {
|
||||||
const ret = await fetch(`${auth}/info`);
|
const ret = await fetch(`${auth}/info`);
|
||||||
const info = await ret.json();
|
const info = await ret.json();
|
||||||
@ -28,7 +28,6 @@ if (!secret) {
|
|||||||
processImages();
|
processImages();
|
||||||
|
|
||||||
app
|
app
|
||||||
.use(jwt({ secret }))
|
|
||||||
.use(
|
.use(
|
||||||
swagger({
|
swagger({
|
||||||
documentation: {
|
documentation: {
|
||||||
@ -77,6 +76,7 @@ app
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
.use(jwt({ secret }))
|
||||||
.listen(3567);
|
.listen(3567);
|
||||||
|
|
||||||
console.log(`Api running at ${app.server?.hostname}:${app.server?.port}`);
|
console.log(`Api running at ${app.server?.hostname}:${app.server?.port}`);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user