From 45174af3c2f258c5f61d75fa31f3fc412d9effa1 Mon Sep 17 00:00:00 2001 From: Rajarshee Chatterjee Date: Tue, 21 Oct 2025 15:20:34 +0530 Subject: [PATCH] =?UTF-8?q?fix:=20Include=20Imported=20Entries=20in=20?= =?UTF-8?q?=E2=80=9CDownloaded=20Only=E2=80=9D=20Mode=20(Closes=20#1261)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/database/queries/LibraryQueries.ts | 3 +-- src/database/tables/NovelTable.ts | 1 + src/screens/library/constants/constants.ts | 2 +- src/services/epub/import.ts | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/database/queries/LibraryQueries.ts b/src/database/queries/LibraryQueries.ts index 05a7c57b..6fb3cefc 100644 --- a/src/database/queries/LibraryQueries.ts +++ b/src/database/queries/LibraryQueries.ts @@ -1,4 +1,3 @@ -import { LibraryFilter } from '@screens/library/constants/constants'; import { LibraryNovelInfo, NovelInfo } from '../types'; import { getAllSync } from '../utils/helpers'; @@ -15,7 +14,7 @@ export const getLibraryNovelsFromDb = ( } if (downloadedOnlyMode) { - query += ` ${LibraryFilter.DownloadedOnly}`; + query += ` AND (chaptersDownloaded = 1 OR isLocal = 1)`; } if (searchText) { diff --git a/src/database/tables/NovelTable.ts b/src/database/tables/NovelTable.ts index cb1a56f2..acba784a 100644 --- a/src/database/tables/NovelTable.ts +++ b/src/database/tables/NovelTable.ts @@ -38,6 +38,7 @@ BEGIN UPDATE Novel SET totalChapters = (SELECT COUNT(*) FROM Chapter WHERE Chapter.novelId = Novel.id), + chaptersDownloaded = (SELECT COUNT(*) FROM Chapter WHERE Chapter.novelId = Novel.id AND Chapter.isDownloaded = 1), chaptersUnread = (SELECT COUNT(*) FROM Chapter WHERE Chapter.novelId = Novel.id AND Chapter.unread = 1), lastUpdatedAt = (SELECT MAX(updatedTime) FROM Chapter WHERE Chapter.novelId = Novel.id) WHERE id = NEW.novelId; diff --git a/src/screens/library/constants/constants.ts b/src/screens/library/constants/constants.ts index 493b9779..5e8dbae9 100644 --- a/src/screens/library/constants/constants.ts +++ b/src/screens/library/constants/constants.ts @@ -1,7 +1,7 @@ import { getString } from '@strings/translations'; export enum LibraryFilter { - Downloaded = 'chaptersDownloaded > 0', + Downloaded = '(chaptersDownloaded > 0 OR isLocal = 1)', Unread = 'lastReadAt IS NULL', Completed = "status LIKE 'Completed'", DownloadedOnly = 'AND chaptersDownloaded > 0', diff --git a/src/services/epub/import.ts b/src/services/epub/import.ts index 97deaa3b..0ddfee06 100644 --- a/src/services/epub/import.ts +++ b/src/services/epub/import.ts @@ -75,12 +75,13 @@ const insertLocalChapter = async ( releaseTime: string, ) => { const insertedChapter = await db.runAsync( - 'INSERT INTO Chapter(novelId, name, path, releaseTime, position) VALUES(?, ?, ?, ?, ?)', + 'INSERT INTO Chapter(novelId, name, path, releaseTime, position, isDownloaded) VALUES(?, ?, ?, ?, ?, ?)', novelId, name, NOVEL_STORAGE + '/local/' + novelId + '/' + fakeId, releaseTime, fakeId, + 1, ); if (insertedChapter.lastInsertRowId && insertedChapter.lastInsertRowId >= 0) { let chapterText: string = '';