Add a special view to replace descriptions for integrated and delegated sources!
As the integrated and delegated websites don't actually have descriptions, just info, I decided to make a special view for them! with all the info you need available to you in front of your face, there is now no need to go searching through the description! This is likely the most work I have put into 1 feature in the whole time I have been developing TachiyomiSY!
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
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.metadata.base.RaisedSearchMetadata
|
||||
import exh.plusAssign
|
||||
import java.util.Date
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
@@ -76,7 +77,7 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
}
|
||||
|
||||
// Build a nice looking description out of what we know
|
||||
val titleDesc = StringBuilder()
|
||||
/* val titleDesc = StringBuilder()
|
||||
title?.let { titleDesc += "Title: $it\n" }
|
||||
altTitle?.let { titleDesc += "Alternate Title: $it\n" }
|
||||
|
||||
@@ -99,11 +100,36 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
detailsDesc += "\n"
|
||||
}
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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))) }
|
||||
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -112,6 +138,7 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
const val TAG_TYPE_NORMAL = 0
|
||||
const val TAG_TYPE_LIGHT = 1
|
||||
const val TAG_TYPE_WEAK = 2
|
||||
|
||||
const val EH_GENRE_NAMESPACE = "genre"
|
||||
private const val EH_ARTIST_NAMESPACE = "artist"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||
import exh.plusAssign
|
||||
|
||||
class EightMusesSearchMetadata : RaisedSearchMetadata() {
|
||||
var path: List<String> = emptyList()
|
||||
@@ -26,14 +27,25 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
/*val titleDesc = StringBuilder()
|
||||
title?.let { titleDesc += "Title: $it\n" }
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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) }
|
||||
val path = path.joinToString("/", prefix = "/")
|
||||
if (path.isNotBlank()) {
|
||||
pairs += Pair(context.getString(R.string.path), path)
|
||||
}
|
||||
thumbnailUrl?.let { pairs += Pair(context.getString(R.string.thumbnail_url), it) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
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 exh.plusAssign
|
||||
|
||||
class HBrowseSearchMetadata : RaisedSearchMetadata() {
|
||||
var hbId: Long? = null
|
||||
@@ -27,15 +28,25 @@ class HBrowseSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
manga.artist = tags.ofNamespace(ARTIST_NAMESPACE).joinToString { it.name }
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
/*val titleDesc = StringBuilder()
|
||||
title?.let { titleDesc += "Title: $it\n" }
|
||||
length?.let { titleDesc += "Length: $it page(s)\n" }
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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()) }
|
||||
title?.let { pairs += Pair(context.getString(R.string.title), it) }
|
||||
length?.let { pairs += Pair(context.getString(R.string.page_count), it.toString()) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||
|
||||
@@ -30,16 +32,26 @@ class HentaiCafeSearchMetadata : RaisedSearchMetadata() {
|
||||
// Not available
|
||||
manga.status = SManga.UNKNOWN
|
||||
|
||||
val detailsDesc = "Title: $title\n" +
|
||||
"Artist: $artist\n"
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
manga.description = listOf(detailsDesc, tagsDesc.toString())
|
||||
/* val detailsDesc = "Title: $title\n" +
|
||||
"Artist: $artist\n"
|
||||
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = "meta" /*listOf(detailsDesc, tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -1,5 +1,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.metadata.base.RaisedSearchMetadata
|
||||
@@ -37,17 +39,25 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
|
||||
override fun copyTo(manga: SManga) {
|
||||
thumbnailUrl?.let { manga.thumbnail_url = it }
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
|
||||
title?.let {
|
||||
manga.title = it
|
||||
}
|
||||
|
||||
// Copy tags -> genres
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
manga.artist = artists.joinToString()
|
||||
|
||||
manga.status = SManga.UNKNOWN
|
||||
|
||||
/*val titleDesc = StringBuilder()
|
||||
|
||||
title?.let {
|
||||
titleDesc += "Title: $it\n"
|
||||
}
|
||||
|
||||
val detailsDesc = StringBuilder()
|
||||
|
||||
manga.artist = artists.joinToString()
|
||||
|
||||
detailsDesc += "Artist(s): ${manga.artist}\n"
|
||||
|
||||
group?.let {
|
||||
@@ -74,16 +84,35 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
|
||||
detailsDesc += "Upload date: ${EX_DATE_FORMAT.format(Date(it))}\n"
|
||||
}
|
||||
|
||||
manga.status = SManga.UNKNOWN
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
// Copy tags -> genres
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
group?.let { pairs += Pair(context.getString(R.string.group), it) }
|
||||
type?.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
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
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.metadata.base.RaisedSearchMetadata
|
||||
import exh.metadata.nullIfBlank
|
||||
import exh.plusAssign
|
||||
import java.util.Date
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
@@ -77,7 +77,7 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
}
|
||||
}
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
/*val titleDesc = StringBuilder()
|
||||
englishTitle?.let { titleDesc += "English Title: $it\n" }
|
||||
japaneseTitle?.let { titleDesc += "Japanese Title: $it\n" }
|
||||
shortTitle?.let { titleDesc += "Short Title: $it\n" }
|
||||
@@ -89,11 +89,27 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
favoritesCount?.let { detailsDesc += "Favorited: $it times\n" }
|
||||
scanlator?.nullIfBlank()?.let { detailsDesc += "Scanlator: $it\n" }
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -106,7 +122,7 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
|
||||
const val BASE_URL = "https://nhentai.net"
|
||||
|
||||
private const val NHENTAI_ARTIST_NAMESPACE = "artist"
|
||||
private const val NHENTAI_CATEGORIES_NAMESPACE = "category"
|
||||
const val NHENTAI_CATEGORIES_NAMESPACE = "category"
|
||||
|
||||
fun typeToExtension(t: String?) =
|
||||
when (t) {
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import eu.kanade.tachiyomi.R
|
||||
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
|
||||
|
||||
class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
||||
var pvId: String? = null
|
||||
@@ -36,9 +37,28 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
||||
url?.let { manga.url = it }
|
||||
thumbnailUrl?.let { manga.thumbnail_url = it }
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
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()
|
||||
|
||||
/*val titleDesc = StringBuilder()
|
||||
|
||||
title?.let {
|
||||
titleDesc += "Title: $it\n"
|
||||
}
|
||||
if (altTitles.isNotEmpty()) {
|
||||
@@ -50,7 +70,6 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
val detailsDesc = StringBuilder()
|
||||
artist?.let {
|
||||
manga.artist = it
|
||||
detailsDesc += "Artist: $it\n"
|
||||
}
|
||||
|
||||
@@ -59,11 +78,6 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
||||
}
|
||||
|
||||
status?.let {
|
||||
manga.status = when (it) {
|
||||
"Ongoing" -> SManga.ONGOING
|
||||
"Completed", "Suspended" -> SManga.COMPLETED
|
||||
else -> SManga.UNKNOWN
|
||||
}
|
||||
detailsDesc += "Status: $it\n"
|
||||
}
|
||||
|
||||
@@ -71,14 +85,30 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
||||
detailsDesc += "Rating: %.2\n".format(it)
|
||||
}
|
||||
|
||||
// Copy tags -> genres
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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) }
|
||||
val altTitles = altTitles.joinToString()
|
||||
if (altTitles.isNotBlank()) {
|
||||
pairs += Pair(context.getString(R.string.alt_titles), altTitles)
|
||||
}
|
||||
artist?.let { pairs += Pair(context.getString(R.string.artist), it) }
|
||||
type?.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) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||
import exh.plusAssign
|
||||
|
||||
class PururinSearchMetadata : RaisedSearchMetadata() {
|
||||
var prId: Int? = null
|
||||
@@ -42,7 +43,7 @@ class PururinSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
val titleDesc = StringBuilder()
|
||||
/*val titleDesc = StringBuilder()
|
||||
title?.let { titleDesc += "English Title: $it\n" }
|
||||
altTitle?.let { titleDesc += "Japanese Title: $it\n" }
|
||||
|
||||
@@ -52,11 +53,26 @@ class PururinSearchMetadata : RaisedSearchMetadata() {
|
||||
fileSize?.let { detailsDesc += "Size: $it\n" }
|
||||
ratingCount?.let { detailsDesc += "Rating: $averageRating ($ratingCount)\n" }
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
manga.description = listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc.toString(), detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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()) }
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -66,6 +82,7 @@ class PururinSearchMetadata : RaisedSearchMetadata() {
|
||||
const val TAG_TYPE_DEFAULT = 0
|
||||
|
||||
private const val TAG_NAMESPACE_ARTIST = "artist"
|
||||
const val TAG_NAMESPACE_CATEGORY = "category"
|
||||
|
||||
val BASE_URL = "https://pururin.io"
|
||||
}
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package exh.metadata.metadata
|
||||
|
||||
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.metadata.base.RaisedSearchMetadata
|
||||
import exh.plusAssign
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
|
||||
class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
||||
var tmId: Int? = null
|
||||
@@ -20,6 +23,12 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
var ratingString: String? = null
|
||||
|
||||
var averageRating: Float? = null
|
||||
|
||||
var userRatings: Long? = null
|
||||
|
||||
var favorites: Long? = null
|
||||
|
||||
var category: String? = null
|
||||
|
||||
var collection: String? = null
|
||||
@@ -38,7 +47,10 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
manga.status = SManga.UNKNOWN
|
||||
|
||||
val titleDesc = "Title: $title\n"
|
||||
// Copy tags -> genres
|
||||
manga.genre = tagsToGenreString()
|
||||
|
||||
/*val titleDesc = "Title: $title\n"
|
||||
|
||||
val detailsDesc = StringBuilder()
|
||||
uploader?.let { detailsDesc += "Uploader: $it\n" }
|
||||
@@ -59,14 +71,36 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
||||
detailsDesc += "Character: $charactersString\n"
|
||||
}
|
||||
|
||||
// Copy tags -> genres
|
||||
manga.genre = tagsToGenreString()
|
||||
val tagsDesc = tagsToDescription()*/
|
||||
|
||||
val tagsDesc = tagsToDescription()
|
||||
|
||||
manga.description = listOf(titleDesc, detailsDesc.toString(), tagsDesc.toString())
|
||||
manga.description = "meta" /*listOf(titleDesc, detailsDesc.toString(), tagsDesc.toString())
|
||||
.filter(String::isNotBlank)
|
||||
.joinToString(separator = "\n")
|
||||
.joinToString(separator = "\n")*/
|
||||
}
|
||||
|
||||
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) }
|
||||
val parodiesString = parody.joinToString()
|
||||
if (parodiesString.isNotEmpty()) {
|
||||
pairs += Pair(context.getString(R.string.parodies), parodiesString)
|
||||
}
|
||||
val charactersString = character.joinToString()
|
||||
if (charactersString.isNotEmpty()) {
|
||||
pairs += Pair(context.getString(R.string.characters), charactersString)
|
||||
}
|
||||
return pairs
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -76,6 +110,8 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
||||
|
||||
val BASE_URL = "https://www.tsumino.com"
|
||||
|
||||
val TSUMINO_DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd", Locale.US)
|
||||
|
||||
fun tmIdFromUrl(url: String) =
|
||||
Uri.parse(url).lastPathSegment
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package exh.metadata.metadata.base
|
||||
|
||||
import android.content.Context
|
||||
import com.google.gson.GsonBuilder
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import exh.metadata.forEach
|
||||
@@ -112,6 +113,8 @@ abstract class RaisedSearchMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
abstract fun getExtraInfoPairs(context: Context): List<Pair<String, String>>
|
||||
|
||||
companion object {
|
||||
// Virtual tags allow searching of otherwise unindexed fields
|
||||
const val TAG_TYPE_VIRTUAL = -2
|
||||
|
||||
Reference in New Issue
Block a user