Make imagor optional

This commit is contained in:
Madeline 2022-10-02 22:25:47 +11:00
parent 5bbe2666d0
commit 5b463ee156
2 changed files with 16 additions and 11 deletions

View File

@ -17,22 +17,25 @@ export const DEFAULT_FETCH_OPTIONS: any = {
};
export const getProxyUrl = (url: URL, width: number, height: number) => {
const { endpointPublic, resizeWidthMax, resizeHeightMax } = Config.get().cdn;
const { endpointPublic, resizeWidthMax, resizeHeightMax, imagorServerUrl } = Config.get().cdn;
const secret = Config.get().security.jwtSecret; // maybe shouldn't use this?
width = Math.min(width || 500, resizeWidthMax || width);
height = Math.min(height || 500, resizeHeightMax || width);
let path = `${width}x${height}/${url.host}${url.pathname}`
// Imagor
if (imagorServerUrl) {
let path = `${width}x${height}/${url.host}${url.pathname}`;
const hash = crypto.createHmac('sha1', secret)
.update(path)
.digest('base64')
.replace(/\+/g, '-').replace(/\//g, '_');
const hash = crypto.createHmac('sha1', secret)
.update(path)
.digest('base64')
.replace(/\+/g, '-').replace(/\//g, '_');
// TODO: make configurable
return `https://media.understars.dev/${hash}/${path}`;
return `${imagorServerUrl}/${hash}/${path}`;
}
// return `${endpointPublic}/external/resize/${encodeURIComponent(url.href)}?width=${width}&height=${height}`;
// Fosscord CDN resizer
return `${endpointPublic}/external/resize/${encodeURIComponent(url.href)}?width=${width}&height=${height}`;
};
const getMeta = ($: cheerio.CheerioAPI, name: string): string | undefined => {

View File

@ -52,6 +52,7 @@ export interface ConfigValue {
endpointPrivate: string | null;
resizeHeightMax: number | null;
resizeWidthMax: number | null;
imagorServerUrl: string | null;
};
api: {
defaultVersion: string;
@ -222,6 +223,7 @@ export const DefaultConfigOptions: ConfigValue = {
endpointPublic: null,
resizeHeightMax: 1000,
resizeWidthMax: 1000,
imagorServerUrl: null,
},
api: {
defaultVersion: "9",