mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-30 12:53:09 +02:00
cw
This commit is contained in:
parent
5c3ca62426
commit
75c4c844e6
3 changed files with 17 additions and 1 deletions
|
@ -11,6 +11,12 @@ params:
|
||||||
desc:
|
desc:
|
||||||
ja: "投稿の本文"
|
ja: "投稿の本文"
|
||||||
en: "The text of your post"
|
en: "The text of your post"
|
||||||
|
- name: "cw"
|
||||||
|
type: "string"
|
||||||
|
optional: true
|
||||||
|
desc:
|
||||||
|
ja: "コンテンツの警告。このパラメータを指定すると設定したテキストで投稿のコンテンツを隠す事が出来ます。"
|
||||||
|
en: "Content Warning"
|
||||||
- name: "mediaIds"
|
- name: "mediaIds"
|
||||||
type: "id(DriveFile)[]"
|
type: "id(DriveFile)[]"
|
||||||
optional: true
|
optional: true
|
||||||
|
|
|
@ -18,6 +18,10 @@ export function isValidText(text: string): boolean {
|
||||||
return text.length <= 1000 && text.trim() != '';
|
return text.length <= 1000 && text.trim() != '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isValidCw(text: string): boolean {
|
||||||
|
return text.length <= 100 && text.trim() != '';
|
||||||
|
}
|
||||||
|
|
||||||
export type IPost = {
|
export type IPost = {
|
||||||
_id: mongo.ObjectID;
|
_id: mongo.ObjectID;
|
||||||
channelId: mongo.ObjectID;
|
channelId: mongo.ObjectID;
|
||||||
|
@ -27,6 +31,7 @@ export type IPost = {
|
||||||
repostId: mongo.ObjectID;
|
repostId: mongo.ObjectID;
|
||||||
poll: any; // todo
|
poll: any; // todo
|
||||||
text: string;
|
text: string;
|
||||||
|
cw: string;
|
||||||
userId: mongo.ObjectID;
|
userId: mongo.ObjectID;
|
||||||
appId: mongo.ObjectID;
|
appId: mongo.ObjectID;
|
||||||
viaMobile: boolean;
|
viaMobile: boolean;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
import $ from 'cafy';
|
import $ from 'cafy';
|
||||||
import deepEqual = require('deep-equal');
|
import deepEqual = require('deep-equal');
|
||||||
import parse from '../../../../common/text';
|
import parse from '../../../../common/text';
|
||||||
import { default as Post, IPost, isValidText } from '../../../../models/post';
|
import { default as Post, IPost, isValidText, isValidCw } from '../../../../models/post';
|
||||||
import { default as User, ILocalAccount, IUser } from '../../../../models/user';
|
import { default as User, ILocalAccount, IUser } from '../../../../models/user';
|
||||||
import { default as Channel, IChannel } from '../../../../models/channel';
|
import { default as Channel, IChannel } from '../../../../models/channel';
|
||||||
import Following from '../../../../models/following';
|
import Following from '../../../../models/following';
|
||||||
|
@ -33,6 +33,10 @@ module.exports = (params, user: IUser, app) => new Promise(async (res, rej) => {
|
||||||
const [text, textErr] = $(params.text).optional.string().pipe(isValidText).$;
|
const [text, textErr] = $(params.text).optional.string().pipe(isValidText).$;
|
||||||
if (textErr) return rej('invalid text');
|
if (textErr) return rej('invalid text');
|
||||||
|
|
||||||
|
// Get 'cw' parameter
|
||||||
|
const [cw, cwErr] = $(params.cw).optional.string().pipe(isValidCw).$;
|
||||||
|
if (cwErr) return rej('invalid cw');
|
||||||
|
|
||||||
// Get 'viaMobile' parameter
|
// Get 'viaMobile' parameter
|
||||||
const [viaMobile = false, viaMobileErr] = $(params.viaMobile).optional.boolean().$;
|
const [viaMobile = false, viaMobileErr] = $(params.viaMobile).optional.boolean().$;
|
||||||
if (viaMobileErr) return rej('invalid viaMobile');
|
if (viaMobileErr) return rej('invalid viaMobile');
|
||||||
|
@ -255,6 +259,7 @@ module.exports = (params, user: IUser, app) => new Promise(async (res, rej) => {
|
||||||
repostId: repost ? repost._id : undefined,
|
repostId: repost ? repost._id : undefined,
|
||||||
poll: poll,
|
poll: poll,
|
||||||
text: text,
|
text: text,
|
||||||
|
cw: cw,
|
||||||
tags: tags,
|
tags: tags,
|
||||||
userId: user._id,
|
userId: user._id,
|
||||||
appId: app ? app._id : null,
|
appId: app ? app._id : null,
|
||||||
|
|
Loading…
Reference in a new issue