Improve Hitomi tag list

This commit is contained in:
Jobobby04 2021-08-06 22:50:31 -04:00
parent b6f454ba66
commit 478d7f989d
7 changed files with 41 additions and 44 deletions

View File

@ -35,6 +35,7 @@ import exh.log.xLogD
import exh.metadata.MetadataUtil
import exh.metadata.metadata.EHentaiSearchMetadata
import exh.metadata.metadata.EHentaiSearchMetadata.Companion.EH_GENRE_NAMESPACE
import exh.metadata.metadata.EHentaiSearchMetadata.Companion.EH_META_NAMESPACE
import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_LIGHT
import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_NORMAL
import exh.metadata.metadata.EHentaiSearchMetadata.Companion.TAG_TYPE_WEAK
@ -654,24 +655,25 @@ class EHentai(
tags.clear()
select("#taglist tr").forEach {
val namespace = it.select(".tc").text().removeSuffix(":")
tags.addAll(
it.select("div").map { element ->
RaisedTag(
namespace,
element.text().trim(),
when {
element.hasClass("gtl") -> TAG_TYPE_LIGHT
element.hasClass("gtw") -> TAG_TYPE_WEAK
else -> TAG_TYPE_NORMAL
}
)
}
)
tags += it.select("div").map { element ->
RaisedTag(
namespace,
element.text().trim(),
when {
element.hasClass("gtl") -> TAG_TYPE_LIGHT
element.hasClass("gtw") -> TAG_TYPE_WEAK
else -> TAG_TYPE_NORMAL
}
)
}
}
// Add genre as virtual tag
genre?.let {
tags.add(RaisedTag(EH_GENRE_NAMESPACE, it, TAG_TYPE_VIRTUAL))
tags += RaisedTag(EH_GENRE_NAMESPACE, it, TAG_TYPE_VIRTUAL)
}
if (aged) {
tags += RaisedTag(EH_META_NAMESPACE, "aged", TAG_TYPE_VIRTUAL)
}
}
}

View File

@ -54,23 +54,31 @@ class Hitomi(delegate: HttpSource, val context: Context) :
title = galleryElement.selectFirst("h1")!!.text()
artists = galleryElement.select("h2 a").map { it.text() }
tags += artists.map { RaisedTag("artist", it, RaisedSearchMetadata.TAG_TYPE_VIRTUAL) }
tags += artists.map { RaisedTag("artist", it, HitomiSearchMetadata.TAG_TYPE_DEFAULT) }
input.select(".gallery-info tr").forEach { galleryInfoElement ->
val content = galleryInfoElement.child(1)
when (galleryInfoElement.child(0).text().lowercase()) {
"group" -> {
group = content.text()
tags += RaisedTag("group", group!!, RaisedSearchMetadata.TAG_TYPE_VIRTUAL)
val group = content.text()
tags += RaisedTag(
"group",
group,
if (group != "N/A") {
HitomiSearchMetadata.TAG_TYPE_DEFAULT
} else {
RaisedSearchMetadata.TAG_TYPE_VIRTUAL
}
)
}
"type" -> {
genre = content.text()
tags += RaisedTag("type", genre!!, RaisedSearchMetadata.TAG_TYPE_VIRTUAL)
tags += RaisedTag("genre", genre!!, RaisedSearchMetadata.TAG_TYPE_VIRTUAL)
}
"series" -> {
series = content.select("a").map { it.text() }
val series = content.select("a").map { it.text() }
tags += series.map {
RaisedTag("series", it, RaisedSearchMetadata.TAG_TYPE_VIRTUAL)
RaisedTag("series", it, HitomiSearchMetadata.TAG_TYPE_DEFAULT)
}
}
"language" -> {
@ -80,7 +88,7 @@ class Hitomi(delegate: HttpSource, val context: Context) :
}
}
"characters" -> {
characters = content.select("a").map { it.text() }
val characters = content.select("a").map { it.text() }
tags += characters.map {
RaisedTag(
"character",

View File

@ -93,7 +93,15 @@ class NHentai(delegate: HttpSource, val context: Context) :
jsonResponse.tags.filter {
it.type != null && it.name != null
}.mapTo(tags) {
RaisedTag(it.type!!, it.name!!, if (it.type == NHentaiSearchMetadata.NHENTAI_CATEGORIES_NAMESPACE) RaisedSearchMetadata.TAG_TYPE_VIRTUAL else NHentaiSearchMetadata.TAG_TYPE_DEFAULT)
RaisedTag(
it.type!!,
it.name!!,
if (it.type == NHentaiSearchMetadata.NHENTAI_CATEGORIES_NAMESPACE) {
RaisedSearchMetadata.TAG_TYPE_VIRTUAL
} else {
NHentaiSearchMetadata.TAG_TYPE_DEFAULT
}
)
}
}
}

View File

@ -126,6 +126,7 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
const val EH_GENRE_NAMESPACE = "genre"
private const val EH_ARTIST_NAMESPACE = "artist"
const val EH_LANGUAGE_NAMESPACE = "language"
const val EH_META_NAMESPACE = "meta"
private fun splitGalleryUrl(url: String) =
url.let {

View File

@ -26,16 +26,10 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
var artists: List<String> = emptyList()
var group: String? = null
var genre: String? = null
var language: String? = null
var series: List<String> = emptyList()
var characters: List<String> = emptyList()
var uploadDate: Long? = null
override fun createMangaInfo(manga: MangaInfo): MangaInfo {
@ -69,11 +63,8 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
title?.let { getString(R.string.title) to it },
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
artists.nullIfEmpty()?.joinToString()?.let { getString(R.string.artist) to it },
group?.let { getString(R.string.group) to it },
genre?.let { getString(R.string.genre) to it },
language?.let { getString(R.string.language) to it },
series.nullIfEmpty()?.joinToString()?.let { getString(R.string.series) to it },
characters.nullIfEmpty()?.joinToString()?.let { getString(R.string.characters) to it },
uploadDate?.let { getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
)
}

View File

@ -44,14 +44,12 @@ class HitomiDescriptionAdapter(
} ?: meta.genre ?: itemView.context.getString(R.string.unknown)
binding.whenPosted.text = MetadataUtil.EX_DATE_FORMAT.format(Date(meta.uploadDate ?: 0))
binding.group.text = meta.group ?: itemView.context.getString(R.string.unknown)
binding.language.text = meta.language ?: itemView.context.getString(R.string.unknown)
binding.moreInfo.bindDrawable(itemView.context, R.drawable.ic_info_24dp)
listOf(
binding.genre,
binding.group,
binding.language,
binding.whenPosted
).forEach { textView ->

View File

@ -65,17 +65,6 @@
app:layout_constraintBottom_toBottomOf="@+id/language"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/language" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/group"
style="@style/TextAppearance.Regular.Body1.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/language" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>