From d6e8394510c9ce516ffe60c7f7e2de8386d9657f Mon Sep 17 00:00:00 2001 From: az4521 <18432684+az4521@users.noreply.github.com> Date: Tue, 16 Jan 2024 07:48:06 +0000 Subject: [PATCH] fix the exception in initializer error --- app/build.gradle | 16 ++++----- .../tachiyomi/source/online/LewdSource.kt | 2 +- .../tachiyomi/source/online/all/EHentai.kt | 19 +++++----- .../tachiyomi/source/online/all/Hitomi.kt | 2 +- .../tachiyomi/source/online/all/PervEden.kt | 2 +- .../source/online/english/HentaiCafe.kt | 2 +- .../source/online/english/Tsumino.kt | 2 +- .../metadata/EHentaiSearchMetadata.kt | 1 - .../metadata/EightMusesSearchMetadata.kt | 1 - .../metadata/HBrowseSearchMetadata.kt | 1 - .../metadata/HentaiCafeSearchMetadata.kt | 1 - .../metadata/metadata/HitomiSearchMetadata.kt | 1 - .../metadata/NHentaiSearchMetadata.kt | 1 - .../metadata/PervEdenSearchMetadata.kt | 1 - .../metadata/PururinSearchMetadata.kt | 1 - .../{base => }/RaisedSearchMetadata.kt | 36 +++---------------- .../metadata/TsuminoSearchMetadata.kt | 1 - .../metadata/metadata/base/FlatMetadata.kt | 2 +- build.gradle.kts | 4 +-- 19 files changed, 32 insertions(+), 64 deletions(-) rename app/src/main/java/exh/metadata/metadata/{base => }/RaisedSearchMetadata.kt (76%) diff --git a/app/build.gradle b/app/build.gradle index a56eb6b7e567..1ee538446304 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -395,14 +395,14 @@ repositories { // See https://kotlinlang.org/docs/reference/experimental.html#experimental-status-of-experimental-api-markers tasks.withType(AbstractKotlinCompile).all { - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental"] - kotlinOptions.freeCompilerArgs += ["-Xopt-in=kotlin.RequiresOptIn"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlin.ExperimentalStdlibApi"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.FlowPreview"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.InternalCoroutinesApi"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.serialization.ExperimentalSerializationApi"] - kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=coil.annotation.ExperimentalCoilApi"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental"] + //kotlinOptions.freeCompilerArgs += ["-Xopt-in=kotlin.RequiresOptIn"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlin.ExperimentalStdlibApi"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.FlowPreview"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.coroutines.InternalCoroutinesApi"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlinx.serialization.ExperimentalSerializationApi"] + //kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=coil.annotation.ExperimentalCoilApi"] } // Duplicating Hebrew string assets due to some locale code issues on different devices diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/LewdSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/LewdSource.kt index 738fa3e9ca7e..14dbf4f0c424 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/LewdSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/LewdSource.kt @@ -6,7 +6,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga -import exh.metadata.metadata.base.RaisedSearchMetadata +import exh.metadata.metadata.RaisedSearchMetadata import exh.metadata.metadata.base.getFlatMetadataForManga import exh.metadata.metadata.base.insertFlatMetadata import kotlin.reflect.KClass diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt index 78ce0234e5a6..b3225e79f6bb 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/EHentai.kt @@ -36,7 +36,7 @@ import exh.metadata.metadata.EHentaiSearchMetadata import exh.metadata.metadata.EHentaiSearchMetadata.Companion.EH_GENRE_NAMESPACE import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_LIGHT import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_NORMAL -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.base.RaisedTag import exh.metadata.nullIfBlank import exh.metadata.parseHumanReadableByteCount @@ -105,11 +105,13 @@ class EHentai( // Do not parse header and ads it.selectFirst("th") == null && it.selectFirst(".itd") == null }.map { - val thumbnailElement = it.selectFirst(".gl1e img, .gl2c .glthumb img") - val column2 = it.selectFirst(".gl3e, .gl2c") - val linkElement = it.selectFirst(".gl3c > a, .gl2e > div > a") + val thumbnailElement = it.selectFirst(".gl1e img, .gl2c .glthumb img")!! + val column2 = it.selectFirst(".gl3e, .gl2c")!! + val linkElement = it.selectFirst(".gl3c > a, .gl2e > div > a")!! - val favElement = column2!!.children().find { it.attr("style").startsWith("border-color") } + XLog.d(linkElement.attr("href")) + + val favElement = column2.children().find { it.attr("style").startsWith("border-color") } ParsedManga( fav = FAVORITES_BORDER_HEX_COLORS.indexOf( @@ -117,10 +119,11 @@ class EHentai( ), manga = Manga.create(id).apply { // Get title - title = thumbnailElement!!.attr("title") - url = EHentaiSearchMetadata.normalizeUrl(linkElement!!.attr("href")) + title = thumbnailElement.attr("title") + + url = EHentaiSearchMetadata.normalizeUrl(linkElement.attr("href")) // Get image - thumbnail_url = thumbnailElement!!.attr("src") + thumbnail_url = thumbnailElement.attr("src") // TODO Parse genre + uploader + tags } diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt index d045893c1bf1..279b531d4c94 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/Hitomi.kt @@ -26,7 +26,7 @@ import exh.metadata.metadata.HitomiSearchMetadata import exh.metadata.metadata.HitomiSearchMetadata.Companion.BASE_URL import exh.metadata.metadata.HitomiSearchMetadata.Companion.LTN_BASE_URL import exh.metadata.metadata.HitomiSearchMetadata.Companion.TAG_TYPE_DEFAULT -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.base.RaisedTag import exh.util.urlImportFetchSearchManga import java.text.SimpleDateFormat diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/PervEden.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/PervEden.kt index d01f7dbf30ad..75a1d4dab2b4 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/PervEden.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/PervEden.kt @@ -17,7 +17,7 @@ import eu.kanade.tachiyomi.util.chapter.ChapterRecognition import exh.metadata.metadata.PervEdenLang import exh.metadata.metadata.PervEdenSearchMetadata import exh.metadata.metadata.PervEdenSearchMetadata.Companion.TAG_TYPE_DEFAULT -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.base.RaisedTag import exh.util.UriFilter import exh.util.UriGroup diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HentaiCafe.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HentaiCafe.kt index 0ba57a142a39..256924504410 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HentaiCafe.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/HentaiCafe.kt @@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.util.asJsoup import exh.metadata.metadata.HentaiCafeSearchMetadata import exh.metadata.metadata.HentaiCafeSearchMetadata.Companion.TAG_TYPE_DEFAULT -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.base.RaisedTag import exh.source.DelegatedHttpSource import exh.util.urlImportFetchSearchManga diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt index b61a0fe2b9fa..0690775a887b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Tsumino.kt @@ -8,9 +8,9 @@ import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.LewdSource import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.util.asJsoup +import exh.metadata.metadata.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.TsuminoSearchMetadata import exh.metadata.metadata.TsuminoSearchMetadata.Companion.TAG_TYPE_DEFAULT -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL import exh.metadata.metadata.base.RaisedTag import exh.source.DelegatedHttpSource import exh.util.urlImportFetchSearchManga diff --git a/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt index 245150932916..7f219e0dbf2e 100755 --- a/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt @@ -6,7 +6,6 @@ import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.EX_DATE_FORMAT import exh.metadata.ONGOING_SUFFIX import exh.metadata.humanReadableByteCount -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import java.util.Date import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt index 5904dfd0e5eb..62cc42918fd6 100755 --- a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt @@ -1,7 +1,6 @@ package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt index cc7168f6b406..93c31db54dd0 100755 --- a/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt @@ -2,7 +2,6 @@ package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.metadata.EightMusesSearchMetadata.Companion.ARTIST_NAMESPACE -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt index ad6fc0a4279d..fe78de15c3be 100755 --- a/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt @@ -1,7 +1,6 @@ package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga -import exh.metadata.metadata.base.RaisedSearchMetadata import kotlinx.serialization.Serializable @Serializable diff --git a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt index c4520116c4e9..d6a29d4d74a9 100755 --- a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt @@ -2,7 +2,6 @@ package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.EX_DATE_FORMAT -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import java.util.Date import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt index a1390b710a1f..c93a934039ed 100755 --- a/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt @@ -4,7 +4,6 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.EX_DATE_FORMAT import exh.metadata.ONGOING_SUFFIX -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.metadata.nullIfBlank import exh.plusAssign import java.util.Date diff --git a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt index 5fc97e26e9b3..1adc5cea426f 100755 --- a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt @@ -4,7 +4,6 @@ import android.net.Uri import eu.kanade.tachiyomi.source.model.SManga import exh.PERV_EDEN_EN_SOURCE_ID import exh.PERV_EDEN_IT_SOURCE_ID -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.metadata.metadata.base.RaisedTitle import exh.plusAssign import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt index b97c4ed1c73e..a56c20694e08 100755 --- a/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt @@ -1,7 +1,6 @@ package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/RaisedSearchMetadata.kt similarity index 76% rename from app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt rename to app/src/main/java/exh/metadata/metadata/RaisedSearchMetadata.kt index f90c419c4ea5..9fa62dd3c48a 100755 --- a/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/RaisedSearchMetadata.kt @@ -1,34 +1,23 @@ -package exh.metadata.metadata.base +package exh.metadata.metadata import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.forEach -import exh.metadata.metadata.EHentaiSearchMetadata -import exh.metadata.metadata.EightMusesSearchMetadata -import exh.metadata.metadata.HBrowseSearchMetadata -import exh.metadata.metadata.HentaiCafeSearchMetadata -import exh.metadata.metadata.HitomiSearchMetadata -import exh.metadata.metadata.NHentaiSearchMetadata -import exh.metadata.metadata.PervEdenSearchMetadata -import exh.metadata.metadata.PururinSearchMetadata -import exh.metadata.metadata.TsuminoSearchMetadata +import exh.metadata.metadata.base.FlatMetadata +import exh.metadata.metadata.base.RaisedTag +import exh.metadata.metadata.base.RaisedTitle import exh.metadata.sql.models.SearchMetadata import exh.metadata.sql.models.SearchTag import exh.metadata.sql.models.SearchTitle import exh.plusAssign import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty -import kotlinx.serialization.Polymorphic import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json -import kotlinx.serialization.modules.SerializersModule -import kotlinx.serialization.modules.polymorphic -import kotlinx.serialization.modules.subclass -@Polymorphic @Serializable -abstract class RaisedSearchMetadata { +sealed class RaisedSearchMetadata { @Transient var mangaId: Long = -1 @@ -134,23 +123,8 @@ abstract class RaisedSearchMetadata { // Virtual tags allow searching of otherwise unindexed fields const val TAG_TYPE_VIRTUAL = -2 - private val module = SerializersModule { - polymorphic(RaisedSearchMetadata::class) { - subclass(EHentaiSearchMetadata::class) - subclass(EightMusesSearchMetadata::class) - subclass(HBrowseSearchMetadata::class) - subclass(HentaiCafeSearchMetadata::class) - subclass(HitomiSearchMetadata::class) - subclass(NHentaiSearchMetadata::class) - subclass(PervEdenSearchMetadata::class) - subclass(PururinSearchMetadata::class) - subclass(TsuminoSearchMetadata::class) - } - } - val raiseFlattenJson = Json { ignoreUnknownKeys = true - serializersModule = module } fun titleDelegate(type: Int) = object : ReadWriteProperty { diff --git a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt index c9f8fcedf04f..c25ee4bd8710 100755 --- a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt @@ -3,7 +3,6 @@ package exh.metadata.metadata import android.net.Uri import eu.kanade.tachiyomi.source.model.SManga import exh.metadata.EX_DATE_FORMAT -import exh.metadata.metadata.base.RaisedSearchMetadata import exh.plusAssign import java.util.Date import kotlinx.serialization.Serializable diff --git a/app/src/main/java/exh/metadata/metadata/base/FlatMetadata.kt b/app/src/main/java/exh/metadata/metadata/base/FlatMetadata.kt index e334454f6398..a0b921bd1b4a 100755 --- a/app/src/main/java/exh/metadata/metadata/base/FlatMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/base/FlatMetadata.kt @@ -2,13 +2,13 @@ package exh.metadata.metadata.base import com.pushtorefresh.storio.operations.PreparedOperation import eu.kanade.tachiyomi.data.database.DatabaseHelper +import exh.metadata.metadata.RaisedSearchMetadata import exh.metadata.sql.models.SearchMetadata import exh.metadata.sql.models.SearchTag import exh.metadata.sql.models.SearchTitle import kotlin.reflect.KClass import kotlinx.serialization.InternalSerializationApi import kotlinx.serialization.Serializable -import kotlinx.serialization.decodeFromString import kotlinx.serialization.serializer import rx.Completable import rx.Single diff --git a/build.gradle.kts b/build.gradle.kts index 19c7a680baf6..98d96b9686e4 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ plugins { id("com.android.application") version BuildPluginsVersion.AGP apply false id("com.android.library") version BuildPluginsVersion.AGP apply false kotlin("android") version BuildPluginsVersion.KOTLIN apply false - //id("org.jetbrains.kotlin.plugin.parcelize") version BuildPluginsVersion.KOTLIN + kotlin("plugin.serialization") version BuildPluginsVersion.KOTLIN id("org.jlleitschuh.gradle.ktlint") version BuildPluginsVersion.KTLINT id("com.github.ben-manes.versions") version BuildPluginsVersion.VERSIONS_PLUGIN } @@ -45,7 +45,7 @@ buildscript { classpath("com.github.zellius:android-shortcut-gradle-plugin:0.1.2") classpath("com.google.gms:google-services:4.3.5") classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") - classpath(kotlin("serialization", version = "1.4.21")) + classpath(kotlin("serialization", version = "1.9.22")) // Realm (EH) classpath("io.realm:realm-gradle-plugin:7.0.1")