From dc69490e3abdebf186e9b642c629ec888afc88d8 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Thu, 15 Jul 2021 20:45:32 +0900
Subject: [PATCH] Refactoring

---
 src/client/components/post-form.vue            |  2 +-
 src/client/components/user-info.vue            |  2 +-
 src/client/components/user-preview.vue         |  2 +-
 src/client/filters/user.ts                     |  2 +-
 src/client/pages/follow.vue                    |  2 +-
 src/client/pages/instance/abuses.vue           |  2 +-
 src/client/pages/messaging/index.vue           |  2 +-
 src/client/pages/messaging/messaging-room.vue  |  2 +-
 src/client/pages/my-antennas/index.antenna.vue |  2 +-
 src/client/pages/room/room.vue                 |  2 +-
 src/client/pages/user/index.vue                |  2 +-
 src/client/scripts/gen-search-query.ts         |  2 +-
 src/client/scripts/get-user-menu.ts            |  2 +-
 src/client/scripts/lookup-user.ts              |  2 +-
 src/client/ui/chat/post-form.vue               |  2 +-
 src/misc/acct.ts                               | 14 ++++++++++++++
 src/misc/acct/parse.ts                         |  7 -------
 src/misc/acct/render.ts                        |  5 -----
 src/misc/acct/type.ts                          |  6 ------
 src/queue/processors/db/import-following.ts    |  2 +-
 src/queue/processors/db/import-user-lists.ts   |  2 +-
 src/server/api/endpoints/pinned-users.ts       |  2 +-
 src/server/api/limiter.ts                      |  2 +-
 src/server/web/index.ts                        |  2 +-
 src/server/well-known.ts                       |  3 +--
 src/services/send-email-notification.ts        |  4 ++--
 src/tools/resync-remote-user.ts                |  2 +-
 27 files changed, 38 insertions(+), 43 deletions(-)
 create mode 100644 src/misc/acct.ts
 delete mode 100644 src/misc/acct/parse.ts
 delete mode 100644 src/misc/acct/render.ts
 delete mode 100644 src/misc/acct/type.ts

diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue
index c5186577f3..13bbb3f9e5 100644
--- a/src/client/components/post-form.vue
+++ b/src/client/components/post-form.vue
@@ -61,7 +61,7 @@ import * as mfm from 'mfm-js';
 import { host, url } from '@client/config';
 import { erase, unique } from '../../prelude/array';
 import { extractMentions } from '@/misc/extract-mentions';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import { formatTimeString } from '@/misc/format-time-string';
 import { Autocomplete } from '@client/scripts/autocomplete';
 import { noteVisibilities } from '../../types';
diff --git a/src/client/components/user-info.vue b/src/client/components/user-info.vue
index 289e0f3c3f..402aa0d07c 100644
--- a/src/client/components/user-info.vue
+++ b/src/client/components/user-info.vue
@@ -29,7 +29,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import MkFollowButton from './follow-button.vue';
 import { userPage } from '../filters/user';
 
diff --git a/src/client/components/user-preview.vue b/src/client/components/user-preview.vue
index 2ec81a5220..a495266894 100644
--- a/src/client/components/user-preview.vue
+++ b/src/client/components/user-preview.vue
@@ -33,7 +33,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import MkFollowButton from './follow-button.vue';
 import { userPage } from '../filters/user';
 import * as os from '@client/os';
diff --git a/src/client/filters/user.ts b/src/client/filters/user.ts
index ad4663cb92..f432de739d 100644
--- a/src/client/filters/user.ts
+++ b/src/client/filters/user.ts
@@ -1,4 +1,4 @@
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import getUserName from '@/misc/get-user-name';
 import { url } from '@client/config';
 
