summaryrefslogtreecommitdiff
path: root/src/misc
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2021-02-19 21:42:47 +0900
committersyuilo <syuilotan@yahoo.co.jp>2021-02-19 21:42:47 +0900
commitd6c8b9b99470db45c201229b5c9235e7be3067de (patch)
tree01e5fccad6d84cf1e7f41e0a5e3aae955f3695e0 /src/misc
parentMerge branch 'develop' (diff)
parent12.70.0 (diff)
downloadmisskey-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.ts3
-rw-r--r--src/misc/fetch-proxy-account.ts3
-rw-r--r--src/misc/i18n.ts29
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;
+ }
+ }
+}