diff --git a/src/all/komga/CHANGELOG.md b/src/all/komga/CHANGELOG.md index 27eb5d5c9..e486f4fe3 100644 --- a/src/all/komga/CHANGELOG.md +++ b/src/all/komga/CHANGELOG.md @@ -1,6 +1,14 @@ +## 1.2.15 + +Minimum Komga version required: `0.56.0` + +### Features + +* remove the 1000 chapters limit + ## 1.2.14 -Requires Komga `0.41.0` +Minimum Komga version required: `0.41.0` ### Features @@ -8,7 +16,7 @@ Requires Komga `0.41.0` ## 1.2.13 -Requires Komga `0.41.0` +Minimum Komga version required: `0.41.0` ### Features @@ -16,7 +24,7 @@ Requires Komga `0.41.0` ## 1.2.12 -Requires Komga `0.41.0` +Minimum Komga version required: `0.41.0` ### Features @@ -24,7 +32,7 @@ Requires Komga `0.41.0` ## 1.2.11 -Requires Komga `0.35.2` +Minimum Komga version required: `0.35.2` ### Features @@ -32,7 +40,7 @@ Requires Komga `0.35.2` ## 1.2.10 -Requires Komga `0.35.2` +Minimum Komga version required: `0.35.2` ### Features @@ -41,7 +49,7 @@ Requires Komga `0.35.2` ## 1.2.9 -Requires Komga `0.22.0` +Minimum Komga version required: `0.22.0` ### Features @@ -49,7 +57,7 @@ Requires Komga `0.22.0` ## 1.2.8 -Requires Komga `0.22.0` +Minimum Komga version required: `0.22.0` ### Features diff --git a/src/all/komga/build.gradle b/src/all/komga/build.gradle index a08fff9df..3a93e1b15 100644 --- a/src/all/komga/build.gradle +++ b/src/all/komga/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Komga' pkgNameSuffix = 'all.komga' extClass = '.KomgaFactory' - extVersionCode = 14 + extVersionCode = 15 libVersion = '1.2' } diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt index 22726a717..cc9afdfd9 100644 --- a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt +++ b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt @@ -10,15 +10,11 @@ import com.github.salomonbrys.kotson.fromJson import com.google.gson.Gson import eu.kanade.tachiyomi.extension.BuildConfig import eu.kanade.tachiyomi.extension.all.komga.dto.BookDto -import eu.kanade.tachiyomi.extension.all.komga.dto.BookDtoOld import eu.kanade.tachiyomi.extension.all.komga.dto.CollectionDto -import eu.kanade.tachiyomi.extension.all.komga.dto.CollectionDtoOld import eu.kanade.tachiyomi.extension.all.komga.dto.LibraryDto -import eu.kanade.tachiyomi.extension.all.komga.dto.LibraryDtoOld import eu.kanade.tachiyomi.extension.all.komga.dto.PageDto import eu.kanade.tachiyomi.extension.all.komga.dto.PageWrapperDto import eu.kanade.tachiyomi.extension.all.komga.dto.SeriesDto -import eu.kanade.tachiyomi.extension.all.komga.dto.SeriesDtoOld import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.model.Filter @@ -124,25 +120,15 @@ open class Komga(suffix: String = "") : ConfigurableSource, HttpSource() { GET(baseUrl + manga.url, headers) override fun mangaDetailsParse(response: Response): SManga { - val series = try { - gson.fromJson<SeriesDto>(response.body()?.charStream()!!) - } catch (e: Exception) { - gson.fromJson<SeriesDtoOld>(response.body()?.charStream()!!) - .toSeriesDto() - } + val series = gson.fromJson<SeriesDto>(response.body()?.charStream()!!) return series.toSManga() } override fun chapterListRequest(manga: SManga): Request = - GET("$baseUrl${manga.url}/books?size=1000&media_status=READY", headers) + GET("$baseUrl${manga.url}/books?unpaged=true&media_status=READY", headers) override fun chapterListParse(response: Response): List<SChapter> { - val page = try { - gson.fromJson<PageWrapperDto<BookDto>>(response.body()?.charStream()!!).content - } catch (e: Exception) { - gson.fromJson<PageWrapperDto<BookDtoOld>>(response.body()?.charStream()!!).content - .map { it.toBookDto() } - } + val page = gson.fromJson<PageWrapperDto<BookDto>>(response.body()?.charStream()!!).content return page.map { book -> SChapter.create().apply { @@ -175,16 +161,9 @@ open class Komga(suffix: String = "") : ConfigurableSource, HttpSource() { private fun processSeriesPage(response: Response): MangasPage { var lastPage: Boolean - val page = try { - with(gson.fromJson<PageWrapperDto<SeriesDto>>(response.body()?.charStream()!!)) { - lastPage = last - content - } - } catch (e: Exception) { - with(gson.fromJson<PageWrapperDto<SeriesDtoOld>>(response.body()?.charStream()!!)) { - lastPage = last - content.map { it.toSeriesDto() } - } + val page = with(gson.fromJson<PageWrapperDto<SeriesDto>>(response.body()?.charStream()!!)) { + lastPage = last + content } val mangas = page.map { it.toSManga() @@ -202,6 +181,10 @@ open class Komga(suffix: String = "") : ConfigurableSource, HttpSource() { "ENDED" -> SManga.COMPLETED else -> SManga.UNKNOWN } + // TODO: remove safe calls in next iteration + genre = (metadata.genres?.plus(metadata.tags ?: emptySet()) + ?: emptySet()).joinToString(", ") + description = metadata.summary } private fun parseDate(date: String?): Long = @@ -346,12 +329,7 @@ open class Komga(suffix: String = "") : ConfigurableSource, HttpSource() { libraries = try { gson.fromJson(response.body()?.charStream()!!) } catch (e: Exception) { - try { - gson.fromJson<List<LibraryDtoOld>>(response.body()?.charStream()!!) - .map { it.toLibraryDto() } - } catch (e: Exception) { - emptyList() - } + emptyList() } }, {}) @@ -364,12 +342,7 @@ open class Komga(suffix: String = "") : ConfigurableSource, HttpSource() { collections = try { gson.fromJson<PageWrapperDto<CollectionDto>>(response.body()?.charStream()!!).content } catch (e: Exception) { - try { - gson.fromJson<PageWrapperDto<CollectionDtoOld>>(response.body()?.charStream()!!).content - .map { it.toCollectionDto() } - } catch (e: Exception) { - emptyList() - } + emptyList() } }, {}) } diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/Dto.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/Dto.kt index b6bc0d951..cf6c7b31e 100644 --- a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/Dto.kt +++ b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/Dto.kt @@ -21,7 +21,21 @@ data class SeriesMetadataDto( val created: String?, val lastModified: String?, val title: String, - val titleSort: String + val titleSort: String, + val summary: String, + val summaryLock: Boolean, + val readingDirection: String, + val readingDirectionLock: Boolean, + val publisher: String, + val publisherLock: Boolean, + val ageRating: Int?, + val ageRatingLock: Boolean, + val language: String, + val languageLock: Boolean, + val genres: Set<String>?, //TODO: remove optional in next iteration + val genresLock: Boolean, + val tags: Set<String>?, //TODO: remove optional in next iteration + val tagsLock: Boolean ) data class BookDto( @@ -59,12 +73,6 @@ data class BookMetadataDto( val numberLock: Boolean, val numberSort: Float, val numberSortLock: Boolean, - val readingDirection: String, - val readingDirectionLock: Boolean, - val publisher: String, - val publisherLock: Boolean, - val ageRating: Int?, - val ageRatingLock: Boolean, val releaseDate: String?, val releaseDateLock: Boolean, val authors: List<AuthorDto>, diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/DtoOld.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/DtoOld.kt deleted file mode 100644 index d024cbad0..000000000 --- a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/dto/DtoOld.kt +++ /dev/null @@ -1,49 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.komga.dto - -data class LibraryDtoOld( - val id: Long, - val name: String -) { - fun toLibraryDto() = LibraryDto(id.toString(), name) -} - -data class SeriesDtoOld( - val id: Long, - val libraryId: Long, - val name: String, - val created: String?, - val lastModified: String?, - val fileLastModified: String, - val booksCount: Int, - val metadata: SeriesMetadataDto -) { - fun toSeriesDto() = SeriesDto(id.toString(), libraryId.toString(), name, created, lastModified, fileLastModified, booksCount, metadata) -} - -data class BookDtoOld( - val id: Long, - val seriesId: Long, - val name: String, - val number: Float, - val created: String?, - val lastModified: String?, - val fileLastModified: String, - val sizeBytes: Long, - val size: String, - val media: MediaDto, - val metadata: BookMetadataDto -) { - fun toBookDto() = BookDto(id.toString(), seriesId.toString(), name, number, created, lastModified, fileLastModified, sizeBytes, size, media, metadata) -} - -data class CollectionDtoOld( - val id: Long, - val name: String, - val ordered: Boolean, - val seriesIds: List<Long>, - val createdDate: String, - val lastModifiedDate: String, - val filtered: Boolean -) { - fun toCollectionDto() = CollectionDto(id.toString(), name, ordered, seriesIds, createdDate, lastModifiedDate, filtered) -}