diff options
Diffstat (limited to 'packages/backend/src/server/web')
16 files changed, 28 insertions, 24 deletions
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts index 24bc619e79..ea567a53f2 100644 --- a/packages/backend/src/server/web/ClientServerService.ts +++ b/packages/backend/src/server/web/ClientServerService.ts @@ -156,10 +156,10 @@ export class ClientServerService { let manifest = { // 空文字列の場合右辺を使いたいため // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - 'short_name': this.meta.shortName || this.meta.name || this.config.host, + 'short_name': this.meta.shortName || this.meta.name || this.config.webHost, // 空文字列の場合右辺を使いたいため // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - 'name': this.meta.name || this.config.host, + 'name': this.meta.name || this.config.webHost, 'start_url': '/', 'display': 'standalone', 'background_color': '#313a42', @@ -213,7 +213,7 @@ export class ClientServerService { @bindThis public createServer(fastify: FastifyInstance, options: FastifyPluginOptions, done: (err?: Error) => void) { - const configUrl = new URL(this.config.url); + const configUrl = new URL(this.config.webUrl); fastify.addHook('onRequest', (request, reply, done) => { // クリックジャッキング防止のためiFrameの中に入れられないようにする @@ -407,8 +407,8 @@ export class ClientServerService { content += `<ShortName>${name}</ShortName>`; content += `<Description>${name} Search</Description>`; content += '<InputEncoding>UTF-8</InputEncoding>'; - content += `<Image width="16" height="16" type="image/x-icon">${this.config.url}/favicon.ico</Image>`; - content += `<Url type="text/html" template="${this.config.url}/search?q={searchTerms}"/>`; + content += `<Image width="16" height="16" type="image/x-icon">${this.config.webUrl}/favicon.ico</Image>`; + content += `<Url type="text/html" template="${this.config.webUrl}/search?q={searchTerms}"/>`; content += '</OpenSearchDescription>'; reply.header('Content-Type', 'application/opensearchdescription+xml'); diff --git a/packages/backend/src/server/web/FeedService.ts b/packages/backend/src/server/web/FeedService.ts index eae7645321..9c386d3a4f 100644 --- a/packages/backend/src/server/web/FeedService.ts +++ b/packages/backend/src/server/web/FeedService.ts @@ -42,7 +42,7 @@ export class FeedService { @bindThis public async packFeed(user: MiUser) { const author = { - link: `${this.config.url}/@${user.username}`, + link: `${this.config.webUrl}/@${user.username}`, name: user.name ?? user.username, }; @@ -60,7 +60,7 @@ export class FeedService { const feed = new Feed({ id: author.link, - title: `${author.name} (@${user.username}@${this.config.host})`, + title: `${author.name} (@${user.username}@${this.config.localHost})`, updated: notes.length !== 0 ? this.idService.parse(notes[0].id).date : undefined, generator: 'Misskey', description: `${user.notesCount} Notes, ${profile.followingVisibility === 'public' ? user.followingCount : '?'} Following, ${profile.followersVisibility === 'public' ? user.followersCount : '?'} Followers${profile.description ? ` · ${profile.description}` : ''}`, @@ -83,7 +83,7 @@ export class FeedService { feed.addItem({ title: `New note by ${author.name}`, - link: `${this.config.url}/notes/${note.id}`, + link: `${this.config.webUrl}/notes/${note.id}`, date: this.idService.parse(note.id).date, description: note.cw ?? undefined, content: text ? this.mfmService.toHtml(mfmParse(text), JSON.parse(note.mentionedRemoteUsers)) ?? undefined : undefined, diff --git a/packages/backend/src/server/web/HtmlTemplateService.ts b/packages/backend/src/server/web/HtmlTemplateService.ts index 8ff985530d..ffb8f7df9f 100644 --- a/packages/backend/src/server/web/HtmlTemplateService.ts +++ b/packages/backend/src/server/web/HtmlTemplateService.ts @@ -86,7 +86,8 @@ export class HtmlTemplateService { serverErrorImageUrl: this.meta.serverErrorImageUrl ?? 'https://xn--931a.moe/assets/error.jpg', infoImageUrl: this.meta.infoImageUrl ?? 'https://xn--931a.moe/assets/info.jpg', notFoundImageUrl: this.meta.notFoundImageUrl ?? 'https://xn--931a.moe/assets/not-found.jpg', - instanceUrl: this.config.url, + instanceUrl: this.config.webUrl, + localUrl: this.config.localUrl, metaJson: htmlSafeJsonStringify(await this.metaEntityService.packDetailed(this.meta)), now: Date.now(), federationEnabled: this.meta.federation !== 'none', diff --git a/packages/backend/src/server/web/views/_.ts b/packages/backend/src/server/web/views/_.ts index ac7418f362..7476c218a9 100644 --- a/packages/backend/src/server/web/views/_.ts +++ b/packages/backend/src/server/web/views/_.ts @@ -34,6 +34,7 @@ export type CommonData = MinimumCommonData & { infoImageUrl: string; notFoundImageUrl: string; instanceUrl: string; + localUrl: string; now: number; federationEnabled: boolean; frontendBootloaderJs: string | null; diff --git a/packages/backend/src/server/web/views/announcement.tsx b/packages/backend/src/server/web/views/announcement.tsx index bc1c808177..70105732a5 100644 --- a/packages/backend/src/server/web/views/announcement.tsx +++ b/packages/backend/src/server/web/views/announcement.tsx @@ -18,7 +18,7 @@ export function AnnouncementPage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={props.announcement.title} /> <meta property="og:description" content={description} /> - <meta property="og:url" content={`${props.config.url}/announcements/${props.announcement.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/announcements/${props.announcement.id}`} /> {props.announcement.imageUrl ? ( <> <meta property="og:image" content={props.announcement.imageUrl} /> diff --git a/packages/backend/src/server/web/views/base-embed.tsx b/packages/backend/src/server/web/views/base-embed.tsx index 011b66592e..6de70152b6 100644 --- a/packages/backend/src/server/web/views/base-embed.tsx +++ b/packages/backend/src/server/web/views/base-embed.tsx @@ -41,6 +41,7 @@ export function BaseEmbed(props: PropsWithChildren<CommonProps<{ <meta name="theme-color-orig" content={props.themeColor ?? '#86b300'} /> <meta property="og:site_name" content={props.instanceName || 'Misskey'} /> <meta property="instance_url" content={props.instanceUrl} /> + <meta property="local_url" content={props.localUrl} /> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover" /> <meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no" /> <link rel="icon" href={props.icon ?? '/favicon.ico'} /> diff --git a/packages/backend/src/server/web/views/base.tsx b/packages/backend/src/server/web/views/base.tsx index 6fa3395fb8..59dcc27f1e 100644 --- a/packages/backend/src/server/web/views/base.tsx +++ b/packages/backend/src/server/web/views/base.tsx @@ -43,12 +43,13 @@ export function Layout(props: PropsWithChildren<CommonProps<{ <meta name="theme-color-orig" content={props.themeColor ?? '#86b300'} /> <meta property="og:site_name" content={props.instanceName || 'Misskey'} /> <meta property="instance_url" content={props.instanceUrl} /> + <meta property="local_url" content={props.localUrl} /> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover" /> <meta name="format-detection" content="telephone=no,date=no,address=no,email=no,url=no" /> <link rel="icon" href={props.icon || '/favicon.ico'} /> <link rel="apple-touch-icon" href={props.appleTouchIcon || '/apple-touch-icon.png'} /> <link rel="manifest" href="/manifest.json" /> - <link rel="search" type="application/opensearchdescription+xml" title={props.title || 'Misskey'} href={`${props.config.url}/opensearch.xml`} /> + <link rel="search" type="application/opensearchdescription+xml" title={props.title || 'Misskey'} href={`${props.config.webUrl}/opensearch.xml`} /> {props.serverErrorImageUrl != null ? <link rel="prefetch" as="image" href={props.serverErrorImageUrl} /> : null} {props.infoImageUrl != null ? <link rel="prefetch" as="image" href={props.infoImageUrl} /> : null} {props.notFoundImageUrl != null ? <link rel="prefetch" as="image" href={props.notFoundImageUrl} /> : null} diff --git a/packages/backend/src/server/web/views/channel.tsx b/packages/backend/src/server/web/views/channel.tsx index 7d8123ea85..9bbf2c6a15 100644 --- a/packages/backend/src/server/web/views/channel.tsx +++ b/packages/backend/src/server/web/views/channel.tsx @@ -17,7 +17,7 @@ export function ChannelPage(props: CommonProps<{ <meta property="og:type" content="website" /> <meta property="og:title" content={props.channel.name} /> {props.channel.description != null ? <meta property="og:description" content={props.channel.description} /> : null} - <meta property="og:url" content={`${props.config.url}/channels/${props.channel.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/channels/${props.channel.id}`} /> {props.channel.bannerUrl ? ( <> <meta property="og:image" content={props.channel.bannerUrl} /> diff --git a/packages/backend/src/server/web/views/clip.tsx b/packages/backend/src/server/web/views/clip.tsx index c3cc505e35..208ed176d8 100644 --- a/packages/backend/src/server/web/views/clip.tsx +++ b/packages/backend/src/server/web/views/clip.tsx @@ -18,7 +18,7 @@ export function ClipPage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={props.clip.name} /> {props.clip.description != null ? <meta property="og:description" content={props.clip.description} /> : null} - <meta property="og:url" content={`${props.config.url}/clips/${props.clip.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/clips/${props.clip.id}`} /> {props.clip.user.avatarUrl ? ( <> <meta property="og:image" content={props.clip.user.avatarUrl} /> diff --git a/packages/backend/src/server/web/views/flash.tsx b/packages/backend/src/server/web/views/flash.tsx index 25a6b2c0ae..6942bcd5e0 100644 --- a/packages/backend/src/server/web/views/flash.tsx +++ b/packages/backend/src/server/web/views/flash.tsx @@ -18,7 +18,7 @@ export function FlashPage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={props.flash.title} /> <meta property="og:description" content={props.flash.summary} /> - <meta property="og:url" content={`${props.config.url}/play/${props.flash.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/play/${props.flash.id}`} /> {props.flash.user.avatarUrl ? ( <> <meta property="og:image" content={props.flash.user.avatarUrl} /> diff --git a/packages/backend/src/server/web/views/gallery-post.tsx b/packages/backend/src/server/web/views/gallery-post.tsx index 2bec2de930..3528dc9a20 100644 --- a/packages/backend/src/server/web/views/gallery-post.tsx +++ b/packages/backend/src/server/web/views/gallery-post.tsx @@ -18,7 +18,7 @@ export function GalleryPostPage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={props.galleryPost.title} /> {props.galleryPost.description != null ? <meta property="og:description" content={props.galleryPost.description} /> : null} - <meta property="og:url" content={`${props.config.url}/gallery/${props.galleryPost.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/gallery/${props.galleryPost.id}`} /> {props.galleryPost.isSensitive && props.galleryPost.user.avatarUrl ? ( <> <meta property="og:image" content={props.galleryPost.user.avatarUrl} /> diff --git a/packages/backend/src/server/web/views/info-card.tsx b/packages/backend/src/server/web/views/info-card.tsx index 27be4c69e8..bcc28a5110 100644 --- a/packages/backend/src/server/web/views/info-card.tsx +++ b/packages/backend/src/server/web/views/info-card.tsx @@ -21,13 +21,13 @@ export function InfoCardPage(props: CommonPropsMinimum<{ <meta charset="UTF-8" /> <meta name="application-name" content="Misskey" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title safe>{props.meta.name ?? props.config.url}</title> + <title safe>{props.meta.name ?? props.config.webUrl}</title> <link rel="stylesheet" href="/static-assets/misc/info-card.css" /> </head> <body> - <a id="a" href={props.config.url} target="_blank" rel="noopener noreferrer"> + <a id="a" href={props.config.webUrl} target="_blank" rel="noopener noreferrer"> <header id="banner" style={props.meta.bannerUrl != null ? `background-image: url(${props.meta.bannerUrl});` : ''}> - <div id="title" safe>{props.meta.name ?? props.config.url}</div> + <div id="title" safe>{props.meta.name ?? props.config.webUrl}</div> </header> </a> <div id="content"> diff --git a/packages/backend/src/server/web/views/note.tsx b/packages/backend/src/server/web/views/note.tsx index 803c3d2537..85657eb1ed 100644 --- a/packages/backend/src/server/web/views/note.tsx +++ b/packages/backend/src/server/web/views/note.tsx @@ -26,7 +26,7 @@ export function NotePage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={title} /> <meta property="og:description" content={summary} /> - <meta property="og:url" content={`${props.config.url}/notes/${props.note.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/notes/${props.note.id}`} /> {videos.map(video => ( <> <meta property="og:video:url" content={video.url} /> @@ -74,7 +74,7 @@ export function NotePage(props: CommonProps<{ {props.federationEnabled ? ( <> - {props.note.user.host == null ? <link rel="alternate" type="application/activity+json" href={`${props.config.url}/notes/${props.note.id}`} /> : null} + {props.note.user.host == null ? <link rel="alternate" type="application/activity+json" href={`${props.config.webUrl}/notes/${props.note.id}`} /> : null} {props.note.uri != null ? <link rel="alternate" type="application/activity+json" href={props.note.uri} /> : null} </> ) : null} diff --git a/packages/backend/src/server/web/views/page.tsx b/packages/backend/src/server/web/views/page.tsx index d0484612df..f523173a49 100644 --- a/packages/backend/src/server/web/views/page.tsx +++ b/packages/backend/src/server/web/views/page.tsx @@ -18,7 +18,7 @@ export function PagePage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={props.page.title} /> {props.page.summary != null ? <meta property="og:description" content={props.page.summary} /> : null} - <meta property="og:url" content={`${props.config.url}/pages/${props.page.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/pages/${props.page.id}`} /> {props.page.eyeCatchingImage != null ? ( <> <meta property="og:image" content={props.page.eyeCatchingImage.thumbnailUrl ?? props.page.eyeCatchingImage.url} /> diff --git a/packages/backend/src/server/web/views/reversi-game.tsx b/packages/backend/src/server/web/views/reversi-game.tsx index 22609311fd..d969b47575 100644 --- a/packages/backend/src/server/web/views/reversi-game.tsx +++ b/packages/backend/src/server/web/views/reversi-game.tsx @@ -19,7 +19,7 @@ export function ReversiGamePage(props: CommonProps<{ <meta property="og:type" content="article" /> <meta property="og:title" content={title} /> <meta property="og:description" content={description} /> - <meta property="og:url" content={`${props.config.url}/reversi/g/${props.reversiGame.id}`} /> + <meta property="og:url" content={`${props.config.webUrl}/reversi/g/${props.reversiGame.id}`} /> <meta property="twitter:card" content="summary" /> </> ); diff --git a/packages/backend/src/server/web/views/user.tsx b/packages/backend/src/server/web/views/user.tsx index 76c2633ab9..023af2fdd0 100644 --- a/packages/backend/src/server/web/views/user.tsx +++ b/packages/backend/src/server/web/views/user.tsx @@ -26,7 +26,7 @@ export function UserPage(props: CommonProps<{ <meta property="og:type" content="blog" /> <meta property="og:title" content={title} /> {props.user.description != null ? <meta property="og:description" content={props.user.description} /> : null} - <meta property="og:url" content={`${props.config.url}/@${props.user.username}`} /> + <meta property="og:url" content={`${props.config.webUrl}/@${props.user.username}`} /> <meta property="og:image" content={props.user.avatarUrl} /> <meta property="twitter:card" content="summary" /> </> @@ -48,7 +48,7 @@ export function UserPage(props: CommonProps<{ {props.sub == null && props.federationEnabled ? ( <> - {props.user.host == null ? <link rel="alternate" type="application/activity+json" href={`${props.config.url}/users/${props.user.id}`} /> : null} + {props.user.host == null ? <link rel="alternate" type="application/activity+json" href={`${props.config.webUrl}/users/${props.user.id}`} /> : null} {props.user.uri != null ? <link rel="alternate" type="application/activity+json" href={props.user.uri} /> : null} {props.profile.url != null ? <link rel="alternate" type="text/html" href={props.profile.url} /> : null} </> |