mirror of
https://github.com/sakaljurgis/nntp-worker.git
synced 2026-07-08 21:27:41 +00:00
assign thread if parent is with thread
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user