summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-02-04 14:23:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-02-04 14:23:38 +0900
commit9bde9edcf68430cb98bc08ff74f6804bd56ecf47 (patch)
treee09781a1f26bae331968902a79253820e3a80e4e /packages/frontend/src
parentMerge branch 'develop' (diff)
parent13.3.2 (diff)
downloadmisskey-9bde9edcf68430cb98bc08ff74f6804bd56ecf47.tar.gz
misskey-9bde9edcf68430cb98bc08ff74f6804bd56ecf47.tar.bz2
misskey-9bde9edcf68430cb98bc08ff74f6804bd56ecf47.zip
Merge branch 'develop'
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/MkUrlPreview.vue3
-rw-r--r--packages/frontend/src/components/MkYoutubePlayer.vue3
-rw-r--r--packages/frontend/src/scripts/media-proxy.ts18
3 files changed, 12 insertions, 12 deletions
diff --git a/packages/frontend/src/components/MkUrlPreview.vue b/packages/frontend/src/components/MkUrlPreview.vue
index f7677faf74..62e58e1553 100644
--- a/packages/frontend/src/components/MkUrlPreview.vue
+++ b/packages/frontend/src/components/MkUrlPreview.vue
@@ -1,7 +1,8 @@
<template>
<div v-if="playerEnabled" :class="$style.player" :style="`padding: ${(player.height || 0) / (player.width || 1) * 100}% 0 0`">
<button :class="$style.disablePlayer" :title="i18n.ts.disablePlayer" @click="playerEnabled = false"><i class="ti ti-x"></i></button>
- <iframe :class="$style.playerIframe" :src="player.url + (player.url.match(/\?/) ? '&autoplay=1&auto_play=1' : '?autoplay=1&auto_play=1')" :width="player.width || '100%'" :heigth="player.height || 250" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen/>
+ <iframe v-if="player.url.startsWith('http://') || player.url.startsWith('https://')" :class="$style.playerIframe" :src="player.url + (player.url.match(/\?/) ? '&autoplay=1&auto_play=1' : '?autoplay=1&auto_play=1')" :width="player.width || '100%'" :heigth="player.height || 250" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen/>
+ <span v-else>invalid url</span>
</div>
<div v-else-if="tweetId && tweetExpanded" ref="twitter" :class="$style.twitter">
<iframe ref="tweet" scrolling="no" frameborder="no" :style="{ position: 'relative', width: '100%', height: `${tweetHeight}px` }" :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&amp;hideCard=false&amp;hideThread=false&amp;lang=en&amp;theme=${$store.state.darkMode ? 'dark' : 'light'}&amp;id=${tweetId}`"></iframe>
diff --git a/packages/frontend/src/components/MkYoutubePlayer.vue b/packages/frontend/src/components/MkYoutubePlayer.vue
index 50d38a71bd..460b038838 100644
--- a/packages/frontend/src/components/MkYoutubePlayer.vue
+++ b/packages/frontend/src/components/MkYoutubePlayer.vue
@@ -7,9 +7,10 @@
<div class="poamfof">
<Transition :name="$store.state.animation ? 'fade' : ''" mode="out-in">
- <div v-if="player.url" class="player">
+ <div v-if="player.url && (player.url.startsWith('http://') || player.url.startsWith('https://'))" class="player">
<iframe v-if="!fetching" :src="player.url + (player.url.match(/\?/) ? '&autoplay=1&auto_play=1' : '?autoplay=1&auto_play=1')" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen/>
</div>
+ <span v-else>invalid url</span>
</Transition>
<MkLoading v-if="fetching"/>
<MkError v-else-if="!player.url" @retry="ytFetch()"/>
diff --git a/packages/frontend/src/scripts/media-proxy.ts b/packages/frontend/src/scripts/media-proxy.ts
index bea164e7c8..274e96e0a1 100644
--- a/packages/frontend/src/scripts/media-proxy.ts
+++ b/packages/frontend/src/scripts/media-proxy.ts
@@ -1,8 +1,9 @@
import { query, appendQuery } from '@/scripts/url';
import { url } from '@/config';
+import { instance } from '@/instance';
export function getProxiedImageUrl(imageUrl: string, type?: 'preview'): string {
- if (imageUrl.startsWith(`${url}/proxy/`) || imageUrl.startsWith('/proxy/')) {
+ if (imageUrl.startsWith(instance.mediaProxy + '/') || imageUrl.startsWith('/proxy/')) {
// もう既にproxyっぽそうだったらsearchParams付けるだけ
return appendQuery(imageUrl, query({
fallback: '1',
@@ -10,7 +11,7 @@ export function getProxiedImageUrl(imageUrl: string, type?: 'preview'): string {
}));
}
- return `${url}/proxy/image.webp?${query({
+ return `${instance.mediaProxy}/image.webp?${query({
url: imageUrl,
fallback: '1',
...(type ? { [type]: '1' } : {}),
@@ -25,22 +26,19 @@ export function getProxiedImageUrlNullable(imageUrl: string | null | undefined,
export function getStaticImageUrl(baseUrl: string): string {
const u = baseUrl.startsWith('http') ? new URL(baseUrl) : new URL(baseUrl, url);
- if (u.href.startsWith(`${url}/proxy/`)) {
- // もう既にproxyっぽそうだったらsearchParams付けるだけ
+ if (u.href.startsWith(`${url}/emoji/`)) {
+ // もう既にemojiっぽそうだったらsearchParams付けるだけ
u.searchParams.set('static', '1');
return u.href;
}
- if (u.href.startsWith(`${url}/emoji/`)) {
- // もう既にemojiっぽそうだったらsearchParams付けるだけ
+ if (u.href.startsWith(instance.mediaProxy + '/')) {
+ // もう既にproxyっぽそうだったらsearchParams付けるだけ
u.searchParams.set('static', '1');
return u.href;
}
- // 拡張子がないとキャッシュしてくれないCDNがあるのでダミーの名前を指定する
- const dummy = `${encodeURIComponent(`${u.host}${u.pathname}`)}.webp`;
-
- return `${url}/proxy/${dummy}?${query({
+ return `${instance.mediaProxy}/static.webp?${query({
url: u.href,
static: '1',
})}`;