From 5c490e75213f0f876c35ab4fb6cf71eefa3afab7 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Mon, 28 Dec 2020 23:05:30 +0900
Subject: [PATCH] Bug fix and refactoring

---
 src/client/components/notification.vue |  6 +++---
 src/client/sw/compose-notification.ts  |  2 +-
 src/misc/get-note-summary.ts           |  4 +---
 src/misc/get-notification-summary.ts   | 15 ++++++++-------
 src/server/web/index.ts                |  2 +-
 5 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue
index 0c6be82bb..2fe850089 100644
--- a/src/client/components/notification.vue
+++ b/src/client/components/notification.vue
@@ -61,12 +61,12 @@
 import { defineComponent } from 'vue';
 import { faIdCardAlt, faPlus, faQuoteLeft, faQuoteRight, faRetweet, faReply, faAt, faCheck, faPollH } from '@fortawesome/free-solid-svg-icons';
 import { faClock } from '@fortawesome/free-regular-svg-icons';
-import noteSummary from '../../misc/get-note-summary';
+import { getNoteSummary } from '../../misc/get-note-summary';
 import XReactionIcon from './reaction-icon.vue';
 import MkFollowButton from './follow-button.vue';
 import notePage from '../filters/note';
 import { userPage } from '../filters/user';
-import { locale } from '../i18n';
+import { i18n } from '@/i18n';
 import * as os from '@/os';
 
 export default defineComponent({
@@ -91,7 +91,7 @@ export default defineComponent({
 	},
 	data() {
 		return {
-			getNoteSummary: (text: string) => noteSummary(text, locale),
+			getNoteSummary: (text: string) => getNoteSummary(text, i18n.locale),
 			followRequestDone: false,
 			groupInviteDone: false,
 			connection: null,
diff --git a/src/client/sw/compose-notification.ts b/src/client/sw/compose-notification.ts
index 0863d7ef8..17421db5c 100644
--- a/src/client/sw/compose-notification.ts
+++ b/src/client/sw/compose-notification.ts
@@ -1,4 +1,4 @@
-import getNoteSummary from '../../misc/get-note-summary';
+import { getNoteSummary } from '../../misc/get-note-summary';
 import getUserName from '../../misc/get-user-name';
 import { i18n } from '@/sw/i18n';
 
diff --git a/src/misc/get-note-summary.ts b/src/misc/get-note-summary.ts
index 7db8bca3e..b80da16ca 100644
--- a/src/misc/get-note-summary.ts
+++ b/src/misc/get-note-summary.ts
@@ -2,7 +2,7 @@
  * 投稿を表す文字列を取得します。
  * @param {*} note (packされた)投稿
  */
-const summarize = (note: any, locale: any): string => {
+export const getNoteSummary = (note: any, locale: any): string => {
 	if (note.deletedAt) {
 		return `(${locale['deletedNote']})`;
 	}
@@ -50,5 +50,3 @@ const summarize = (note: any, locale: any): string => {
 
 	return summary.trim();
 };
-
-export default summarize;
diff --git a/src/misc/get-notification-summary.ts b/src/misc/get-notification-summary.ts
index b20711c60..aade3f75b 100644
--- a/src/misc/get-notification-summary.ts
+++ b/src/misc/get-notification-summary.ts
@@ -1,6 +1,7 @@
 import getUserName from './get-user-name';
-import getNoteSummary from './get-note-summary';
+import { getNoteSummary } from './get-note-summary';
 import getReactionEmoji from './get-reaction-emoji';
+import locales = require('../../locales');
 
 /**
  * 通知を表す文字列を取得します。
@@ -11,17 +12,17 @@ export default function(notification: any): string {
 		case 'follow':
 			return `${getUserName(notification.user)}にフォローされました`;
 		case 'mention':
-			return `言及されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`;
+			return `言及されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		case 'reply':
-			return `返信されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`;
+			return `返信されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		case 'renote':
-			return `Renoteされました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`;
+			return `Renoteされました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		case 'quote':
-			return `引用されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`;
+			return `引用されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		case 'reaction':
-			return `リアクションされました:\n${getUserName(notification.user)} <${getReactionEmoji(notification.reaction)}>「${getNoteSummary(notification.note)}」`;
+			return `リアクションされました:\n${getUserName(notification.user)} <${getReactionEmoji(notification.reaction)}>「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		case 'pollVote':
-			return `投票されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note)}」`;
+			return `投票されました:\n${getUserName(notification.user)}「${getNoteSummary(notification.note, locales['ja-JP'])}」`;
 		default:
 			return `<不明な通知タイプ: ${notification.type}>`;
 	}
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 57ce9b38a..caa3f65c2 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -19,7 +19,7 @@ import { genOpenapiSpec } from '../api/openapi/gen-spec';
 import config from '../../config';
 import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../../models';
 import parseAcct from '../../misc/acct/parse';
-import getNoteSummary from '../../misc/get-note-summary';
+import { getNoteSummary } from '../../misc/get-note-summary';
 import { ensure } from '../../prelude/ensure';
 import { getConnection } from 'typeorm';
 import redis from '../../db/redis';