unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1import { Job } from "bullmq";
2import { Post } from "../../models/post.js";
3import { getPostThreadRecursive } from "../activitypub/getPostThreadRecursive.js";
4import { getAdminUser } from "../getAdminAndDeletedUser.js";
5import { logger } from "../logger.js";
6import { processSinglePost } from "../../atproto/utils/getAtProtoThread.js";
7
8
9async function mergePost(job: Job) {
10 const postId = job.data.postId
11 const post = await Post.findByPk(postId)
12 if(post) {
13 const adminUser = await getAdminUser()
14 logger.info({ message: `merging post`,id: post.id })
15 if (post.bskyUri && !post.remotePostId) {
16 // bsky post
17 await processSinglePost(post.bskyUri, true)
18 } else if (post.remotePostId && !post.bskyUri) {
19 // fedi post
20 const remotePost = await getPostThreadRecursive(adminUser, post.remotePostId)
21 if (remotePost) {
22 await getPostThreadRecursive(adminUser, post.remotePostId, undefined, remotePost.id)
23 }
24 }
25 }
26}
27
28export {mergePost}