discord_embed: Fix encodeURIComponent on url stuff
All checks were successful
continuous-integration/appveyor/branch AppVeyor build succeeded
All checks were successful
continuous-integration/appveyor/branch AppVeyor build succeeded
discord_embed: Create a test redirect
This commit is contained in:
parent
3a60332bdf
commit
17e266e89a
5 changed files with 47 additions and 16 deletions
|
@ -6,7 +6,7 @@ export default class StaticRoutes {
|
|||
}
|
||||
|
||||
register(server) {
|
||||
server.flaska.get('/health', this.health.bind(this))
|
||||
server.flaska.get('/api/health', this.health.bind(this))
|
||||
}
|
||||
|
||||
health(ctx) {
|
||||
|
|
|
@ -16,6 +16,40 @@ export default class IndexPost {
|
|||
server.flaska.post('/', [
|
||||
server.formidable({ maxFileSize: 8 * 1024 * 1024, }),
|
||||
], this.createNewLink.bind(this))
|
||||
server.flaska.get('/video/:id', this.videoRedirect.bind(this))
|
||||
}
|
||||
|
||||
async videoRedirect(ctx) {
|
||||
try {
|
||||
let id = AlphabeticID.decode(ctx.params.id)
|
||||
let videoLink = null
|
||||
if (id) {
|
||||
let res = await ctx.db.safeCallProc('discord_embed.link_get', [id - 3843])
|
||||
if (res.first.length) {
|
||||
videoLink = res.first[0].video_link
|
||||
} else {
|
||||
ctx.status = 404
|
||||
}
|
||||
}
|
||||
|
||||
if (videoLink) {
|
||||
ctx.status = 302
|
||||
ctx.headers['Location'] = videoLink
|
||||
ctx.type = 'application/octet-stream'
|
||||
ctx.body = `
|
||||
Redirecting
|
||||
<a href="${videoLink}">Click here if it doesn't redirect</a>
|
||||
`
|
||||
return
|
||||
} else {
|
||||
ctx.status = 404
|
||||
ctx.state.error = 'Video not found.'
|
||||
}
|
||||
} catch (err) {
|
||||
ctx.log.error(err, 'Unable to fetch resource ' + ctx.url.slice(1))
|
||||
ctx.state.error = 'Unknown error while fetching link.'
|
||||
}
|
||||
return this.serve.serveIndex(ctx)
|
||||
}
|
||||
|
||||
hasErrors(ctx, hasMedia) {
|
||||
|
@ -96,16 +130,13 @@ export default class IndexPost {
|
|||
|
||||
if (!error) {
|
||||
try {
|
||||
let id = 'health'
|
||||
while (id === 'health') {
|
||||
let params = [
|
||||
ctx.state.video,
|
||||
ctx.state.image,
|
||||
ctx.req.ip,
|
||||
]
|
||||
let res = await ctx.db.safeCallProc('discord_embed.link_add', params)
|
||||
id = AlphabeticID.encode(res.first[0].id + 3843)
|
||||
}
|
||||
let params = [
|
||||
ctx.state.video,
|
||||
ctx.state.image,
|
||||
ctx.req.ip,
|
||||
]
|
||||
let res = await ctx.db.safeCallProc('discord_embed.link_add', params)
|
||||
id = AlphabeticID.encode(res.first[0].id + 3843)
|
||||
redirect = `${this.frontend}/${id}`
|
||||
}
|
||||
catch (err) {
|
||||
|
|
|
@ -37,8 +37,8 @@ export default class ServeHandler extends Parent {
|
|||
if (id) {
|
||||
let res = await ctx.db.safeCallProc('discord_embed.link_get', [id - 3843])
|
||||
if (res.first.length) {
|
||||
videoLink = res.first[0].video_link
|
||||
imageLink = res.first[0].image_link
|
||||
videoLink = encodeURIComponent(res.first[0].video_link)
|
||||
imageLink = encodeURIComponent(res.first[0].image_link)
|
||||
} else {
|
||||
ctx.status = 404
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "discord_embed",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"port": 4120,
|
||||
"description": "AV1 discord server embed helper",
|
||||
"main": "index.js",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Discord Embedder from AV1 server 1.0.4</title>
|
||||
<title>Discord Embedder from AV1 server 1.0.5</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{{ if (imageLink) { }}
|
||||
|
@ -226,7 +226,7 @@ video {
|
|||
if (isExample) {
|
||||
generateurl.innerText = baseSite + '?v=<video link>&i=<image link>';
|
||||
} else {
|
||||
generateurl.innerText = baseSite + '?v=' + encodeURI(inputVideo.value) + '&i=' + encodeURI(inputImage.value);
|
||||
generateurl.innerText = baseSite + '?v=' + encodeURIComponent(inputVideo.value) + '&i=' + encodeURIComponent(inputImage.value);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue