From 628eedf15afec4ab1003d32299bf83cdc9c234b5 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 26 Jan 2021 23:33:51 -0500 Subject: [PATCH] Remove duplicate raised search metadata code --- .../tachiyomi/source/online/all/NHentai.kt | 21 ++++++---- .../source/online/english/Pururin.kt | 6 +-- .../metadata/EHentaiSearchMetadata.kt | 38 ------------------ .../metadata/EightMusesSearchMetadata.kt | 18 --------- .../metadata/HBrowseSearchMetadata.kt | 21 ---------- .../metadata/HentaiCafeSearchMetadata.kt | 15 ------- .../metadata/metadata/HitomiSearchMetadata.kt | 17 -------- .../metadata/MangaDexSearchMetadata.kt | 36 ----------------- .../metadata/NHentaiSearchMetadata.kt | 39 +------------------ .../metadata/PervEdenSearchMetadata.kt | 26 ------------- .../metadata/PururinSearchMetadata.kt | 24 +----------- .../metadata/TsuminoSearchMetadata.kt | 14 ------- .../metadata/base/RaisedSearchMetadata.kt | 7 +++- 13 files changed, 26 insertions(+), 256 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt index 4f53b9f8d..bc648e94f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/all/NHentai.kt @@ -119,14 +119,18 @@ class NHentai(delegate: HttpSource, val context: Context) : @Serializable data class JsonResponse( val id: Long, - @SerialName("media_id") val mediaId: String? = null, + @SerialName("media_id") + val mediaId: String? = null, val title: JsonTitle? = null, val images: JsonImages? = null, val scanlator: String? = null, - @SerialName("upload_date") val uploadDate: Long? = null, + @SerialName("upload_date") + val uploadDate: Long? = null, val tags: List = emptyList(), - @SerialName("num_pages") val numPages: Int? = null, - @SerialName("num_favorites") val numFavorites: Long? = null + @SerialName("num_pages") + val numPages: Int? = null, + @SerialName("num_favorites") + val numFavorites: Long? = null ) @Serializable @@ -145,9 +149,12 @@ class NHentai(delegate: HttpSource, val context: Context) : @Serializable data class JsonPage( - @SerialName("t") val type: String? = null, - @SerialName("w") val width: Long? = null, - @SerialName("h") val height: Long? = null + @SerialName("t") + val type: String? = null, + @SerialName("w") + val width: Long? = null, + @SerialName("h") + val height: Long? = null ) @Serializable diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt index 48d81aa57..d933705c0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/online/english/Pururin.kt @@ -16,7 +16,7 @@ import eu.kanade.tachiyomi.source.online.UrlImportableSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.asJsoup import exh.metadata.metadata.PururinSearchMetadata -import exh.metadata.metadata.base.RaisedSearchMetadata.Companion.TAG_TYPE_VIRTUAL +import exh.metadata.metadata.base.RaisedSearchMetadata import exh.metadata.metadata.base.RaisedTag import exh.source.DelegatedHttpSource import exh.ui.metadata.adapters.PururinDescriptionAdapter @@ -108,7 +108,7 @@ class Pururin(delegate: HttpSource, val context: Context) : tags += RaisedTag( namespace, searchUrl.lastPathSegment!!.substringBefore("."), - if (namespace != PururinSearchMetadata.TAG_NAMESPACE_CATEGORY) PururinSearchMetadata.TAG_TYPE_DEFAULT else TAG_TYPE_VIRTUAL + if (namespace != PururinSearchMetadata.TAG_NAMESPACE_CATEGORY) PururinSearchMetadata.TAG_TYPE_DEFAULT else RaisedSearchMetadata.TAG_TYPE_VIRTUAL ) } } @@ -122,7 +122,7 @@ class Pururin(delegate: HttpSource, val context: Context) : "www.pururin.io" ) - override suspend fun mapUrlToMangaUrl(uri: Uri): String? { + override suspend fun mapUrlToMangaUrl(uri: Uri): String { return "${PururinSearchMetadata.BASE_URL}/gallery/${uri.pathSegments[1]}/${uri.lastPathSegment}" } diff --git a/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt index 9a3b785b9..cc60cd46d 100644 --- a/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/EHentaiSearchMetadata.kt @@ -90,44 +90,6 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - gId?.let { gId -> - gToken?.let { gToken -> - manga.url = idAndTokenToUrl(gId, gToken) - } - } - thumbnailUrl?.let { manga.thumbnail_url = it } - - // No title bug? - val titleObj = if (Injekt.get().useJapaneseTitle().get()) { - altTitle ?: title - } else { - title - } - titleObj?.let { manga.title = it } - - // Set artist (if we can find one) - tags.filter { it.namespace == EH_ARTIST_NAMESPACE }.let { tags -> - if (tags.isNotEmpty()) manga.artist = tags.joinToString(transform = { it.name }) - } - - // Copy tags -> genres - manga.genre = tagsToGenreString() - - // Try to automatically identify if it is ongoing, we try not to be too lenient here to avoid making mistakes - // We default to completed - manga.status = SManga.COMPLETED - title?.let { t -> - MetadataUtil.ONGOING_SUFFIX.find { - t.endsWith(it, ignoreCase = true) - }?.let { - manga.status = SManga.ONGOING - } - } - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() diff --git a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt index d0990f135..1d46c39f1 100644 --- a/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/EightMusesSearchMetadata.kt @@ -38,24 +38,6 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - manga.url = path.joinToString("/", prefix = "/") - - title?.let { - manga.title = it - } - - thumbnailUrl?.let { - manga.thumbnail_url = it - } - - manga.artist = tags.ofNamespace(ARTIST_NAMESPACE).joinToString { it.name } - - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() title?.let { pairs += context.getString(R.string.title) to it } diff --git a/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt index b06a2acfd..74c8c93b9 100644 --- a/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HBrowseSearchMetadata.kt @@ -46,27 +46,6 @@ class HBrowseSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - hbUrl?.let { - manga.url = it - } - - title?.let { - manga.title = it - } - - // Guess thumbnail URL if manga does not have thumbnail URL - if (manga.thumbnail_url.isNullOrBlank()) { - manga.thumbnail_url = guessThumbnailUrl(hbId.toString()) - } - - manga.artist = tags.ofNamespace(ARTIST_NAMESPACE).joinToString { it.name } - - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() hbId?.let { pairs += context.getString(R.string.id) to it.toString() } diff --git a/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt index 758fc0cc7..3dd2a46d8 100644 --- a/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HentaiCafeSearchMetadata.kt @@ -50,21 +50,6 @@ class HentaiCafeSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - thumbnailUrl?.let { manga.thumbnail_url = it } - - manga.title = title!! - manga.artist = artist - manga.author = artist - - // Not available - manga.status = SManga.UNKNOWN - - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() hcId?.let { pairs += context.getString(R.string.id) to it } diff --git a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt index 1f9fd6063..19ff2c6cc 100644 --- a/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/HitomiSearchMetadata.kt @@ -62,23 +62,6 @@ class HitomiSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - thumbnailUrl?.let { manga.thumbnail_url = it } - - title?.let { - manga.title = it - } - - // Copy tags -> genres - manga.genre = tagsToGenreString() - - manga.artist = artists.joinToString() - - manga.status = SManga.UNKNOWN - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() with(context) { diff --git a/app/src/main/java/exh/metadata/metadata/MangaDexSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/MangaDexSearchMetadata.kt index 4966cf33d..251dd4454 100644 --- a/app/src/main/java/exh/metadata/metadata/MangaDexSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/MangaDexSearchMetadata.kt @@ -78,42 +78,6 @@ class MangaDexSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - mdUrl?.let { - manga.url = try { - val uri = it.toUri() - val out = uri.path!!.removePrefix("/api") - out + if (out.endsWith("/")) "" else "/" - } catch (e: Exception) { - it - } - } - - title?.let { - manga.title = it - } - - manga.thumbnail_url = thumbnail_url - - author?.let { - manga.author = it - } - - artist?.let { - manga.artist = it - } - - status?.let { - manga.status = it - } - - manga.genre = tagsToGenreString() - - description?.let { - manga.description = it - } - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() mdId?.let { pairs += context.getString(R.string.id) to it } diff --git a/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt index 99c52edb2..5ac2e497a 100644 --- a/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/NHentaiSearchMetadata.kt @@ -3,6 +3,8 @@ package exh.metadata.metadata import android.content.Context import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.model.toMangaInfo +import eu.kanade.tachiyomi.source.model.toSManga import exh.metadata.MetadataUtil import exh.metadata.metadata.base.RaisedSearchMetadata import kotlinx.serialization.Serializable @@ -85,43 +87,6 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - nhId?.let { manga.url = nhIdToPath(it) } - - if (mediaId != null) { - typeToExtension(coverImageType)?.let { - manga.thumbnail_url = "https://t.nhentai.net/galleries/$mediaId/cover.$it" - } - } - - manga.title = when (preferredTitle) { - TITLE_TYPE_SHORT -> shortTitle ?: englishTitle ?: japaneseTitle!! - 0, TITLE_TYPE_ENGLISH -> englishTitle ?: japaneseTitle ?: shortTitle!! - else -> englishTitle ?: japaneseTitle ?: shortTitle!! - } - - // Set artist (if we can find one) - tags.filter { it.namespace == NHENTAI_ARTIST_NAMESPACE }.let { tags -> - if (tags.isNotEmpty()) manga.artist = tags.joinToString(transform = { it.name }) - } - - // Copy tags -> genres - manga.genre = tagsToGenreString() - - // Try to automatically identify if it is ongoing, we try not to be too lenient here to avoid making mistakes - // We default to completed - manga.status = SManga.COMPLETED - englishTitle?.let { t -> - MetadataUtil.ONGOING_SUFFIX.find { - t.endsWith(it, ignoreCase = true) - }?.let { - manga.status = SManga.ONGOING - } - } - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() nhId?.let { pairs += context.getString(R.string.id) to it.toString() } diff --git a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt index 5db018688..dfa42ce7e 100644 --- a/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/PervEdenSearchMetadata.kt @@ -64,32 +64,6 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - url?.let { manga.url = it } - thumbnailUrl?.let { manga.thumbnail_url = it } - - title?.let { - manga.title = it - } - - artist?.let { - manga.artist = it - } - - status?.let { - manga.status = when (it) { - "Ongoing" -> SManga.ONGOING - "Completed", "Suspended" -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - } - - // Copy tags -> genres - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() pvId?.let { pairs += context.getString(R.string.id) to it } diff --git a/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt index b26538af9..9c27b25af 100644 --- a/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/PururinSearchMetadata.kt @@ -54,28 +54,6 @@ class PururinSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - prId?.let { prId -> - prShortLink?.let { prShortLink -> - manga.url = "/gallery/$prId/$prShortLink" - } - } - - (title ?: altTitle)?.let { - manga.title = it - } - - thumbnailUrl?.let { - manga.thumbnail_url = it - } - - manga.artist = tags.ofNamespace(TAG_NAMESPACE_ARTIST).joinToString { it.name } - - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() prId?.let { pairs += context.getString(R.string.id) to it.toString() } @@ -100,6 +78,6 @@ class PururinSearchMetadata : RaisedSearchMetadata() { private const val TAG_NAMESPACE_ARTIST = "artist" const val TAG_NAMESPACE_CATEGORY = "category" - val BASE_URL = "https://pururin.io" + const val BASE_URL = "https://pururin.io" } } diff --git a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt index ffbf86721..68c5b1761 100644 --- a/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/TsuminoSearchMetadata.kt @@ -65,20 +65,6 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() { ) } - override fun copyTo(manga: SManga) { - title?.let { manga.title = it } - manga.thumbnail_url = BASE_URL.replace("www", "content") + thumbUrlFromId(tmId.toString()) - - artist?.let { manga.artist = it } - - manga.status = SManga.UNKNOWN - - // Copy tags -> genres - manga.genre = tagsToGenreString() - - manga.description = "meta" - } - override fun getExtraInfoPairs(context: Context): List> { val pairs = mutableListOf>() tmId?.let { pairs += context.getString(R.string.id) to it.toString() } diff --git a/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt b/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt index 76a1ea284..4e5d55fcc 100644 --- a/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt +++ b/app/src/main/java/exh/metadata/metadata/base/RaisedSearchMetadata.kt @@ -2,6 +2,8 @@ package exh.metadata.metadata.base import android.content.Context import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.model.toMangaInfo +import eu.kanade.tachiyomi.source.model.toSManga import exh.metadata.forEach import exh.metadata.metadata.EHentaiSearchMetadata import exh.metadata.metadata.EightMusesSearchMetadata @@ -56,7 +58,10 @@ abstract class RaisedSearchMetadata { if (newTitle != null) titles += RaisedTitle(newTitle, type) } - abstract fun copyTo(manga: SManga) + open fun copyTo(manga: SManga) { + val infoManga = createMangaInfo(manga.toMangaInfo()).toSManga() + manga.copyFrom(infoManga) + } abstract fun createMangaInfo(manga: MangaInfo): MangaInfo