✌️
This commit is contained in:
		@@ -5,12 +5,12 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
import validate from '../../validator';
 | 
					import validate from '../../validator';
 | 
				
			||||||
import parse from '../../../common/text';
 | 
					import parse from '../../../common/text';
 | 
				
			||||||
import { Post, isValidText } from '../../models/post';
 | 
					import Post from '../../models/post';
 | 
				
			||||||
 | 
					import { isValidText } from '../../models/post';
 | 
				
			||||||
import User from '../../models/user';
 | 
					import User from '../../models/user';
 | 
				
			||||||
import Following from '../../models/following';
 | 
					import Following from '../../models/following';
 | 
				
			||||||
import DriveFile from '../../models/drive-file';
 | 
					import DriveFile from '../../models/drive-file';
 | 
				
			||||||
import serialize from '../../serializers/post';
 | 
					import serialize from '../../serializers/post';
 | 
				
			||||||
import createFile from '../../common/add-file-to-drive';
 | 
					 | 
				
			||||||
import notify from '../../common/notify';
 | 
					import notify from '../../common/notify';
 | 
				
			||||||
import event from '../../event';
 | 
					import event from '../../event';
 | 
				
			||||||
import config from '../../../conf';
 | 
					import config from '../../../conf';
 | 
				
			||||||
