Refactor and cleanup a bunch of code

This commit is contained in:
Jobobby04
2020-10-27 19:52:32 -04:00
parent 114fb723dc
commit 9cba544ffd
62 changed files with 521 additions and 1384 deletions
+101 -45
View File
@@ -1,62 +1,118 @@
package exh.metadata
import android.content.Context
import android.graphics.Color
import android.widget.TextView
import androidx.annotation.DrawableRes
import androidx.annotation.FloatRange
import androidx.core.content.ContextCompat
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor
import exh.util.SourceTagsUtil
import java.text.SimpleDateFormat
import java.util.Locale
import kotlin.math.ln
import kotlin.math.pow
import kotlin.math.roundToInt
/**
* Metadata utils
*/
fun humanReadableByteCount(bytes: Long, si: Boolean): String {
val unit = if (si) 1000 else 1024
if (bytes < unit) return "$bytes B"
val exp = (ln(bytes.toDouble()) / ln(unit.toDouble())).toInt()
val pre = (if (si) "kMGTPE" else "KMGTPE")[exp - 1] + if (si) "" else "i"
return String.format("%.1f %sB", bytes / unit.toDouble().pow(exp.toDouble()), pre)
}
private const val KB_FACTOR: Long = 1000
private const val KIB_FACTOR: Long = 1024
private const val MB_FACTOR = 1000 * KB_FACTOR
private const val MIB_FACTOR = 1024 * KIB_FACTOR
private const val GB_FACTOR = 1000 * MB_FACTOR
private const val GIB_FACTOR = 1024 * MIB_FACTOR
fun parseHumanReadableByteCount(arg0: String): Double? {
val spaceNdx = arg0.indexOf(" ")
val ret = java.lang.Double.parseDouble(arg0.substring(0, spaceNdx))
when (arg0.substring(spaceNdx + 1)) {
"GB" -> return ret * GB_FACTOR
"GiB" -> return ret * GIB_FACTOR
"MB" -> return ret * MB_FACTOR
"MiB" -> return ret * MIB_FACTOR
"KB" -> return ret * KB_FACTOR
"KiB" -> return ret * KIB_FACTOR
object MetadataUtil {
fun humanReadableByteCount(bytes: Long, si: Boolean): String {
val unit = if (si) 1000 else 1024
if (bytes < unit) return "$bytes B"
val exp = (ln(bytes.toDouble()) / ln(unit.toDouble())).toInt()
val pre = (if (si) "kMGTPE" else "KMGTPE")[exp - 1] + if (si) "" else "i"
return String.format("%.1f %sB", bytes / unit.toDouble().pow(exp.toDouble()), pre)
}
return null
private const val KB_FACTOR: Long = 1000
private const val KIB_FACTOR: Long = 1024
private const val MB_FACTOR = 1000 * KB_FACTOR
private const val MIB_FACTOR = 1024 * KIB_FACTOR
private const val GB_FACTOR = 1000 * MB_FACTOR
private const val GIB_FACTOR = 1024 * MIB_FACTOR
fun parseHumanReadableByteCount(arg0: String): Double? {
val spaceNdx = arg0.indexOf(" ")
val ret = java.lang.Double.parseDouble(arg0.substring(0, spaceNdx))
when (arg0.substring(spaceNdx + 1)) {
"GB" -> return ret * GB_FACTOR
"GiB" -> return ret * GIB_FACTOR
"MB" -> return ret * MB_FACTOR
"MiB" -> return ret * MIB_FACTOR
"KB" -> return ret * KB_FACTOR
"KiB" -> return ret * KIB_FACTOR
}
return null
}
val ONGOING_SUFFIX = arrayOf(
"[ongoing]",
"(ongoing)",
"{ongoing}",
"<ongoing>",
"ongoing",
"[incomplete]",
"(incomplete)",
"{incomplete}",
"<incomplete>",
"incomplete",
"[wip]",
"(wip)",
"{wip}",
"<wip>",
"wip"
)
val EX_DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US)
fun getRatingString(context: Context, @FloatRange(from = 0.0, to = 10.0) rating: Float?) = when ((rating ?: 100F).roundToInt()) {
0 -> R.string.rating0
1 -> R.string.rating1
2 -> R.string.rating2
3 -> R.string.rating3
4 -> R.string.rating4
5 -> R.string.rating5
6 -> R.string.rating6
7 -> R.string.rating7
8 -> R.string.rating8
9 -> R.string.rating9
10 -> R.string.rating10
else -> R.string.no_rating
}.let { context.getString(it) }
fun getGenreAndColour(context: Context, genre: String) = when (genre) {
"doujinshi", "Doujinshi" -> SourceTagsUtil.DOUJINSHI_COLOR to R.string.doujinshi
"manga", "Japanese Manga", "Manga" -> SourceTagsUtil.MANGA_COLOR to R.string.manga
"artistcg", "artist CG", "artist-cg", "Artist CG" -> SourceTagsUtil.ARTIST_CG_COLOR to R.string.artist_cg
"gamecg", "game CG", "game-cg", "Game CG" -> SourceTagsUtil.GAME_CG_COLOR to R.string.game_cg
"western" -> SourceTagsUtil.WESTERN_COLOR to R.string.western
"non-h", "non-H" -> SourceTagsUtil.NON_H_COLOR to R.string.non_h
"imageset", "image Set" -> SourceTagsUtil.IMAGE_SET_COLOR to R.string.image_set
"cosplay" -> SourceTagsUtil.COSPLAY_COLOR to R.string.cosplay
"asianporn", "asian Porn" -> SourceTagsUtil.ASIAN_PORN_COLOR to R.string.asian_porn
"misc" -> SourceTagsUtil.MISC_COLOR to R.string.misc
"Korean Manhwa" -> SourceTagsUtil.ARTIST_CG_COLOR to R.string.manhwa
"Chinese Manhua" -> SourceTagsUtil.GAME_CG_COLOR to R.string.manhua
"Comic" -> SourceTagsUtil.WESTERN_COLOR to R.string.comic
"artbook" -> SourceTagsUtil.IMAGE_SET_COLOR to R.string.artbook
"webtoon" -> SourceTagsUtil.NON_H_COLOR to R.string.webtoon
"Video" -> SourceTagsUtil.WESTERN_COLOR to R.string.video
else -> "" to 0
}.let { if (it.second == 0) null else Color.parseColor(it.first) to context.getString(it.second) }
}
fun <K, V> Set<Map.Entry<K, V>>.forEach(action: (K, V) -> Unit) {
forEach { action(it.key, it.value) }
}
val ONGOING_SUFFIX = arrayOf(
"[ongoing]",
"(ongoing)",
"{ongoing}",
"<ongoing>",
"ongoing",
"[incomplete]",
"(incomplete)",
"{incomplete}",
"<incomplete>",
"incomplete",
"[wip]",
"(wip)",
"{wip}",
"<wip>",
"wip"
)
val EX_DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US)
fun TextView.bindDrawable(context: Context, @DrawableRes drawable: Int) {
ContextCompat.getDrawable(context, drawable)?.apply {
setTint(context.getResourceColor(R.attr.colorAccent))
setBounds(0, 0, 20.dpToPx, 20.dpToPx)
setCompoundDrawables(this, null, null, null)
}
}
@@ -5,9 +5,7 @@ import android.net.Uri
import eu.kanade.tachiyomi.R
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.humanReadableByteCount
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import kotlinx.serialization.Serializable
import uy.kohesive.injekt.Injekt
@@ -71,7 +69,7 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
// We default to completed
manga.status = SManga.COMPLETED
title?.let { t ->
ONGOING_SUFFIX.find {
MetadataUtil.ONGOING_SUFFIX.find {
t.endsWith(it, ignoreCase = true)
}?.let {
manga.status = SManga.ONGOING
@@ -111,25 +109,26 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
gId?.let { pairs += Pair(context.getString(R.string.id), it) }
gToken?.let { pairs += Pair(context.getString(R.string.token), it) }
exh?.let { pairs += Pair(context.getString(R.string.is_exhentai_gallery), context.getString(if (it) android.R.string.yes else android.R.string.no)) }
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
altTitle?.let { pairs += Pair(context.getString(R.string.alt_title), it) }
genre?.let { pairs += Pair(context.getString(R.string.genre), it) }
datePosted?.let { pairs += Pair(context.getString(R.string.date_posted), EX_DATE_FORMAT.format(Date(it))) }
parent?.let { pairs += Pair(context.getString(R.string.parent), it) }
visible?.let { pairs += Pair(context.getString(R.string.visible), it) }
language?.let { pairs += Pair(context.getString(R.string.language), it) }
translated?.let { pairs += Pair("Translated", context.getString(if (it) android.R.string.yes else android.R.string.no)) }
size?.let { pairs += Pair(context.getString(R.string.gallery_size), humanReadableByteCount(it, true)) }
length?.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
favorites?.let { pairs += Pair(context.getString(R.string.total_favorites), it.toString()) }
ratingCount?.let { pairs += Pair(context.getString(R.string.total_ratings), it.toString()) }
averageRating?.let { pairs += Pair(context.getString(R.string.average_rating), it.toString()) }
aged.let { pairs += Pair(context.getString(R.string.aged), context.getString(if (it) android.R.string.yes else android.R.string.no)) }
lastUpdateCheck.let { pairs += Pair(context.getString(R.string.last_update_check), EX_DATE_FORMAT.format(Date(it))) }
gId?.let { pairs += context.getString(R.string.id) to it }
gToken?.let { pairs += context.getString(R.string.token) to it }
exh?.let { pairs += context.getString(R.string.is_exhentai_gallery) to context.getString(if (it) android.R.string.yes else android.R.string.no) }
thumbnailUrl?.let { pairs += context.getString(R.string.thumbnail_url) to it }
title?.let { pairs += context.getString(R.string.title) to it }
altTitle?.let { pairs += context.getString(R.string.alt_title) to it }
genre?.let { pairs += context.getString(R.string.genre) to it }
datePosted?.let { pairs += context.getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
parent?.let { pairs += context.getString(R.string.parent) to it }
visible?.let { pairs += context.getString(R.string.visible) to it }
language?.let { pairs += context.getString(R.string.language) to it }
translated?.let { pairs += "Translated" to context.getString(if (it) android.R.string.yes else android.R.string.no) }
size?.let { pairs += context.getString(R.string.gallery_size) to MetadataUtil.humanReadableByteCount(it, true) }
length?.let { pairs += context.getString(R.string.page_count) to it.toString() }
favorites?.let { pairs += context.getString(R.string.total_favorites) to it.toString() }
ratingCount?.let { pairs += context.getString(R.string.total_ratings) to it.toString() }
averageRating?.let { pairs += context.getString(R.string.average_rating) to it.toString() }
aged.let { pairs += context.getString(R.string.aged) to context.getString(if (it) android.R.string.yes else android.R.string.no) }
lastUpdateCheck.let { pairs += context.getString(R.string.last_update_check) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
return pairs
}
@@ -41,12 +41,12 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
title?.let { pairs += Pair(context.getString(R.string.title), it) }
title?.let { pairs += context.getString(R.string.title) to it }
val path = path.joinToString("/", prefix = "/")
if (path.isNotBlank()) {
pairs += Pair(context.getString(R.string.path), path)
pairs += context.getString(R.string.path) to path
}
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
thumbnailUrl?.let { pairs += context.getString(R.string.thumbnail_url) to it }
return pairs
}
@@ -3,7 +3,6 @@ package exh.metadata.metadata
import android.content.Context
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.model.SManga
import exh.metadata.metadata.EightMusesSearchMetadata.Companion.ARTIST_NAMESPACE
import exh.metadata.metadata.base.RaisedSearchMetadata
import kotlinx.serialization.Serializable
@@ -51,11 +50,11 @@ class HBrowseSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
hbId?.let { pairs += Pair(context.getString(R.string.id), it.toString()) }
hbUrl?.let { pairs += Pair(context.getString(R.string.url), it) }
thumbnail?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
length?.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
hbId?.let { pairs += context.getString(R.string.id) to it.toString() }
hbUrl?.let { pairs += context.getString(R.string.url) to it }
thumbnail?.let { pairs += context.getString(R.string.thumbnail_url) to it }
title?.let { pairs += context.getString(R.string.title) to it }
length?.let { pairs += context.getString(R.string.page_count) to it.toString() }
return pairs
}
@@ -65,6 +64,7 @@ class HBrowseSearchMetadata : RaisedSearchMetadata() {
private const val TITLE_TYPE_MAIN = 0
const val TAG_TYPE_DEFAULT = 0
const val ARTIST_NAMESPACE = "artist"
fun guessThumbnailUrl(hbid: String): String {
return "$BASE_URL/thumbnails/${hbid}_1.jpg#guessed"
@@ -48,11 +48,11 @@ class HentaiCafeSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
hcId?.let { pairs += Pair(context.getString(R.string.id), it) }
readerId?.let { pairs += Pair(context.getString(R.string.reader_id), it) }
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
artist?.let { pairs += Pair(context.getString(R.string.artist), it) }
hcId?.let { pairs += context.getString(R.string.id) to it }
readerId?.let { pairs += context.getString(R.string.reader_id) to it }
thumbnailUrl?.let { pairs += context.getString(R.string.thumbnail_url) to it }
title?.let { pairs += context.getString(R.string.title) to it }
artist?.let { pairs += context.getString(R.string.artist) to it }
return pairs
}
@@ -3,7 +3,7 @@ package exh.metadata.metadata
import android.content.Context
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.model.SManga
import exh.metadata.EX_DATE_FORMAT
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import kotlinx.serialization.Serializable
import java.util.Date
@@ -94,25 +94,27 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
hlId?.let { pairs += Pair(context.getString(R.string.id), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
val artists = artists.joinToString()
if (artists.isNotBlank()) {
pairs += Pair(context.getString(R.string.artist), artists)
with(context) {
hlId?.let { pairs += getString(R.string.id) to it }
title?.let { pairs += getString(R.string.title) to it }
thumbnailUrl?.let { pairs += getString(R.string.thumbnail_url) to it }
val artists = artists.joinToString()
if (artists.isNotBlank()) {
pairs += getString(R.string.artist) to artists
}
group?.let { pairs += getString(R.string.group) to it }
genre?.let { pairs += getString(R.string.genre) to it }
language?.let { pairs += getString(R.string.language) to it }
val series = series.joinToString()
if (series.isNotBlank()) {
pairs += getString(R.string.series) to series
}
val characters = characters.joinToString()
if (characters.isNotBlank()) {
pairs += getString(R.string.characters) to characters
}
uploadDate?.let { pairs += getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
}
group?.let { pairs += Pair(context.getString(R.string.group), it) }
genre?.let { pairs += Pair(context.getString(R.string.genre), it) }
language?.let { pairs += Pair(context.getString(R.string.language), it) }
val series = series.joinToString()
if (series.isNotBlank()) {
pairs += Pair(context.getString(R.string.series), series)
}
val characters = characters.joinToString()
if (characters.isNotBlank()) {
pairs += Pair(context.getString(R.string.characters), characters)
}
uploadDate?.let { pairs += Pair(context.getString(R.string.date_posted), EX_DATE_FORMAT.format(Date(it))) }
return pairs
}
@@ -78,24 +78,24 @@ class MangaDexSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
mdId?.let { pairs += Pair(context.getString(R.string.id), it) }
mdUrl?.let { pairs += Pair(context.getString(R.string.url), it) }
thumbnail_url?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
author?.let { pairs += Pair(context.getString(R.string.author), it) }
artist?.let { pairs += Pair(context.getString(R.string.artist), it) }
lang_flag?.let { pairs += Pair(context.getString(R.string.language), it) }
last_chapter_number?.let { pairs += Pair(context.getString(R.string.last_chapter_number), it.toString()) }
rating?.let { pairs += Pair(context.getString(R.string.average_rating), it) }
users?.let { pairs += Pair(context.getString(R.string.total_ratings), it) }
status?.let { pairs += Pair(context.getString(R.string.status), it.toString()) }
missing_chapters?.let { pairs += Pair(context.getString(R.string.missing_chapters), it) }
follow_status?.let { pairs += Pair(context.getString(R.string.follow_status), it.toString()) }
anilist_id?.let { pairs += Pair(context.getString(R.string.anilist_id), it) }
kitsu_id?.let { pairs += Pair(context.getString(R.string.kitsu_id), it) }
my_anime_list_id?.let { pairs += Pair(context.getString(R.string.mal_id), it) }
manga_updates_id?.let { pairs += Pair(context.getString(R.string.manga_updates_id), it) }
anime_planet_id?.let { pairs += Pair(context.getString(R.string.anime_planet_id), it) }
mdId?.let { pairs += context.getString(R.string.id) to it }
mdUrl?.let { pairs += context.getString(R.string.url) to it }
thumbnail_url?.let { pairs += context.getString(R.string.thumbnail_url) to it }
title?.let { pairs += context.getString(R.string.title) to it }
author?.let { pairs += context.getString(R.string.author) to it }
artist?.let { pairs += context.getString(R.string.artist) to it }
lang_flag?.let { pairs += context.getString(R.string.language) to it }
last_chapter_number?.let { pairs += context.getString(R.string.last_chapter_number) to it.toString() }
rating?.let { pairs += context.getString(R.string.average_rating) to it }
users?.let { pairs += context.getString(R.string.total_ratings) to it }
status?.let { pairs += context.getString(R.string.status) to it.toString() }
missing_chapters?.let { pairs += context.getString(R.string.missing_chapters) to it }
follow_status?.let { pairs += context.getString(R.string.follow_status) to it.toString() }
anilist_id?.let { pairs += context.getString(R.string.anilist_id) to it }
kitsu_id?.let { pairs += context.getString(R.string.kitsu_id) to it }
my_anime_list_id?.let { pairs += context.getString(R.string.mal_id) to it }
manga_updates_id?.let { pairs += context.getString(R.string.manga_updates_id) to it }
anime_planet_id?.let { pairs += context.getString(R.string.anime_planet_id) to it }
return pairs
}
@@ -3,8 +3,7 @@ package exh.metadata.metadata
import android.content.Context
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.model.SManga
import exh.metadata.EX_DATE_FORMAT
import exh.metadata.ONGOING_SUFFIX
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import kotlinx.serialization.Serializable
import java.util.Date
@@ -65,7 +64,7 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
// We default to completed
manga.status = SManga.COMPLETED
englishTitle?.let { t ->
ONGOING_SUFFIX.find {
MetadataUtil.ONGOING_SUFFIX.find {
t.endsWith(it, ignoreCase = true)
}?.let {
manga.status = SManga.ONGOING
@@ -77,17 +76,17 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
nhId?.let { pairs += Pair(context.getString(R.string.id), it.toString()) }
uploadDate?.let { pairs += Pair(context.getString(R.string.date_posted), EX_DATE_FORMAT.format(Date(it * 1000))) }
favoritesCount?.let { pairs += Pair(context.getString(R.string.total_favorites), it.toString()) }
mediaId?.let { pairs += Pair(context.getString(R.string.media_id), it) }
japaneseTitle?.let { pairs += Pair(context.getString(R.string.japanese_title), it) }
englishTitle?.let { pairs += Pair(context.getString(R.string.english_title), it) }
shortTitle?.let { pairs += Pair(context.getString(R.string.short_title), it) }
coverImageType?.let { pairs += Pair(context.getString(R.string.cover_image_file_type), it) }
pageImageTypes.size.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
thumbnailImageType?.let { pairs += Pair(context.getString(R.string.thumbnail_image_file_type), it) }
scanlator?.let { pairs += Pair(context.getString(R.string.scanlator), it) }
nhId?.let { pairs += context.getString(R.string.id) to it.toString() }
uploadDate?.let { pairs += context.getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it * 1000)) }
favoritesCount?.let { pairs += context.getString(R.string.total_favorites) to it.toString() }
mediaId?.let { pairs += context.getString(R.string.media_id) to it }
japaneseTitle?.let { pairs += context.getString(R.string.japanese_title) to it }
englishTitle?.let { pairs += context.getString(R.string.english_title) to it }
shortTitle?.let { pairs += context.getString(R.string.short_title) to it }
coverImageType?.let { pairs += context.getString(R.string.cover_image_file_type) to it }
pageImageTypes.size.let { pairs += context.getString(R.string.page_count) to it.toString() }
thumbnailImageType?.let { pairs += context.getString(R.string.thumbnail_image_file_type) to it }
scanlator?.let { pairs += context.getString(R.string.scanlator) to it }
return pairs
}
@@ -95,19 +95,19 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
pvId?.let { pairs += Pair(context.getString(R.string.id), it) }
url?.let { pairs += Pair(context.getString(R.string.url), it) }
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
pvId?.let { pairs += context.getString(R.string.id) to it }
url?.let { pairs += context.getString(R.string.url) to it }
thumbnailUrl?.let { pairs += context.getString(R.string.thumbnail_url) to it }
title?.let { pairs += context.getString(R.string.title) to it }
val altTitles = altTitles.joinToString()
if (altTitles.isNotBlank()) {
pairs += Pair(context.getString(R.string.alt_titles), altTitles)
pairs += context.getString(R.string.alt_titles) to altTitles
}
artist?.let { pairs += Pair(context.getString(R.string.artist), it) }
genre?.let { pairs += Pair(context.getString(R.string.genre), it) }
rating?.let { pairs += Pair(context.getString(R.string.average_rating), it.toString()) }
status?.let { pairs += Pair(context.getString(R.string.status), it) }
lang?.let { pairs += Pair(context.getString(R.string.language), it) }
artist?.let { pairs += context.getString(R.string.artist) to it }
genre?.let { pairs += context.getString(R.string.genre) to it }
rating?.let { pairs += context.getString(R.string.average_rating) to it.toString() }
status?.let { pairs += context.getString(R.string.status) to it }
lang?.let { pairs += context.getString(R.string.language) to it }
return pairs
}
@@ -64,16 +64,16 @@ class PururinSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
prId?.let { pairs += Pair(context.getString(R.string.id), it.toString()) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
altTitle?.let { pairs += Pair(context.getString(R.string.alt_title), it) }
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
uploaderDisp?.let { pairs += Pair(context.getString(R.string.uploader_capital), it) }
uploader?.let { pairs += Pair(context.getString(R.string.uploader), it) }
pages?.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
fileSize?.let { pairs += Pair(context.getString(R.string.gallery_size), it) }
ratingCount?.let { pairs += Pair(context.getString(R.string.total_ratings), it.toString()) }
averageRating?.let { pairs += Pair(context.getString(R.string.average_rating), it.toString()) }
prId?.let { pairs += context.getString(R.string.id) to it.toString() }
title?.let { pairs += context.getString(R.string.title) to it }
altTitle?.let { pairs += context.getString(R.string.alt_title) to it }
thumbnailUrl?.let { pairs += context.getString(R.string.thumbnail_url) to it }
uploaderDisp?.let { pairs += context.getString(R.string.uploader_capital) to it }
uploader?.let { pairs += context.getString(R.string.uploader) to it }
pages?.let { pairs += context.getString(R.string.page_count) to it.toString() }
fileSize?.let { pairs += context.getString(R.string.gallery_size) to it }
ratingCount?.let { pairs += context.getString(R.string.total_ratings) to it.toString() }
averageRating?.let { pairs += context.getString(R.string.average_rating) to it.toString() }
return pairs
}
@@ -4,7 +4,7 @@ import android.content.Context
import android.net.Uri
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.source.model.SManga
import exh.metadata.EX_DATE_FORMAT
import exh.metadata.MetadataUtil
import exh.metadata.metadata.base.RaisedSearchMetadata
import kotlinx.serialization.Serializable
import java.text.SimpleDateFormat
@@ -82,25 +82,25 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
override fun getExtraInfoPairs(context: Context): List<Pair<String, String>> {
val pairs = mutableListOf<Pair<String, String>>()
tmId?.let { pairs += Pair(context.getString(R.string.id), it.toString()) }
title?.let { pairs += Pair(context.getString(R.string.title), it) }
uploader?.let { pairs += Pair(context.getString(R.string.uploader), it) }
uploadDate?.let { pairs += Pair(context.getString(R.string.date_posted), EX_DATE_FORMAT.format(Date(it))) }
length?.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
ratingString?.let { pairs += Pair(context.getString(R.string.rating_string), it) }
averageRating?.let { pairs += Pair(context.getString(R.string.average_rating), it.toString()) }
userRatings?.let { pairs += Pair(context.getString(R.string.total_ratings), it.toString()) }
favorites?.let { pairs += Pair(context.getString(R.string.total_favorites), it.toString()) }
category?.let { pairs += Pair(context.getString(R.string.genre), it) }
collection?.let { pairs += Pair(context.getString(R.string.collection), it) }
group?.let { pairs += Pair(context.getString(R.string.group), it) }
tmId?.let { pairs += context.getString(R.string.id) to it.toString() }
title?.let { pairs += context.getString(R.string.title) to it }
uploader?.let { pairs += context.getString(R.string.uploader) to it }
uploadDate?.let { pairs += context.getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
length?.let { pairs += context.getString(R.string.page_count) to it.toString() }
ratingString?.let { pairs += context.getString(R.string.rating_string) to it }
averageRating?.let { pairs += context.getString(R.string.average_rating) to it.toString() }
userRatings?.let { pairs += context.getString(R.string.total_ratings) to it.toString() }
favorites?.let { pairs += context.getString(R.string.total_favorites) to it.toString() }
category?.let { pairs += context.getString(R.string.genre) to it }
collection?.let { pairs += context.getString(R.string.collection) to it }
group?.let { pairs += context.getString(R.string.group) to it }
val parodiesString = parody.joinToString()
if (parodiesString.isNotEmpty()) {
pairs += Pair(context.getString(R.string.parodies), parodiesString)
pairs += context.getString(R.string.parodies) to parodiesString
}
val charactersString = character.joinToString()
if (charactersString.isNotEmpty()) {
pairs += Pair(context.getString(R.string.characters), charactersString)
pairs += context.getString(R.string.characters) to charactersString
}
return pairs
}