Spoiler Fix #90
1 changed files with 6 additions and 6 deletions
some renames
commit
45a105a304
|
|
@ -15,7 +15,7 @@ const {discord, as, select, sync} = require("../../passthrough")
|
||||||
const webUtils = sync.require("../web-utils")
|
const webUtils = sync.require("../web-utils")
|
||||||
|
|
||||||
const schema = {
|
const schema = {
|
||||||
router: z.object({
|
params: z.object({
|
||||||
channel_id: z.string().regex(/^[0-9]+$/),
|
channel_id: z.string().regex(/^[0-9]+$/),
|
||||||
attachment_id: z.string().regex(/^[0-9]+$/),
|
attachment_id: z.string().regex(/^[0-9]+$/),
|
||||||
file_name: z.string().regex(/^[-A-Za-z0-9_.,]+$/)
|
file_name: z.string().regex(/^[-A-Za-z0-9_.,]+$/)
|
||||||
|
|
@ -51,12 +51,12 @@ function timeUntilExpiry(url) {
|
||||||
*/
|
*/
|
||||||
function defineMediaProxyHandler(domain) {
|
function defineMediaProxyHandler(domain) {
|
||||||
return defineEventHandler(async event => {
|
return defineEventHandler(async event => {
|
||||||
const routerParams = await getValidatedRouterParams(event, schema.router.parse)
|
const params = await getValidatedRouterParams(event, schema.params.parse)
|
||||||
const queryParams = await getValidatedQuery(event, schema.query.parse)
|
const query = await getValidatedQuery(event, schema.query.parse)
|
||||||
|
|
||||||
if (queryParams.spoiler) webUtils.rejectUrlPreviewer(event)
|
if (query.spoiler) webUtils.rejectUrlPreviewer(event)
|
||||||
|
|
||||||
const unsignedHash = hasher.h64(routerParams.attachment_id)
|
const unsignedHash = hasher.h64(params.attachment_id)
|
||||||
const signedHash = unsignedHash - 0x8000000000000000n // shifting down to signed 64-bit range
|
const signedHash = unsignedHash - 0x8000000000000000n // shifting down to signed 64-bit range
|
||||||
|
|
||||||
const row = select("media_proxy", "permitted_hash", {permitted_hash: signedHash}).get()
|
const row = select("media_proxy", "permitted_hash", {permitted_hash: signedHash}).get()
|
||||||
|
|
@ -67,7 +67,7 @@ function defineMediaProxyHandler(domain) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = `https://${domain}/attachments/${routerParams.channel_id}/${routerParams.attachment_id}/${routerParams.file_name}`
|
const url = `https://${domain}/attachments/${params.channel_id}/${params.attachment_id}/${params.file_name}`
|
||||||
let promise = cache.get(url)
|
let promise = cache.get(url)
|
||||||
/** @type {string | undefined} */
|
/** @type {string | undefined} */
|
||||||
let refreshed
|
let refreshed
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue