mirror of
https://iceshrimp.dev/iceshrimp/iceshrimp
synced 2024-12-03 09:18:05 +09:00
✌️
This commit is contained in:
parent
b0c2cc2bf4
commit
4385615472
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user