diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2021-02-19 21:42:47 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2021-02-19 21:42:47 +0900 |
| commit | d6c8b9b99470db45c201229b5c9235e7be3067de (patch) | |
| tree | 01e5fccad6d84cf1e7f41e0a5e3aae955f3695e0 /src/misc | |
| parent | Merge branch 'develop' (diff) | |
| parent | 12.70.0 (diff) | |
| download | misskey-d6c8b9b99470db45c201229b5c9235e7be3067de.tar.gz misskey-d6c8b9b99470db45c201229b5c9235e7be3067de.tar.bz2 misskey-d6c8b9b99470db45c201229b5c9235e7be3067de.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/misc')
| -rw-r--r-- | src/misc/check-hit-antenna.ts | 3 | ||||
| -rw-r--r-- | src/misc/fetch-proxy-account.ts | 3 | ||||
| -rw-r--r-- | src/misc/i18n.ts | 29 |
3 files changed, 31 insertions, 4 deletions
diff --git a/src/misc/check-hit-antenna.ts b/src/misc/check-hit-antenna.ts index 562d054563..0464f14131 100644 --- a/src/misc/check-hit-antenna.ts +++ b/src/misc/check-hit-antenna.ts @@ -4,7 +4,6 @@ import { User } from '../models/entities/user'; import { UserListJoinings, UserGroupJoinings } from '../models'; import parseAcct from './acct/parse'; import { getFullApAccount } from './convert-host'; -import { ensure } from '../prelude/ensure'; export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: User, followers: User['id'][]): Promise<boolean> { if (note.visibility === 'specified') return false; @@ -24,7 +23,7 @@ export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: Us if (!listUsers.includes(note.userId)) return false; } else if (antenna.src === 'group') { - const joining = await UserGroupJoinings.findOne(antenna.userGroupJoiningId!).then(ensure); + const joining = await UserGroupJoinings.findOneOrFail(antenna.userGroupJoiningId!); const groupUsers = (await UserGroupJoinings.find({ userGroupId: joining.userGroupId diff --git a/src/misc/fetch-proxy-account.ts b/src/misc/fetch-proxy-account.ts index 0094ab8a56..537edf2891 100644 --- a/src/misc/fetch-proxy-account.ts +++ b/src/misc/fetch-proxy-account.ts @@ -1,10 +1,9 @@ import { fetchMeta } from './fetch-meta'; import { ILocalUser } from '../models/entities/user'; import { Users } from '../models'; -import { ensure } from '../prelude/ensure'; export async function fetchProxyAccount(): Promise<ILocalUser | null> { const meta = await fetchMeta(); if (meta.proxyAccountId == null) return null; - return await Users.findOne(meta.proxyAccountId).then(ensure) as ILocalUser; + return await Users.findOneOrFail(meta.proxyAccountId) as ILocalUser; } diff --git a/src/misc/i18n.ts b/src/misc/i18n.ts new file mode 100644 index 0000000000..4fa398763a --- /dev/null +++ b/src/misc/i18n.ts @@ -0,0 +1,29 @@ +export class I18n<T extends Record<string, any>> { + public locale: T; + + constructor(locale: T) { + this.locale = locale; + + //#region BIND + this.t = this.t.bind(this); + //#endregion + } + + // string にしているのは、ドット区切りでのパス指定を許可するため + // なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも + public t(key: string, args?: Record<string, any>): string { + try { + let str = key.split('.').reduce((o, i) => o[i], this.locale) as string; + + if (args) { + for (const [k, v] of Object.entries(args)) { + str = str.replace(`{${k}}`, v); + } + } + return str; + } catch (e) { + console.warn(`missing localization '${key}'`); + return key; + } + } +} |