From d7a3b710281f19746aaccaf23c07feb700503f39 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 5 Nov 2018 11:09:05 +0900 Subject: 投稿の最大文字数情報を設定ファイルではなくDBに保存するように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/api/endpoints/notes/create.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/server/api/endpoints/notes/create.ts') diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts index 8a8813daba..f4d7e96265 100644 --- a/src/server/api/endpoints/notes/create.ts +++ b/src/server/api/endpoints/notes/create.ts @@ -1,10 +1,20 @@ import $ from 'cafy'; import ID, { transform, transformMany } from '../../../../misc/cafy-id'; const ms = require('ms'); -import Note, { INote, isValidText, isValidCw, pack } from '../../../../models/note'; +import { length } from 'stringz'; +import Note, { INote, isValidCw, pack } from '../../../../models/note'; import User, { IUser } from '../../../../models/user'; import DriveFile, { IDriveFile } from '../../../../models/drive-file'; import create from '../../../../services/note/create'; import define from '../../define'; +import Meta from '../../../../models/meta'; + +let maxNoteTextLength = 1000; + +setInterval(() => { + Meta.findOne({}).then(m => { + if (m.maxNoteTextLength) maxNoteTextLength = m.maxNoteTextLength; + }); +}, 3000); export const meta = { stability: 'stable', @@ -40,7 +50,9 @@ export const meta = { }, text: { - validator: $.str.optional.nullable.pipe(isValidText), + validator: $.str.optional.nullable.pipe(text => + length(text.trim()) <= maxNoteTextLength && text.trim() != '' + ), default: null as any, desc: { 'ja-JP': '投稿内容' -- cgit v1.2.3-freya