From 587ab8500abb2d8b0a494dc05952c9919cc7f66f Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Mon, 2 Mar 2026 16:05:12 -0500 Subject: split url into webUrl and localUrl (like mastodon) --- packages/frontend/src/utility/get-embed-code.ts | 6 +++--- packages/frontend/src/utility/get-note-menu.ts | 8 ++++---- packages/frontend/src/utility/get-user-menu.ts | 8 ++++---- .../src/utility/image-frame-renderer/ImageFrameRenderer.ts | 4 ++-- packages/frontend/src/utility/media-proxy.ts | 8 ++++---- packages/frontend/src/utility/popout.ts | 2 +- packages/frontend/src/utility/url-preview.ts | 4 ++-- packages/frontend/src/utility/watermark/WatermarkRenderer.ts | 4 ++-- 8 files changed, 22 insertions(+), 22 deletions(-) (limited to 'packages/frontend/src/utility') diff --git a/packages/frontend/src/utility/get-embed-code.ts b/packages/frontend/src/utility/get-embed-code.ts index 5817d7ece8..4487b74519 100644 --- a/packages/frontend/src/utility/get-embed-code.ts +++ b/packages/frontend/src/utility/get-embed-code.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { defineAsyncComponent } from 'vue'; -import { url } from '@@/js/config.js'; +import { webUrl } from '@@/js/config.js'; import { defaultEmbedParams, embedRouteWithScrollbar } from '@@/js/embed-page.js'; import type { EmbedParams, EmbeddableEntity } from '@@/js/embed-page.js'; import { genId } from '@/utility/id.js'; @@ -54,8 +54,8 @@ export function getEmbedCode(path: string, params?: EmbedParams): string { } const iframeCode = [ - ``, - ``, + ``, + ``, ]; return iframeCode.join('\n'); } diff --git a/packages/frontend/src/utility/get-note-menu.ts b/packages/frontend/src/utility/get-note-menu.ts index 78176970f1..a630d3405a 100644 --- a/packages/frontend/src/utility/get-note-menu.ts +++ b/packages/frontend/src/utility/get-note-menu.ts @@ -4,7 +4,7 @@ */ import * as Misskey from 'misskey-js'; -import { url } from '@@/js/config.js'; +import { webUrl } from '@@/js/config.js'; import { claimAchievement } from './achievements.js'; import type { Ref, ShallowRef } from 'vue'; import type { MenuItem } from '@/types/menu.js'; @@ -140,7 +140,7 @@ export function getAbuseNoteMenu(note: Misskey.entities.Note, text: string): Men icon: 'ti ti-exclamation-circle', text, action: async (): Promise => { - const localUrl = `${url}/notes/${note.id}`; + const localUrl = `${webUrl}/notes/${note.id}`; let noteInfo = ''; if (note.url ?? note.uri != null) noteInfo = `Note: ${note.url ?? note.uri}\n`; noteInfo += `Local Note: ${localUrl}\n`; @@ -159,7 +159,7 @@ export function getCopyNoteLinkMenu(note: Misskey.entities.Note, text: string): icon: 'ti ti-link', text, action: (): void => { - copyToClipboard(`${url}/notes/${note.id}`); + copyToClipboard(`${webUrl}/notes/${note.id}`); }, }; } @@ -279,7 +279,7 @@ export function getNoteMenu(props: { navigator.share({ title: i18n.tsx.noteOf({ user: appearNote.user.name ?? appearNote.user.username }), text: appearNote.text ?? '', - url: `${url}/notes/${appearNote.id}`, + url: `${webUrl}/notes/${appearNote.id}`, }); } diff --git a/packages/frontend/src/utility/get-user-menu.ts b/packages/frontend/src/utility/get-user-menu.ts index 9b2c53360c..fc77ec8e54 100644 --- a/packages/frontend/src/utility/get-user-menu.ts +++ b/packages/frontend/src/utility/get-user-menu.ts @@ -6,7 +6,7 @@ import { toUnicode } from 'punycode.js'; import { defineAsyncComponent, ref, watch } from 'vue'; import * as Misskey from 'misskey-js'; -import { host, url } from '@@/js/config.js'; +import { localHost, webUrl } from '@@/js/config.js'; import type { Router } from '@/router.js'; import type { MenuItem } from '@/types/menu.js'; import { i18n } from '@/i18n.js'; @@ -171,7 +171,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router icon: 'ti ti-at', text: i18n.ts.copyUsername, action: () => { - copyToClipboard(`@${user.username}@${user.host ?? host}`); + copyToClipboard(`@${user.username}@${user.host ?? localHost}`); }, }); @@ -180,7 +180,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router text: i18n.ts.copyProfileUrl, action: () => { const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${toUnicode(user.host)}`; - copyToClipboard(`${url}/${canonical}`); + copyToClipboard(`${webUrl}/${canonical}`); }, }); @@ -188,7 +188,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router icon: 'ti ti-rss', text: i18n.ts.copyRSS, action: () => { - copyToClipboard(`${user.host ?? host}/@${user.username}.atom`); + copyToClipboard(`${user.host ?? localHost}/@${user.username}.atom`); }, }); diff --git a/packages/frontend/src/utility/image-frame-renderer/ImageFrameRenderer.ts b/packages/frontend/src/utility/image-frame-renderer/ImageFrameRenderer.ts index 591a94b855..0a33caf238 100644 --- a/packages/frontend/src/utility/image-frame-renderer/ImageFrameRenderer.ts +++ b/packages/frontend/src/utility/image-frame-renderer/ImageFrameRenderer.ts @@ -4,7 +4,7 @@ */ import QRCodeStyling from 'qr-code-styling'; -import { url } from '@@/js/config.js'; +import { webUrl } from '@@/js/config.js'; import ExifReader from 'exifreader'; import { FN_frame } from './frame.js'; import { ImageCompositor } from '@/lib/ImageCompositor.js'; @@ -159,7 +159,7 @@ export class ImageFrameRenderer { height: labelCanvasCtx.canvas.height, margin: 0, type: 'canvas', - data: `${url}/users/${$i.id}`, + data: `${webUrl}/users/${$i.id}`, //image: $i.avatarUrl, qrOptions: { typeNumber: 0, diff --git a/packages/frontend/src/utility/media-proxy.ts b/packages/frontend/src/utility/media-proxy.ts index 78eba35ead..d93c0448d1 100644 --- a/packages/frontend/src/utility/media-proxy.ts +++ b/packages/frontend/src/utility/media-proxy.ts @@ -4,14 +4,14 @@ */ import { MediaProxy } from '@@/js/media-proxy.js'; -import { url } from '@@/js/config.js'; +import { webUrl } from '@@/js/config.js'; import { instance } from '@/instance.js'; let _mediaProxy: MediaProxy | null = null; export function getProxiedImageUrl(...args: Parameters): string { if (_mediaProxy == null) { - _mediaProxy = new MediaProxy(instance, url); + _mediaProxy = new MediaProxy(instance, webUrl); } return _mediaProxy.getProxiedImageUrl(...args); @@ -19,7 +19,7 @@ export function getProxiedImageUrl(...args: Parameters): string | null { if (_mediaProxy == null) { - _mediaProxy = new MediaProxy(instance, url); + _mediaProxy = new MediaProxy(instance, webUrl); } return _mediaProxy.getProxiedImageUrlNullable(...args); @@ -27,7 +27,7 @@ export function getProxiedImageUrlNullable(...args: Parameters): string { if (_mediaProxy == null) { - _mediaProxy = new MediaProxy(instance, url); + _mediaProxy = new MediaProxy(instance, webUrl); } return _mediaProxy.getStaticImageUrl(...args); diff --git a/packages/frontend/src/utility/popout.ts b/packages/frontend/src/utility/popout.ts index 7e0222c459..cf5de9e22f 100644 --- a/packages/frontend/src/utility/popout.ts +++ b/packages/frontend/src/utility/popout.ts @@ -7,7 +7,7 @@ import { appendQuery } from '@@/js/url.js'; import * as config from '@@/js/config.js'; export function popout(path: string, w?: HTMLElement) { - let url = path.startsWith('http://') || path.startsWith('https://') ? path : config.url + path; + let url = path.startsWith('http://') || path.startsWith('https://') ? path : config.webUrl + path; url = appendQuery(url, 'zen'); if (w) { const position = w.getBoundingClientRect(); diff --git a/packages/frontend/src/utility/url-preview.ts b/packages/frontend/src/utility/url-preview.ts index 5ed809a5af..11936f7ae6 100644 --- a/packages/frontend/src/utility/url-preview.ts +++ b/packages/frontend/src/utility/url-preview.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { computed } from 'vue'; -import { hostname } from '@@/js/config.js'; +import { webHost } from '@@/js/config.js'; import { instance } from '@/instance.js'; import { prefer } from '@/preferences.js'; @@ -18,7 +18,7 @@ export function transformPlayerUrl(url: string): string { if (urlObj.hostname === 'player.twitch.tv' || urlObj.hostname === 'clips.twitch.tv') { // TwitchはCSPの制約あり // https://dev.twitch.tv/docs/embed/video-and-clips/ - urlParams.set('parent', hostname); + urlParams.set('parent', webHost); urlParams.set('allowfullscreen', ''); urlParams.set('autoplay', 'true'); } else { diff --git a/packages/frontend/src/utility/watermark/WatermarkRenderer.ts b/packages/frontend/src/utility/watermark/WatermarkRenderer.ts index 32341a9e10..52460f0d58 100644 --- a/packages/frontend/src/utility/watermark/WatermarkRenderer.ts +++ b/packages/frontend/src/utility/watermark/WatermarkRenderer.ts @@ -4,7 +4,7 @@ */ import QRCodeStyling from 'qr-code-styling'; -import { url, host } from '@@/js/config.js'; +import { webUrl } from '@@/js/config.js'; import { getProxiedImageUrl } from '../media-proxy.js'; import { fn as fn_watermark } from './watermark.js'; import { fn as fn_stripe } from '@/utility/image-compositor-functions/stripe.js'; @@ -300,7 +300,7 @@ async function createTextureFromQr(options: { data: string | null }, resolution height: resolution, margin: 42, type: 'canvas', - data: options.data == null || options.data === '' ? `${url}/users/${$i.id}` : options.data, + data: options.data == null || options.data === '' ? `${webUrl}/users/${$i.id}` : options.data, image: $i.avatarUrl, qrOptions: { typeNumber: 0, -- cgit v1.2.3-freya