diff --git a/src/client/pages/follow.vue b/src/client/pages/follow.vue
index f5afdf0892..d5247aff1e 100644
--- a/src/client/pages/follow.vue
+++ b/src/client/pages/follow.vue
@@ -6,7 +6,7 @@
 <script lang="ts">
 import { defineComponent } from 'vue';
 import * as os from '@client/os';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 
 export default defineComponent({
 	created() {
diff --git a/src/client/pages/instance/abuses.vue b/src/client/pages/instance/abuses.vue
index 73196027dc..900c9f8333 100644
--- a/src/client/pages/instance/abuses.vue
+++ b/src/client/pages/instance/abuses.vue
@@ -63,7 +63,7 @@
 
 <script lang="ts">
 import { defineComponent } from 'vue';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import MkButton from '@client/components/ui/button.vue';
 import MkInput from '@client/components/ui/input.vue';
 import MkSelect from '@client/components/ui/select.vue';
diff --git a/src/client/pages/messaging/index.vue b/src/client/pages/messaging/index.vue
index 832cce5ab9..87ca1890fd 100644
--- a/src/client/pages/messaging/index.vue
+++ b/src/client/pages/messaging/index.vue
@@ -38,7 +38,7 @@
 
 <script lang="ts">
 import { defineAsyncComponent, defineComponent } from 'vue';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import MkButton from '@client/components/ui/button.vue';
 import { acct } from '../../filters/user';
 import * as os from '@client/os';
diff --git a/src/client/pages/messaging/messaging-room.vue b/src/client/pages/messaging/messaging-room.vue
index f1d55ee288..6ec60566b6 100644
--- a/src/client/pages/messaging/messaging-room.vue
+++ b/src/client/pages/messaging/messaging-room.vue
@@ -40,7 +40,7 @@ import { computed, defineComponent } from 'vue';
 import XList from '@client/components/date-separated-list.vue';
 import XMessage from './messaging-room.message.vue';
 import XForm from './messaging-room.form.vue';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { isBottom, onScrollBottom, scroll } from '@client/scripts/scroll';
 import * as os from '@client/os';
 import { popout } from '@client/scripts/popout';
diff --git a/src/client/pages/my-antennas/index.antenna.vue b/src/client/pages/my-antennas/index.antenna.vue
index 8cad6fa553..fcb7559a98 100644
--- a/src/client/pages/my-antennas/index.antenna.vue
+++ b/src/client/pages/my-antennas/index.antenna.vue
@@ -52,7 +52,7 @@ import MkInput from '@client/components/ui/input.vue';
 import MkTextarea from '@client/components/ui/textarea.vue';
 import MkSelect from '@client/components/ui/select.vue';
 import MkSwitch from '@client/components/ui/switch.vue';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import * as os from '@client/os';
 
 export default defineComponent({
diff --git a/src/client/pages/room/room.vue b/src/client/pages/room/room.vue
index ea34ef11b5..61650e067f 100644
--- a/src/client/pages/room/room.vue
+++ b/src/client/pages/room/room.vue
@@ -52,7 +52,7 @@
 <script lang="ts">
 import { computed, defineComponent } from 'vue';
 import { Room } from '@client/scripts/room/room';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import XPreview from './preview.vue';
 const storeItems = require('@client/scripts/room/furnitures.json5');
 import { query as urlQuery } from '../../../prelude/url';
diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue
index 717ca5d8fe..f5c5a0694c 100644
--- a/src/client/pages/user/index.vue
+++ b/src/client/pages/user/index.vue
@@ -234,7 +234,7 @@ import MkRemoteCaution from '@client/components/remote-caution.vue';
 import MkTab from '@client/components/tab.vue';
 import MkInfo from '@client/components/ui/info.vue';
 import Progress from '@client/scripts/loading';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { getScrollPosition } from '@client/scripts/scroll';
 import { getUserMenu } from '@client/scripts/get-user-menu';
 import number from '../../filters/number';
diff --git a/src/client/scripts/gen-search-query.ts b/src/client/scripts/gen-search-query.ts
index a1db267123..cafb3cccfe 100644
--- a/src/client/scripts/gen-search-query.ts
+++ b/src/client/scripts/gen-search-query.ts
@@ -1,4 +1,4 @@
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { host as localHost } from '@client/config';
 
 export async function genSearchQuery(v: any, q: string) {
diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts
index ceb2bfe173..3689a93b47 100644
--- a/src/client/scripts/get-user-menu.ts
+++ b/src/client/scripts/get-user-menu.ts
@@ -1,7 +1,7 @@
 import { i18n } from '@client/i18n';
 import copyToClipboard from '@client/scripts/copy-to-clipboard';
 import { host } from '@client/config';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import * as os from '@client/os';
 import { userActions } from '@client/store';
 import { router } from '@client/router';
diff --git a/src/client/scripts/lookup-user.ts b/src/client/scripts/lookup-user.ts
index 269777d874..c393472ae8 100644
--- a/src/client/scripts/lookup-user.ts
+++ b/src/client/scripts/lookup-user.ts
@@ -1,4 +1,4 @@
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { i18n } from '@client/i18n';
 import * as os from '@client/os';
 
diff --git a/src/client/ui/chat/post-form.vue b/src/client/ui/chat/post-form.vue
index 6030166fc5..6812eb31ba 100644
--- a/src/client/ui/chat/post-form.vue
+++ b/src/client/ui/chat/post-form.vue
@@ -55,7 +55,7 @@ import * as mfm from 'mfm-js';
 import { host, url } from '@client/config';
 import { erase, unique } from '../../../prelude/array';
 import { extractMentions } from '@/misc/extract-mentions';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import { formatTimeString } from '@/misc/format-time-string';
 import { Autocomplete } from '@client/scripts/autocomplete';
 import { noteVisibilities } from '../../../types';
diff --git a/src/misc/acct.ts b/src/misc/acct.ts
new file mode 100644
index 0000000000..16876c4429
--- /dev/null
+++ b/src/misc/acct.ts
@@ -0,0 +1,14 @@
+export type Acct = {
+	username: string;
+	host: string | null;
+};
+
+export const getAcct = (user: Acct) => {
+	return user.host == null ? user.username : `${user.username}@${user.host}`;
+};
+
+export const parseAcct = (acct: string): Acct => {
+	if (acct.startsWith('@')) acct = acct.substr(1);
+	const split = acct.split('@', 2);
+	return { username: split[0], host: split[1] || null };
+};
diff --git a/src/misc/acct/parse.ts b/src/misc/acct/parse.ts
deleted file mode 100644
index e3bed35d8e..0000000000
--- a/src/misc/acct/parse.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import Acct from './type';
-
-export default (acct: string): Acct => {
-	if (acct.startsWith('@')) acct = acct.substr(1);
-	const split = acct.split('@', 2);
-	return { username: split[0], host: split[1] || null };
-};
diff --git a/src/misc/acct/render.ts b/src/misc/acct/render.ts
deleted file mode 100644
index 094eceffe9..0000000000
--- a/src/misc/acct/render.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import Acct from './type';
-
-export default (user: Acct) => {
-	return user.host == null ? user.username : `${user.username}@${user.host}`;
-};
diff --git a/src/misc/acct/type.ts b/src/misc/acct/type.ts
deleted file mode 100644
index 7f31257400..0000000000
--- a/src/misc/acct/type.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-type Acct = {
-	username: string;
-	host: string | null;
-};
-
-export default Acct;
diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts
index 55c0aaa9f9..1156b5cafa 100644
--- a/src/queue/processors/db/import-following.ts
+++ b/src/queue/processors/db/import-following.ts
@@ -2,7 +2,7 @@ import * as Bull from 'bull';
 
 import { queueLogger } from '../../logger';
 import follow from '../../../services/following/create';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { resolveUser } from '../../../remote/resolve-user';
 import { downloadTextFile } from '@/misc/download-text-file';
 import { isSelfHost, toPuny } from '@/misc/convert-host';
diff --git a/src/queue/processors/db/import-user-lists.ts b/src/queue/processors/db/import-user-lists.ts
index d316b95ff0..d04ead869a 100644
--- a/src/queue/processors/db/import-user-lists.ts
+++ b/src/queue/processors/db/import-user-lists.ts
@@ -1,7 +1,7 @@
 import * as Bull from 'bull';
 
 import { queueLogger } from '../../logger';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { resolveUser } from '../../../remote/resolve-user';
 import { pushUserToUserList } from '../../../services/user-list/push';
 import { downloadTextFile } from '@/misc/download-text-file';
diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts
index ae165ab46d..bcef072fed 100644
--- a/src/server/api/endpoints/pinned-users.ts
+++ b/src/server/api/endpoints/pinned-users.ts
@@ -1,7 +1,7 @@
 import define from '../define';
 import { Users } from '../../../models';
 import { fetchMeta } from '@/misc/fetch-meta';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { User } from '../../../models/entities/user';
 
 export const meta = {
diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts
index 1e8715a7c4..540ca24994 100644
--- a/src/server/api/limiter.ts
+++ b/src/server/api/limiter.ts
@@ -1,7 +1,7 @@
 import * as Limiter from 'ratelimiter';
 import { redisClient } from '../../db/redis';
 import { IEndpoint } from './endpoints';
-import getAcct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 import { User } from '../../models/entities/user';
 import Logger from '../../services/logger';
 
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index cc343063af..50fea757f2 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -18,7 +18,7 @@ import { fetchMeta } from '@/misc/fetch-meta';
 import { genOpenapiSpec } from '../api/openapi/gen-spec';
 import config from '@/config';
 import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '../../models';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 import { getNoteSummary } from '@/misc/get-note-summary';
 import { getConnection } from 'typeorm';
 import { redisClient } from '../../db/redis';
diff --git a/src/server/well-known.ts b/src/server/well-known.ts
index 57b6aba9a0..5771db91d0 100644
--- a/src/server/well-known.ts
+++ b/src/server/well-known.ts
@@ -1,8 +1,7 @@
 import * as Router from '@koa/router';
 
 import config from '@/config';
-import parseAcct from '@/misc/acct/parse';
-import Acct from '@/misc/acct/type';
+import { parseAcct, Acct } from '@/misc/acct';
 import { links } from './nodeinfo';
 import { escapeAttribute, escapeValue } from '../prelude/xml';
 import { Users } from '../models';
diff --git a/src/services/send-email-notification.ts b/src/services/send-email-notification.ts
index 4970649048..b475585129 100644
--- a/src/services/send-email-notification.ts
+++ b/src/services/send-email-notification.ts
@@ -3,7 +3,7 @@ import { User } from '../models/entities/user';
 import { sendEmail } from './send-email';
 import * as locales from '../../locales/';
 import { I18n } from '@/misc/i18n';
-import acct from '@/misc/acct/render';
+import { getAcct } from '@/misc/acct';
 
 // TODO: locale ファイルをクライアント用とサーバー用で分けたい
 
@@ -13,7 +13,7 @@ async function follow(userId: User['id'], follower: User) {
 	const locale = locales[userProfile.lang || 'ja-JP'];
 	const i18n = new I18n(locale);
 	// TODO: render user information html
-	sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${acct(follower)})`, `${follower.name} (@${acct(follower)})`);
+	sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${getAcct(follower)})`, `${follower.name} (@${getAcct(follower)})`);
 }
 
 async function receiveFollowRequest(userId: User['id'], args: {}) {
diff --git a/src/tools/resync-remote-user.ts b/src/tools/resync-remote-user.ts
index d9685ee4b7..ad2e231eb5 100644
--- a/src/tools/resync-remote-user.ts
+++ b/src/tools/resync-remote-user.ts
@@ -1,5 +1,5 @@
 import { initDb } from '@/db/postgre';
-import parseAcct from '@/misc/acct/parse';
+import { parseAcct } from '@/misc/acct';
 
 async function main(acct: string): Promise<any> {
 	await initDb();
-- 
GitLab