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