Fix chapters and categories not being added to database

Closes #3278
Fixes #3291
This commit is contained in:
AntsyLich
2026-05-12 02:04:58 +06:00
parent cb2a0ea570
commit b4a3ec0b32
6 changed files with 20 additions and 22 deletions
@@ -28,7 +28,6 @@ class CategoriesRestorer(
val order = nextOrder++ val order = nextOrder++
database.categoriesQueries database.categoriesQueries
.insert(it.name, order, it.flags) .insert(it.name, order, it.flags)
.awaitAsOne()
.let { id -> it.toCategory(id).copy(order = order) } .let { id -> it.toCategory(id).copy(order = order) }
} }
@@ -241,7 +241,7 @@ class MangaRestorer(
* @return id of [Manga], null if not found * @return id of [Manga], null if not found
*/ */
private suspend fun insertManga(manga: Manga): Long { private suspend fun insertManga(manga: Manga): Long {
return database.mangasQueries.insert( return database.mangasQueries.insertReturningId(
source = manga.source, source = manga.source,
url = manga.url, url = manga.url,
artist = manga.artist, artist = manga.artist,
@@ -21,7 +21,7 @@ class ChapterRepositoryImpl(
return try { return try {
database.transactionWithResult { database.transactionWithResult {
chapters.map { chapter -> chapters.map { chapter ->
val lastInsertId = database.chaptersQueries.insert( val chapterId = database.chaptersQueries.insertReturningId(
chapter.mangaId, chapter.mangaId,
chapter.url, chapter.url,
chapter.name, chapter.name,
@@ -34,8 +34,9 @@ class ChapterRepositoryImpl(
chapter.dateFetch, chapter.dateFetch,
chapter.dateUpload, chapter.dateUpload,
chapter.version, chapter.version,
).awaitAsOne() )
chapter.copy(id = lastInsertId) .awaitAsOne()
chapter.copy(id = chapterId)
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
@@ -42,13 +42,10 @@ JOIN mangas_categories MC
ON C._id = MC.category_id ON C._id = MC.category_id
WHERE MC.manga_id = :mangaId; WHERE MC.manga_id = :mangaId;
insert { insert:
INSERT INTO categories(name, sort, flags) INSERT INTO categories(name, sort, flags)
VALUES (:name, :order, :flags); VALUES (:name, :order, :flags);
SELECT last_insert_rowid();
}
delete: delete:
DELETE FROM categories DELETE FROM categories
WHERE _id = :categoryId; WHERE _id = :categoryId;
@@ -97,12 +97,15 @@ UPDATE chapters
SET is_syncing = 0 SET is_syncing = 0
WHERE is_syncing = 1; WHERE is_syncing = 1;
insert { insert:
INSERT INTO chapters(manga_id, url, name, scanlator, read, bookmark, last_page_read, chapter_number, source_order, date_fetch, date_upload, last_modified_at, version, is_syncing) INSERT INTO chapters(manga_id, url, name, scanlator, read, bookmark, last_page_read, chapter_number, source_order, date_fetch, date_upload, last_modified_at, version, is_syncing)
VALUES (:mangaId, :url, :name, :scanlator, :read, :bookmark, :lastPageRead, :chapterNumber, :sourceOrder, :dateFetch, :dateUpload, 0, :version, 0); VALUES (:mangaId, :url, :name, :scanlator, :read, :bookmark, :lastPageRead, :chapterNumber, :sourceOrder, :dateFetch, :dateUpload, 0, :version, 0);
SELECT last_insert_rowid(); insertReturningId:
} INSERT INTO chapters(manga_id, url, name, scanlator, read, bookmark, last_page_read, chapter_number, source_order, date_fetch, date_upload, last_modified_at, version, is_syncing)
VALUES (:mangaId, :url, :name, :scanlator, :read, :bookmark, :lastPageRead, :chapterNumber, :sourceOrder, :dateFetch, :dateUpload, 0, :version, 0)
RETURNING _id;
update: update:
UPDATE chapters UPDATE chapters
SET manga_id = coalesce(:mangaId, manga_id), SET manga_id = coalesce(:mangaId, manga_id),
@@ -193,12 +193,10 @@ AND (
) )
); );
insert { insertReturningId:
INSERT INTO mangas(source, url, artist, author, description, genre, title, status, thumbnail_url, favorite, last_update, next_update, initialized, viewer, chapter_flags, cover_last_modified, date_added, update_strategy, calculate_interval, last_modified_at, version, notes) INSERT INTO mangas(source, url, artist, author, description, genre, title, status, thumbnail_url, favorite, last_update, next_update, initialized, viewer, chapter_flags, cover_last_modified, date_added, update_strategy, calculate_interval, last_modified_at, version, notes)
VALUES (:source, :url, :artist, :author, :description, :genre, :title, :status, :thumbnailUrl, :favorite, :lastUpdate, :nextUpdate, :initialized, :viewerFlags, :chapterFlags, :coverLastModified, :dateAdded, :updateStrategy, :calculateInterval, 0, :version, :notes); VALUES (:source, :url, :artist, :author, :description, :genre, :title, :status, :thumbnailUrl, :favorite, :lastUpdate, :nextUpdate, :initialized, :viewerFlags, :chapterFlags, :coverLastModified, :dateAdded, :updateStrategy, :calculateInterval, 0, :version, :notes)
RETURNING _id;
SELECT last_insert_rowid();
}
update: update:
UPDATE mangas SET UPDATE mangas SET