assign thread if parent is with thread

This commit is contained in:
Jurgis
2026-02-26 09:44:54 +02:00
committed by GitHub
parent 64e8dcc589
commit d2a118ea7e
+37
View File
@@ -47,4 +47,41 @@ export async function assignThread(repository: Repository) {
})
console.log(`Updating reply thread for ${replyWithoutThreadWithRoot.totalItems} articles. Total pages: ${replyWithoutThreadWithRoot.totalPages}`);
}
// replies with parent with threads
let replyWithoutThreadWithParent = await repository.getArticlesCollection().getList(1, 100, {
filter: 'thread=null&&parent.thread!=null',
expand: 'parent',
});
let totalItems = replyWithoutThreadWithParent.totalItems > replyWithoutThreadWithParent.perPage ? replyWithoutThreadWithParent.perPage : replyWithoutThreadWithParent.totalItems;
let passNum = 1
console.log(`Updating reply thread (parent based) for ${totalItems} articles. Pass #: ${passNum}`);
while (replyWithoutThreadWithParent.items.length > 0) {
for (const item of replyWithoutThreadWithParent.items) {
// @ts-ignore
const rootId = item?.expand?.parent?.thread;
if (rootId) {
await repository.updateArticle(item.id, { thread: rootId });
}
}
replyWithoutThreadWithParent = await repository.getArticlesCollection().getList(1, 100, {
filter: 'thread=null&&parent.thread!=null',
expand: 'parent',
})
totalItems = replyWithoutThreadWithParent.totalItems > replyWithoutThreadWithParent.perPage ? replyWithoutThreadWithParent.perPage : replyWithoutThreadWithParent.totalItems;
passNum += 1
console.log(`Updating reply thread (parent based) for ${totalItems} articles. Pass #: ${passNum}`);
// prevent infinite loop
if (passNum > 20) {
console.log('replyWithoutThreadWithParent::break preventing infinite loop');
break;
}
}
}