@@ -139,6 +139,7 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
					if (typeof choice != 'string') return true;
 | 
										if (typeof choice != 'string') return true;
 | 
				
			||||||
					if (choice.trim().length == 0) return true;
 | 
										if (choice.trim().length == 0) return true;
 | 
				
			||||||
					if (choice.trim().length > 50) return true;
 | 
										if (choice.trim().length > 50) return true;
 | 
				
			||||||
 | 
										return false;
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				return shouldReject ? 'invalid poll choices' : true;
 | 
									return shouldReject ? 'invalid poll choices' : true;
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
@@ -167,7 +168,7 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
	const post = await Post.insert({
 | 
						const post = await Post.insert({
 | 
				
			||||||
		created_at: new Date(),
 | 
							created_at: new Date(),
 | 
				
			||||||
		media_ids: files ? files.map(file => file._id) : undefined,
 | 
							media_ids: files ? files.map(file => file._id) : undefined,
 | 
				
			||||||
		reply_to_id: replyTo ? replyTo._id : undefined,
 | 
							reply_to_id: inReplyToPost ? inReplyToPost._id : undefined,
 | 
				
			||||||
		repost_id: repost ? repost._id : undefined,
 | 
							repost_id: repost ? repost._id : undefined,
 | 
				
			||||||
		poll: poll ? poll : undefined,
 | 
							poll: poll ? poll : undefined,
 | 
				
			||||||
		text: text,
 | 
							text: text,
 | 
				
			||||||
@@ -225,21 +226,21 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
	});
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If has in reply to post
 | 
						// If has in reply to post
 | 
				
			||||||
	if (replyTo) {
 | 
						if (inReplyToPost) {
 | 
				
			||||||
		// Increment replies count
 | 
							// Increment replies count
 | 
				
			||||||
		Post.update({ _id: replyTo._id }, {
 | 
							Post.update({ _id: inReplyToPost._id }, {
 | 
				
			||||||
			$inc: {
 | 
								$inc: {
 | 
				
			||||||
				replies_count: 1
 | 
									replies_count: 1
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 自分自身へのリプライでない限りは通知を作成
 | 
							// 自分自身へのリプライでない限りは通知を作成
 | 
				
			||||||
		notify(replyTo.user_id, user._id, 'reply', {
 | 
							notify(inReplyToPost.user_id, user._id, 'reply', {
 | 
				
			||||||
			post_id: post._id
 | 
								post_id: post._id
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Add mention
 | 
							// Add mention
 | 
				
			||||||
		addMention(replyTo.user_id, 'reply');
 | 
							addMention(inReplyToPost.user_id, 'reply');
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If it is repost
 | 
						// If it is repost
 | 
				
			||||||
@@ -284,7 +285,7 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
	if (text) {
 | 
						if (text) {
 | 
				
			||||||
		// Analyze
 | 
							// Analyze
 | 
				
			||||||
		const tokens = parse(text);
 | 
							const tokens = parse(text);
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
		// Extract a hashtags
 | 
							// Extract a hashtags
 | 
				
			||||||
		const hashtags = tokens
 | 
							const hashtags = tokens
 | 
				
			||||||
			.filter(t => t.type == 'hashtag')
 | 
								.filter(t => t.type == 'hashtag')
 | 
				
			||||||
@@ -293,8 +294,8 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
			.filter((v, i, s) => s.indexOf(v) == i);
 | 
								.filter((v, i, s) => s.indexOf(v) == i);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// ハッシュタグをデータベースに登録
 | 
							// ハッシュタグをデータベースに登録
 | 
				
			||||||
		//registerHashtags(user, hashtags);
 | 
							registerHashtags(user, hashtags);
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
		// Extract an '@' mentions
 | 
							// Extract an '@' mentions
 | 
				
			||||||
		const atMentions = tokens
 | 
							const atMentions = tokens
 | 
				
			||||||
			.filter(t => t.type == 'mention')
 | 
								.filter(t => t.type == 'mention')
 | 
				
			||||||
@@ -315,7 +316,7 @@ module.exports = (params, user, app) =>
 | 
				
			|||||||
			if (mentionee == null) return;
 | 
								if (mentionee == null) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// 既に言及されたユーザーに対する返信や引用repostの場合も無視
 | 
								// 既に言及されたユーザーに対する返信や引用repostの場合も無視
 | 
				
			||||||
			if (replyTo && replyTo.user_id.equals(mentionee._id)) return;
 | 
								if (inReplyToPost && inReplyToPost.user_id.equals(mentionee._id)) return;
 | 
				
			||||||
			if (repost && repost.user_id.equals(mentionee._id)) return;
 | 
								if (repost && repost.user_id.equals(mentionee._id)) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Add mention
 | 
								// Add mention
 | 
				
			||||||
@@ -10,8 +10,8 @@ function validate(value: any, type: 'string', isRequired?: boolean, validator?:
 | 
				
			|||||||
function validate(value: any, type: 'number', isRequired?: boolean, validator?: Validator<number>): [number, string];
 | 
					function validate(value: any, type: 'number', isRequired?: boolean, validator?: Validator<number>): [number, string];
 | 
				
			||||||
function validate(value: any, type: 'boolean', isRequired?: boolean): [boolean, string];
 | 
					function validate(value: any, type: 'boolean', isRequired?: boolean): [boolean, string];
 | 
				
			||||||
function validate(value: any, type: 'array', isRequired?: boolean, validator?: Validator<any[]>): [any[], string];
 | 
					function validate(value: any, type: 'array', isRequired?: boolean, validator?: Validator<any[]>): [any[], string];
 | 
				
			||||||
function validate(value: any, type: 'set', isRequired?: boolean, validator?: Validator<Set<any>>): [Set<any>, string];
 | 
					function validate(value: any, type: 'set', isRequired?: boolean, validator?: Validator<any[]>): [any[], string];
 | 
				
			||||||
function validate(value: any, type: 'object', isRequired?: boolean, validator?: Validator<Object>): [Object, string];
 | 
					function validate(value: any, type: 'object', isRequired?: boolean, validator?: Validator<any>): [any, string];
 | 
				
			||||||
function validate<T>(value: any, type: Type, isRequired?: boolean, validator?: Validator<T>): [T, string] {
 | 
					function validate<T>(value: any, type: Type, isRequired?: boolean, validator?: Validator<T>): [T, string] {
 | 
				
			||||||
	if (value === undefined || value === null) {
 | 
						if (value === undefined || value === null) {
 | 
				
			||||||
		if (isRequired) {
 | 
							if (isRequired) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user