From 03e999875a7678c0e5293b87397ab67040010eeb Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 1 Jul 2019 21:12:14 +0900 Subject: リモートファイルの削除が重い問題を修正 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/endpoints/admin/drive/clean-remote-files.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'src/server/api/endpoints/admin') diff --git a/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/src/server/api/endpoints/admin/drive/clean-remote-files.ts index 69cfe0db94..e837ae1bb6 100644 --- a/src/server/api/endpoints/admin/drive/clean-remote-files.ts +++ b/src/server/api/endpoints/admin/drive/clean-remote-files.ts @@ -1,7 +1,5 @@ -import { Not, IsNull } from 'typeorm'; import define from '../../../define'; -import { deleteFile } from '../../../../../services/drive/delete-file'; -import { DriveFiles } from '../../../../../models'; +import { createCleanRemoteFilesJob } from '../../../../../queue'; export const meta = { tags: ['admin'], @@ -11,12 +9,5 @@ export const meta = { }; export default define(meta, async (ps, me) => { - const files = await DriveFiles.find({ - userHost: Not(IsNull()), - isLink: false, - }); - - for (const file of files) { - deleteFile(file, true); - } + createCleanRemoteFilesJob(); }); -- cgit v1.2.3-freya From f17e229c1e390eb98f167c918dde87dbbfcaacf2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 3 Jul 2019 03:58:45 +0900 Subject: Resolve #5072 --- locales/ja-JP.yml | 3 +++ src/client/app/admin/views/db.vue | 26 +++++++++++++++++++++++-- src/server/api/endpoints/admin/vacuum.ts | 33 ++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/server/api/endpoints/admin/vacuum.ts (limited to 'src/server/api/endpoints/admin') diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index a192093576..9d104456f8 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1235,6 +1235,9 @@ admin/views/index.vue: admin/views/db.vue: tables: "テーブル" + vacuum: "バキューム" + vacuum-info: "データベースの掃除を行います。データはそのままで、ディスク使用量を減らします。通常この操作は自動で定期的に行われます。" + vacuum-exclamation: "バキュームを行うと、しばらくの間データベースの負荷が高くなり、ユーザーの操作を受け付けなくなる場合があります。" admin/views/dashboard.vue: dashboard: "ダッシュボード" diff --git a/src/client/app/admin/views/db.vue b/src/client/app/admin/views/db.vue index 7818546e76..9f87a749b6 100644 --- a/src/client/app/admin/views/db.vue +++ b/src/client/app/admin/views/db.vue @@ -5,6 +5,14 @@
{{ table }} {{ tables[table].count | number }} {{ tables[table].size | bytes }}
+
+
{{ $t('vacuum') }}
+ {{ $t('vacuum-info') }} + FULL + ANALYZE + {{ $t('vacuum') }} + {{ $t('vacuum-exclamation') }} +
@@ -12,7 +20,7 @@ diff --git a/src/server/api/endpoints/admin/vacuum.ts b/src/server/api/endpoints/admin/vacuum.ts new file mode 100644 index 0000000000..6990706282 --- /dev/null +++ b/src/server/api/endpoints/admin/vacuum.ts @@ -0,0 +1,33 @@ +import $ from 'cafy'; +import define from '../../define'; +import { getConnection } from 'typeorm'; + +export const meta = { + tags: ['admin'], + + requireCredential: true, + requireModerator: true, + + params: { + full: { + validator: $.bool, + }, + analyze: { + validator: $.bool, + }, + } +}; + +export default define(meta, async (ps) => { + const params: string[] = []; + + if (ps.full) { + params.push('FULL'); + } + + if (ps.analyze) { + params.push('ANALYZE'); + } + + getConnection().query('VACUUM ' + params.join(' ')); +}); -- cgit v1.2.3-freya From 16b81fff380023e3795d7c7a82f7cd7de5ffbcc7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 4 Jul 2019 21:07:02 +0900 Subject: Resolve #3431 --- CHANGELOG.md | 1 + locales/ja-JP.yml | 2 ++ src/client/app/admin/views/instance.vue | 27 +++++++++++++++++++++++++++ src/server/api/endpoints/admin/send-email.ts | 26 ++++++++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 src/server/api/endpoints/admin/send-email.ts (limited to 'src/server/api/endpoints/admin') diff --git a/CHANGELOG.md b/CHANGELOG.md index f8a34fcb7e..17b622381b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ unreleased * APNGサポート * アバターファイル選択でimage以外は表示しないように * データベース手動バキューム機能 +* メールサーバー設定が正しいか確認できるように * ピン止めの上限に達したときエラーを表示するように * AP: attributedTo, to, cc が Array や Object のパターンに対応 * AP: object type が Audio, Document, Image, Page, Video のパターンに対応 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index f6e36c045f..6040be0450 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1389,6 +1389,8 @@ admin/views/instance.vue: smtp-auth: "SMTP認証を行う" smtp-user: "SMTPユーザー" smtp-pass: "SMTPパスワード" + test-email: "テスト" + test-email-to: "テストメールの送信先アドレス" serviceworker-config: "ServiceWorker" enable-serviceworker: "ServiceWorkerを有効にする" serviceworker-info: "プッシュ通知を行うには有効する必要があります。" diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue index 588b24f6b5..7d271bcb89 100644 --- a/src/client/app/admin/views/instance.vue +++ b/src/client/app/admin/views/instance.vue @@ -129,6 +129,7 @@ {{ $t('smtp-pass') }} {{ $t('smtp-secure') }} + {{ $t('test-email') }}
@@ -424,6 +425,32 @@ export default Vue.extend({ }); }, + async testEmail() { + const { canceled, result: to } = await this.$root.dialog({ + title: this.$t('test-email-to'), + input: { + type: 'email', + }, + showCancelButton: true + }); + if (canceled) return; + this.$root.api('admin/send-email', { + to: to, + subject: 'Test email', + text: 'Yo' + }).then(x => { + this.$root.dialog({ + type: 'success', + splash: true + }); + }).catch(e => { + this.$root.dialog({ + type: 'error', + text: e + }); + }); + }, + updateMeta() { this.$root.api('admin/update-meta', { maintainerName: this.maintainerName, diff --git a/src/server/api/endpoints/admin/send-email.ts b/src/server/api/endpoints/admin/send-email.ts new file mode 100644 index 0000000000..fed4f2df14 --- /dev/null +++ b/src/server/api/endpoints/admin/send-email.ts @@ -0,0 +1,26 @@ +import $ from 'cafy'; +import define from '../../define'; +import { sendEmail } from '../../../../services/send-email'; + +export const meta = { + tags: ['admin'], + + requireCredential: true, + requireModerator: true, + + params: { + to: { + validator: $.str, + }, + subject: { + validator: $.str, + }, + text: { + validator: $.str, + }, + } +}; + +export default define(meta, async (ps) => { + await sendEmail(ps.to, ps.subject, ps.text); +}); -- cgit v1.2.3-freya