fix(frontend/MkUrlPreview): summalyがエラーになった際の挙動を修正

This commit is contained in:
tamaina 2023-05-17 20:00:28 +00:00
parent 45263f4cd0
commit dd60f1a533
3 changed files with 25 additions and 7 deletions

View file

@ -21,6 +21,7 @@
### Client ### Client
- 開発者モードを追加 - 開発者モードを追加
- AiScriptを0.13.3に更新 - AiScriptを0.13.3に更新
- Fix: URLプレビューで情報が取得できなかった際の挙動を修正
## 13.12.2 ## 13.12.2

View file

@ -1048,6 +1048,7 @@ preventAiLearning: "生成AIによる学習を拒否"
preventAiLearningDescription: "外部の文章生成AIや画像生成AIに対して、投稿したートや画像などのコンテンツを学習の対象にしないように要求します。これはnoaiフラグをHTMLレスポンスに含めることによって実現されますが、この要求に従うかはそのAI次第であるため、学習を完全に防止するものではありません。" preventAiLearningDescription: "外部の文章生成AIや画像生成AIに対して、投稿したートや画像などのコンテンツを学習の対象にしないように要求します。これはnoaiフラグをHTMLレスポンスに含めることによって実現されますが、この要求に従うかはそのAI次第であるため、学習を完全に防止するものではありません。"
options: "オプション" options: "オプション"
specifyUser: "ユーザー指定" specifyUser: "ユーザー指定"
failedToPreviewUrl: "プレビューできません"
_initialAccountSetting: _initialAccountSetting:
accountCreated: "アカウントの作成が完了しました!" accountCreated: "アカウントの作成が完了しました!"

View file

@ -41,14 +41,14 @@
<h1 v-else-if="fetching" :class="$style.title"><MkEllipsis/></h1> <h1 v-else-if="fetching" :class="$style.title"><MkEllipsis/></h1>
<h1 v-else :class="$style.title" :title="title ?? undefined">{{ title }}</h1> <h1 v-else :class="$style.title" :title="title ?? undefined">{{ title }}</h1>
</header> </header>
<p v-if="unknownUrl" :class="$style.text">{{ i18n.ts.cannotLoad }}</p> <p v-if="unknownUrl" :class="$style.text">{{ i18n.ts.failedToPreviewUrl }}</p>
<p v-else-if="fetching" :class="$style.text"><MkEllipsis/></p> <p v-else-if="fetching" :class="$style.text"><MkEllipsis/></p>
<p v-else-if="description" :class="$style.text" :title="description">{{ description.length > 85 ? description.slice(0, 85) + '…' : description }}</p> <p v-else-if="description" :class="$style.text" :title="description">{{ description.length > 85 ? description.slice(0, 85) + '…' : description }}</p>
<footer :class="$style.footer"> <footer :class="$style.footer">
<img v-if="icon" :class="$style.siteIcon" :src="icon"/> <img v-if="icon" :class="$style.siteIcon" :src="icon"/>
<p v-if="unknownUrl" :class="$style.siteName">?</p> <p v-if="unknownUrl" :class="$style.siteName">{{ requestUrl.host }}</p>
<p v-else-if="fetching" :class="$style.siteName"><MkEllipsis/></p> <p v-else-if="fetching" :class="$style.siteName"><MkEllipsis/></p>
<p v-else :class="$style.siteName" :title="sitename ?? undefined">{{ sitename }}</p> <p v-else :class="$style.siteName" :title="sitename ?? requestUrl.host">{{ sitename ?? requestUrl.host }}</p>
</footer> </footer>
</article> </article>
</component> </component>
@ -128,17 +128,33 @@ if (requestUrl.hostname === 'music.youtube.com' && requestUrl.pathname.match('^/
requestUrl.hash = ''; requestUrl.hash = '';
window.fetch(`/url?url=${encodeURIComponent(requestUrl.href)}&lang=${versatileLang}`).then(res => { window.fetch(`/url?url=${encodeURIComponent(requestUrl.href)}&lang=${versatileLang}`)
res.json().then((info: SummalyResult) => { .then(res => {
if (!res.ok) {
fetching = false;
unknownUrl = true;
return;
}
return res.json();
})
.then((info: SummalyResult) => {
if (info.url == null) {
fetching = false;
unknownUrl = true;
return;
}
fetching = false;
unknownUrl = false;
title = info.title; title = info.title;
description = info.description; description = info.description;
thumbnail = info.thumbnail; thumbnail = info.thumbnail;
icon = info.icon; icon = info.icon;
sitename = info.sitename; sitename = info.sitename;
fetching = false;
player = info.player; player = info.player;
}); });
});
function adjustTweetHeight(message: any) { function adjustTweetHeight(message: any) {
if (message.origin !== 'https://platform.twitter.com') return; if (message.origin !== 'https://platform.twitter.com') return;