Conversation
kemono's API stopped always including the added and edited fields on post objects. KemonoPostDto declared them as nullable String? but without a default value, so kotlinx.serialization still required the JSON key to be present and threw MissingFieldException the moment either was omitted, taking down chapter listing and page listing for every post entirely. Both fields are already treated as optional by toSChapter()'s edited ?: published ?: added fallback, so giving them (and published, same fallback chain) an explicit null default lets parsing tolerate a missing key instead of failing the whole post. Bumped the shared kemono theme's baseVersionCode since this lib is shared with src/all/kemono.
KeiSource sets Referer and Origin on every request and installs its own compression interceptor, so the hand-rolled headersBuilder and the Brotli reordering hack both go away. Details and chapters now share one fetchMangaUpdate that honours the fetchDetails/fetchChapters flags, and the 429 retry loop sleeps with delay instead of blocking a thread. Post dates no longer mutate a shared SimpleDateFormat's time zone from fetchChapterList; the zone is passed to toSChapter and parsed with DateTimeFormatter, which also drops the deprecated tryParse. Both extensions on the theme (coomer, kemono) move to 1.6 with it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added
KemonoPostDtodefault value because they are not always returned by the apiCloses #16145
Checklist:
UpdatedversionCodevalue inbuild.gradle.ktsUpdatedbaseVersionCodeinbuild.gradle.kts(if updated multisrc theme code)versionCodevaluecontentWarningconfiguration inbuild.gradle.ktsappropriatelyidif a source's name or language were changedweb_hi_res_512.pngwhen adding a new extension