122 lines
2.9 KiB
TypeScript
122 lines
2.9 KiB
TypeScript
/* Proxy to bypass CORS (tauon does not pass these headers) */
|
|
|
|
import express from "express"
|
|
import cors from "cors"
|
|
import compression from "compression"
|
|
|
|
const app = express()
|
|
app.use(cors())
|
|
app.use(compression())
|
|
|
|
app.get("/version", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string") {
|
|
return res.status(400).send("No host")
|
|
}
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
fetch(`http://${host}/api1/version`)
|
|
.then(fetchRes => fetchRes.json())
|
|
.then(fetchRes => {
|
|
return res.status(200).send(fetchRes)
|
|
})
|
|
.catch((err) => {
|
|
return res.status(500).send(err)
|
|
})
|
|
|
|
})
|
|
|
|
app.get("/status", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string") {
|
|
return res.status(400).send("No host")
|
|
}
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
fetch(`http://${host}/api1/status`)
|
|
.then(fetchRes => fetchRes.json())
|
|
.then(fetchRes => {
|
|
return res.status(200).send(fetchRes)
|
|
})
|
|
.catch((err) => {
|
|
return res.status(500).send(err)
|
|
})
|
|
})
|
|
|
|
app.get("/pic", (req, res) => {
|
|
let host = req.query.host
|
|
const size = req.query.size
|
|
const id = req.query.id
|
|
|
|
|
|
if (typeof host !== "string" || !size || !id)
|
|
return res.status(400).send("Bad parameters")
|
|
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
|
|
fetch(`http://${host}/api1/pic/${size}/${id}`)
|
|
.then(raw => raw.arrayBuffer())
|
|
.then(arrBuff => Buffer.from(arrBuff))
|
|
.then(buff => {
|
|
return res.send(buff)
|
|
})
|
|
})
|
|
|
|
app.get("/play", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string")
|
|
return res.status(400).send("Bad host")
|
|
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
|
|
fetch(`http://${host}/api1/play`)
|
|
return res.status(200).end()
|
|
})
|
|
|
|
app.get("/pause", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string")
|
|
return res.status(400).send("Bad host")
|
|
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
|
|
fetch(`http://${host}/api1/pause`)
|
|
return res.status(200).end()
|
|
})
|
|
|
|
app.get("/next", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string")
|
|
return res.status(400).send("Bad host")
|
|
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
|
|
fetch(`http://${host}/api1/next`)
|
|
return res.status(200).end()
|
|
})
|
|
|
|
app.get("/back", (req, res) => {
|
|
let host = req.query.host
|
|
if (typeof host !== "string")
|
|
return res.status(400).send("Bad host")
|
|
|
|
if (!host.includes(":")) {
|
|
host = host + ":7814"
|
|
}
|
|
|
|
fetch(`http://${host}/api1/back`)
|
|
return res.status(200).end()
|
|
})
|
|
|
|
|
|
app.listen(7815, () => console.log("MuonRC Proxy listening on 7815")) |