refactor: auth magic

This commit is contained in:
Xmader 2020-10-25 17:55:48 -04:00
parent 57c93007b3
commit 4980852501
1 changed files with 3 additions and 3 deletions

View File

@ -3,6 +3,7 @@ import scoreinfo from './scoreinfo'
import { webpackHook } from './webpack-hook' import { webpackHook } from './webpack-hook'
const FILE_URL_MODULE_ID = 'iNJA' const FILE_URL_MODULE_ID = 'iNJA'
const MAGIC_REG = /^\d+(img|mp3|midi)\d(.+)$/
type FileType = 'img' | 'mp3' | 'midi' type FileType = 'img' | 'mp3' | 'midi'
@ -15,15 +16,14 @@ const getApiUrl = (id: number, type: FileType, index: number): string => {
* I know this is super hacky. * I know this is super hacky.
*/ */
let magic: Promise<string> | string = new Promise((resolve) => { let magic: Promise<string> | string = new Promise((resolve) => {
const reg = /^\d+(img|mp3|midi)\d(.+)$/ // reserve for future hook update
const method = 'encodeURIComponent' const method = 'encodeURIComponent'
const _fn = window[method] const _fn = window[method]
// This script can run before anything on the page, // This script can run before anything on the page,
// so setting `encodeURIComponent` to be non-configurable and non-writable is no use. // so setting `encodeURIComponent` to be non-configurable and non-writable is no use.
window[method] = (s) => { window[method] = (s) => {
const m = s.toString().match(reg) const m = s.toString().match(MAGIC_REG)
if (m) { if (m) {
// the auth string will be encoded using `encodeURIComponent` before `md5`, // the auth string will be encoded using `encodeURIComponent` before `md5`,
// so hook here // so hook here