Swap store content rating for warning and move to extension level

This commit is contained in:
AntsyLich
2026-06-21 21:35:51 +06:00
parent 5f5a034112
commit 3bb734dde7
@@ -4,7 +4,7 @@ import android.annotation.SuppressLint
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonNames import kotlinx.serialization.json.JsonNames
import kotlinx.serialization.protobuf.ProtoNumber import kotlinx.serialization.protobuf.ProtoNumber
import mihon.data.extension.model.NetworkExtensionStore.ContentRating import mihon.data.extension.model.NetworkExtensionStore.ContentWarning
import mihon.data.extension.model.NetworkExtensionStore.ExtensionList import mihon.data.extension.model.NetworkExtensionStore.ExtensionList
import mihon.domain.extension.model.ExtensionStore import mihon.domain.extension.model.ExtensionStore
import eu.kanade.tachiyomi.extension.model.Extension as TachiyomiExtension import eu.kanade.tachiyomi.extension.model.Extension as TachiyomiExtension
@@ -36,7 +36,8 @@ data class NetworkExtensionStore(
@ProtoNumber(4) val extensionLib: String, @ProtoNumber(4) val extensionLib: String,
@ProtoNumber(5) val versionCode: Long, @ProtoNumber(5) val versionCode: Long,
@ProtoNumber(6) val versionName: String, @ProtoNumber(6) val versionName: String,
@ProtoNumber(7) val sources: List<Source>, @ProtoNumber(7) val contentWarning: ContentWarning = ContentWarning.SAFE,
@ProtoNumber(8) val sources: List<Source>,
) )
@Serializable @Serializable
@@ -52,27 +53,23 @@ data class NetworkExtensionStore(
@ProtoNumber(3) val language: String, @ProtoNumber(3) val language: String,
@ProtoNumber(4) val homeUrl: String = "", @ProtoNumber(4) val homeUrl: String = "",
@ProtoNumber(5) val mirrorUrls: List<String> = emptyList(), @ProtoNumber(5) val mirrorUrls: List<String> = emptyList(),
@ProtoNumber(6) val contentRating: ContentRating = ContentRating.SAFE, // @ProtoNumber(6) val contentWarning: ContentWarning = ContentWarning.SAFE,
@ProtoNumber(7) val message: String? = null, @ProtoNumber(7) val message: String? = null,
) )
@Suppress("Unused") @Suppress("Unused")
enum class ContentRating { enum class ContentWarning {
@ProtoNumber(0) @ProtoNumber(0)
@JsonNames("CONTENT_RATING_SAFE") @JsonNames("CONTENT_WARNING_SAFE")
SAFE, SAFE,
@ProtoNumber(1) @ProtoNumber(1)
@JsonNames("CONTENT_RATING_SUGGESTIVE") @JsonNames("CONTENT_WARNING_MIXED")
SUGGESTIVE, MIXED,
@ProtoNumber(2) @ProtoNumber(2)
@JsonNames("CONTENT_RATING_EROTICA") @JsonNames("CONTENT_WARNING_NSFW")
EROTICA, NSFW,
@ProtoNumber(3)
@JsonNames("CONTENT_RATING_PORNOGRAPHIC")
PORNOGRAPHIC,
} }
override fun toExtensionStore(indexUrl: String): ExtensionStore { override fun toExtensionStore(indexUrl: String): ExtensionStore {
@@ -103,7 +100,7 @@ fun ExtensionList.toAvailableExtensions(store: ExtensionStore): List<TachiyomiEx
versionCode = extension.versionCode, versionCode = extension.versionCode,
versionName = extension.versionName, versionName = extension.versionName,
lang = if (lang.size == 1) lang.first() else "all", lang = if (lang.size == 1) lang.first() else "all",
isNsfw = extension.sources.maxOfOrNull { it.contentRating } == ContentRating.PORNOGRAPHIC, isNsfw = extension.contentWarning >= ContentWarning.MIXED,
sources = extension.sources.map { source -> sources = extension.sources.map { source ->
TachiyomiExtension.Available.Source( TachiyomiExtension.Available.Source(
id = source.id, id = source.id,