embed.jsをサーバーから提供

This commit is contained in:
kakkokari-gtyih 2024-06-25 20:03:21 +09:00
parent 1b6216df51
commit e88fc369d9
3 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: MIT
*/
//@ts-check
(() => {
/** @type {NodeListOf<HTMLIFrameElement>} */
const els = document.querySelectorAll('iframe[data-misskey-embed-id]');
window.addEventListener('message', function (event) {
els.forEach((el) => {
if (event.source !== el.contentWindow) {
return;
}
const id = el.dataset.misskeyEmbedId;
if (event.data.type === 'misskey:embed:ready') {
el.contentWindow?.postMessage({
type: 'misskey:embedParent:registerIframeId',
payload: {
iframeId: id,
}
}, '*');
}
if (event.data.type === 'misskey:embed:changeHeight' && event.data.iframeId === id) {
el.style.height = event.data.payload.height + 'px';
}
});
});
})();

View File

@ -425,6 +425,13 @@ export class ClientServerService {
// Manifest // Manifest
fastify.get('/manifest.json', async (request, reply) => await this.manifestHandler(reply)); fastify.get('/manifest.json', async (request, reply) => await this.manifestHandler(reply));
// Embed Javascript
fastify.get('/embed.js', async (request, reply) => {
return await reply.sendFile('/embed.js', staticAssets, {
maxAge: ms('1 day'),
});
});
fastify.get('/robots.txt', async (request, reply) => { fastify.get('/robots.txt', async (request, reply) => {
return await reply.sendFile('/robots.txt', staticAssets); return await reply.sendFile('/robots.txt', staticAssets);
}); });

View File

@ -40,6 +40,8 @@ const devConfig = {
ws: true, ws: true,
}, },
'/favicon.ico': httpUrl, '/favicon.ico': httpUrl,
'/robots.txt': httpUrl,
'/embed.js': httpUrl,
'/identicon': { '/identicon': {
target: httpUrl, target: httpUrl,
rewrite(path) { rewrite(path) {