カスタム絵文字をproxyに通すように (#7526)
This commit is contained in:
parent
45a5fc8cf9
commit
d789d59cf6
2 changed files with 11 additions and 1 deletions
|
@ -3,6 +3,11 @@ import * as url from '../../prelude/url';
|
|||
|
||||
export function getStaticImageUrl(baseUrl: string): string {
|
||||
const u = new URL(baseUrl);
|
||||
if (u.href.startsWith(`${instanceUrl}/proxy/`)) {
|
||||
// もう既にproxyっぽそうだったらsearchParams付けるだけ
|
||||
u.searchParams.set('static', '1');
|
||||
return u.href;
|
||||
}
|
||||
const dummy = `${u.host}${u.pathname}`; // 拡張子がないとキャッシュしてくれないCDNがあるので
|
||||
return `${instanceUrl}/proxy/${dummy}?${url.query({
|
||||
url: u.href,
|
||||
|
|
|
@ -5,6 +5,8 @@ import { Note } from '../models/entities/note';
|
|||
import { Cache } from './cache';
|
||||
import { isSelfHost, toPunyNullable } from './convert-host';
|
||||
import { decodeReaction } from './reaction-lib';
|
||||
import config from '@/config';
|
||||
import { query } from '@/prelude/url';
|
||||
|
||||
const cache = new Cache<Emoji | null>(1000 * 60 * 60 * 12);
|
||||
|
||||
|
@ -59,9 +61,12 @@ export async function populateEmoji(emojiName: string, noteUserHost: string | nu
|
|||
|
||||
if (emoji == null) return null;
|
||||
|
||||
const isLocal = emojiName.endsWith('@.');
|
||||
const url = isLocal ? emoji.url : `${config.url}/proxy/image.png?${query({url: emoji.url})}`;
|
||||
|
||||
return {
|
||||
name: emojiName,
|
||||
url: emoji.url,
|
||||
url,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue