Fix merged manga chapters and merged manga filtered scanlators

This commit is contained in:
Jobobby04
2023-12-27 16:30:56 -05:00
parent d82b2919f8
commit 25f94e4500
5 changed files with 65 additions and 6 deletions
@@ -151,5 +151,17 @@ class ChapterRepositoryImpl(
)
}
}
override suspend fun getScanlatorsByMergeId(mangaId: Long): List<String> {
return handler.awaitList {
chaptersQueries.getScanlatorsByMergeId(mangaId) { it.orEmpty() }
}
}
override fun getScanlatorsByMergeIdAsFlow(mangaId: Long): Flow<List<String>> {
return handler.subscribeToList {
chaptersQueries.getScanlatorsByMergeId(mangaId) { it.orEmpty() }
}
}
// SY <--
}
@@ -71,20 +71,28 @@ AND manga_id = :mangaId;
getMergedChaptersByMangaId:
SELECT C.*
FROM chapters C
JOIN (
SELECT manga_id FROM merged WHERE merge_id = :mangaId
FROM (
SELECT manga_id,merge_id FROM merged WHERE merge_id = :mangaId
) AS M
JOIN chapters C
ON C.manga_id = M.manga_id
LEFT JOIN excluded_scanlators ES
ON C.manga_id = ES.manga_id
ON M.merge_id = ES.manga_id
AND C.scanlator = ES.scanlator
WHERE C.manga_id = :mangaId
WHERE M.merge_id = :mangaId
AND (
:applyScanlatorFilter = 0
OR ES.scanlator IS NULL
);
getScanlatorsByMergeId:
SELECT scanlator
FROM (
SELECT manga_id FROM merged WHERE merge_id = ?
) AS M
JOIN chapters
ON chapters.manga_id = M.manga_id;
removeChaptersWithIds:
DELETE FROM chapters
WHERE _id IN :chapterIds;