Browse Source

Add global user redirections

develop
Alice Gaudon 9 months ago
parent
commit
0c00ef85b9
  1. 3
      config/default.json5
  2. 1
      config/production.json5
  3. 9
      src/controllers/GiteaRepoLatestReleaseController.ts

3
config/default.json5

@ -12,4 +12,7 @@
cache: false,
},
assets_base_dir: 'downloads',
user_redirections: [
{from: 'arisu', to: 'ashpie'}
],
}

1
config/production.json5

@ -2,4 +2,5 @@
log_level: "DEBUG",
db_log_level: "ERROR",
public_url: "https://update.eternae.ink",
user_redirections: [],
}

9
src/controllers/GiteaRepoLatestReleaseController.ts

@ -9,6 +9,7 @@ import path from "path";
import sendRanges, {SendRangeGetStreamFn} from "send-ranges";
import mime from "mime";
import {logger} from "swaf/Logger";
import {ParsedUrlQueryInput} from "querystring";
export const ASSETS_BASE_DIR = config.get<string>('assets_base_dir');
@ -22,6 +23,14 @@ export default class GiteaRepoLatestReleaseController extends Controller {
const {owner, name, file} = req.params;
if (!owner || !name) return next();
// User redirections
const userRedirections = config.get<{ from: string, to: string }[]>('user_redirections');
for (const redirection of userRedirections) {
if (owner === redirection.from) {
return res.redirect(Controller.route('get-repo-release-file', [redirection.to, name, file], req.query as ParsedUrlQueryInput));
}
}
const httpRequest = https.get(`${config.get('gitea_instance_url')}/api/v1/repos/${owner}/${name}/releases`, {
headers: {
'Accept': 'application/json',

Loading…
Cancel
Save