Complete source mutations (#567)

This commit is contained in:
Mitchell Syer
2023-06-05 09:19:03 -04:00
committed by GitHub
parent 300c0a8f35
commit 7c3eff2ba7
5 changed files with 161 additions and 7 deletions

View File

@@ -44,6 +44,34 @@ object MangaList {
return mangasPage.processEntries(sourceId)
}
fun MangasPage.insertOrGet(sourceId: Long): List<Int> {
return transaction {
mangas.map { manga ->
val mangaEntry = MangaTable.select {
(MangaTable.url eq manga.url) and (MangaTable.sourceReference eq sourceId)
}.firstOrNull()
if (mangaEntry == null) { // create manga entry
MangaTable.insertAndGetId {
it[url] = manga.url
it[title] = manga.title
it[artist] = manga.artist
it[author] = manga.author
it[description] = manga.description
it[genre] = manga.genre
it[status] = manga.status
it[thumbnail_url] = manga.thumbnail_url
it[updateStrategy] = manga.update_strategy.name
it[sourceReference] = sourceId
}.value
} else {
mangaEntry[MangaTable.id].value
}
}
}
}
fun MangasPage.processEntries(sourceId: Long): PagedMangaListDataClass {
val mangasPage = this
val mangaList = transaction {

View File

@@ -125,7 +125,7 @@ object Search {
return filterList
}
private fun buildFilterList(sourceId: Long, changes: List<FilterChange>): FilterList {
fun buildFilterList(sourceId: Long, changes: List<FilterChange>): FilterList {
val source = getCatalogueSourceOrStub(sourceId)
val filterList = source.getFilterList()
return updateFilterList(filterList, changes)