Compare commits
2 Commits
720640b054
...
fda3e02823
Author | SHA1 | Date | |
---|---|---|---|
fda3e02823 | |||
41b122de60 |
25
app.js
25
app.js
@ -26,15 +26,10 @@ router.get("/search", async ctx => {
|
|||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
thumbnails: stringToBoolean(ctx.query.thumbnails),
|
thumbnails: stringToBoolean(ctx.query.thumbnails),
|
||||||
icons: stringToBoolean(ctx.query.icons),
|
icons: stringToBoolean(ctx.query.icons)
|
||||||
ascii: stringToBoolean(ctx.query.ascii)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ctx.body = await cachedVRCYoutubeSearch(ctx.query.pool, query, options);
|
ctx.body = await cachedVRCYoutubeSearch(ctx.query.pool, query, options);
|
||||||
|
|
||||||
if (options.ascii) {
|
|
||||||
ctx.body = JSON.stringify(ctx.body).replace(/[\u007F-\uFFFF]/g, chr => "\\u" + ("0000" + chr.charCodeAt(0).toString(16)).slice(-4));
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -80,5 +75,23 @@ router.get("/", ctx => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// work around vrchat json parser bug https://feedback.vrchat.com/udon/p/braces-inside-strings-in-vrcjson-can-fail-to-deserialize
|
||||||
|
app.use(async (ctx, next) => {
|
||||||
|
await next();
|
||||||
|
if (ctx.type != "application/json") return;
|
||||||
|
ctx.body = structuredClone(ctx.body);
|
||||||
|
(function iterateObject(obj) {
|
||||||
|
for (var key in obj) {
|
||||||
|
if (typeof obj[key] == "string") {
|
||||||
|
obj[key] = obj[key].replace(/[\[\]{}]/g, chr => "\\u" + chr.charCodeAt(0).toString(16).padStart(4, '0'));
|
||||||
|
} else if (typeof obj[key] == "object") {
|
||||||
|
iterateObject(obj[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})(ctx.body);
|
||||||
|
ctx.body = JSON.stringify(ctx.body).replaceAll("\\\\u", "\\u");
|
||||||
|
ctx.type = "json";
|
||||||
|
});
|
||||||
|
|
||||||
app.use(router.routes());
|
app.use(router.routes());
|
||||||
app.use(router.allowedMethods());
|
app.use(router.allowedMethods());
|
||||||
|
Loading…
Reference in New Issue
Block a user