mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +00:00
implement flagNsfwByAttachments
method
This commit is contained in:
parent
bf8fc48e0f
commit
fe4198d884
@ -0,0 +1,48 @@
|
||||
import { Post } from "../../../models"
|
||||
import indecentPrediction from "../../../utils/indecent-prediction"
|
||||
import isNSFW from "../../../utils/is-nsfw"
|
||||
|
||||
import modifyPostData from "./modifyPostData"
|
||||
|
||||
export default async (post_id) => {
|
||||
if (!post_id) {
|
||||
throw new Error("Post ID is required")
|
||||
}
|
||||
|
||||
let post = await Post.findById(post_id)
|
||||
|
||||
if (!post) {
|
||||
throw new Error("Post not found")
|
||||
}
|
||||
|
||||
let flags = []
|
||||
|
||||
// run indecentPrediction to all attachments
|
||||
if (Array.isArray(post.attachments) && post.attachments.length > 0) {
|
||||
for await (const attachment of post.attachments) {
|
||||
const prediction = await indecentPrediction({
|
||||
url: attachment.url,
|
||||
}).catch((err) => {
|
||||
console.log("Error while checking", attachment, err)
|
||||
return null
|
||||
})
|
||||
|
||||
if (prediction) {
|
||||
const isNsfw = isNSFW(prediction)
|
||||
|
||||
if (isNsfw) {
|
||||
flags.push("nsfw")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if is there new flags update post
|
||||
if (post.flags !== flags) {
|
||||
await modifyPostData(post_id, {
|
||||
flags: flags,
|
||||
})
|
||||
}
|
||||
|
||||
return flags
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user