diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-12-08 10:47:13 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2025-12-08 10:47:13 +0000 |
| commit | 6886385ce239f63271639f047093ba307c87f2e6 (patch) | |
| tree | c76c548fb8c357615951b98f0171ec734248036d /packages/trpc/models/importSessions.ts | |
| parent | 20d3761c89d566cf28ef1a22db14ad4f6eef2f17 (diff) | |
| download | karakeep-6886385ce239f63271639f047093ba307c87f2e6.tar.zst | |
fix: fix correctly accounting for text bookmark in import sessions. #2208
Diffstat (limited to 'packages/trpc/models/importSessions.ts')
| -rw-r--r-- | packages/trpc/models/importSessions.ts | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/packages/trpc/models/importSessions.ts b/packages/trpc/models/importSessions.ts index 56bcaf9a..c324cf7f 100644 --- a/packages/trpc/models/importSessions.ts +++ b/packages/trpc/models/importSessions.ts @@ -123,22 +123,34 @@ export class ImportSession { }; statusCounts.forEach((statusCount) => { - stats.totalBookmarks += statusCount.count; - if ( - statusCount.crawlStatus === "success" && - statusCount.taggingStatus === "success" - ) { - stats.completedBookmarks += statusCount.count; - } else if ( - statusCount.crawlStatus === "failure" || - statusCount.taggingStatus === "failure" - ) { - stats.failedBookmarks += statusCount.count; - } else if ( - statusCount.crawlStatus === "pending" || - statusCount.taggingStatus === "pending" - ) { - stats.pendingBookmarks += statusCount.count; + const { crawlStatus, taggingStatus, count } = statusCount; + + stats.totalBookmarks += count; + + const isCrawlFailure = crawlStatus === "failure"; + const isTagFailure = taggingStatus === "failure"; + if (isCrawlFailure || isTagFailure) { + stats.failedBookmarks += count; + return; + } + + const isCrawlPending = crawlStatus === "pending"; + const isTagPending = taggingStatus === "pending"; + if (isCrawlPending || isTagPending) { + stats.pendingBookmarks += count; + return; + } + + const isCrawlSuccessfulOrNotRequired = + crawlStatus === "success" || crawlStatus === null; + const isTagSuccessfulOrUnknown = + taggingStatus === "success" || taggingStatus === null; + + if (isCrawlSuccessfulOrNotRequired && isTagSuccessfulOrUnknown) { + stats.completedBookmarks += count; + } else { + // Fallback to pending to avoid leaving imports unclassified + stats.pendingBookmarks += count; } }); |
