Komik Cast: remove extra string in title (#18326)
* Komik Cast: remove extra string in title - remove extra string in title * fix lint * fix lint 2
This commit is contained in:
		
							parent
							
								
									af1ad3293e
								
							
						
					
					
						commit
						080f5f910f
					
				@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.source.model.Filter
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.FilterList
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.Page
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SChapter
 | 
			
		||||
import eu.kanade.tachiyomi.source.model.SManga
 | 
			
		||||
import kotlinx.serialization.json.jsonArray
 | 
			
		||||
import kotlinx.serialization.json.jsonObject
 | 
			
		||||
import okhttp3.Headers
 | 
			
		||||
@ -17,13 +18,10 @@ import org.jsoup.Jsoup
 | 
			
		||||
import org.jsoup.nodes.Document
 | 
			
		||||
import org.jsoup.nodes.Element
 | 
			
		||||
import java.util.Calendar
 | 
			
		||||
import java.util.Locale
 | 
			
		||||
 | 
			
		||||
class KomikCast : MangaThemesia("Komik Cast", "https://komikcast.vip", "id", "/daftar-komik") {
 | 
			
		||||
 | 
			
		||||
class KomikCast : MangaThemesia(
 | 
			
		||||
    "Komik Cast",
 | 
			
		||||
    baseUrl = "https://komikcast.vip",
 | 
			
		||||
    "id",
 | 
			
		||||
    mangaUrlDirectory = "/daftar-komik",
 | 
			
		||||
) {
 | 
			
		||||
    // Formerly "Komik Cast (WP Manga Stream)"
 | 
			
		||||
    override val id = 972717448578983812
 | 
			
		||||
 | 
			
		||||
@ -68,6 +66,37 @@ class KomikCast : MangaThemesia(
 | 
			
		||||
    override val seriesThumbnailSelector = ".komik_info-content-thumbnail img"
 | 
			
		||||
    override val seriesStatusSelector = ".komik_info-content-info:contains(Status)"
 | 
			
		||||
 | 
			
		||||
    override fun mangaDetailsParse(document: Document) = SManga.create().apply {
 | 
			
		||||
        document.selectFirst(seriesDetailsSelector)?.let { seriesDetails ->
 | 
			
		||||
            title = seriesDetails.selectFirst(seriesTitleSelector)?.text()
 | 
			
		||||
                ?.replace("bahasa indonesia", "", ignoreCase = true)?.trim().orEmpty()
 | 
			
		||||
            artist = seriesDetails.selectFirst(seriesArtistSelector)?.ownText().removeEmptyPlaceholder()
 | 
			
		||||
            author = seriesDetails.selectFirst(seriesAuthorSelector)?.ownText().removeEmptyPlaceholder()
 | 
			
		||||
            description = seriesDetails.select(seriesDescriptionSelector).joinToString("\n") { it.text() }.trim()
 | 
			
		||||
            // Add alternative name to manga description
 | 
			
		||||
            val altName = seriesDetails.selectFirst(seriesAltNameSelector)?.ownText().takeIf { it.isNullOrBlank().not() }
 | 
			
		||||
            altName?.let {
 | 
			
		||||
                description = "$description\n\n$altNamePrefix$altName".trim()
 | 
			
		||||
            }
 | 
			
		||||
            val genres = seriesDetails.select(seriesGenreSelector).map { it.text() }.toMutableList()
 | 
			
		||||
            // Add series type (manga/manhwa/manhua/other) to genre
 | 
			
		||||
            seriesDetails.selectFirst(seriesTypeSelector)?.ownText().takeIf { it.isNullOrBlank().not() }?.let { genres.add(it) }
 | 
			
		||||
            genre = genres.map { genre ->
 | 
			
		||||
                genre.lowercase(Locale.forLanguageTag(lang)).replaceFirstChar { char ->
 | 
			
		||||
                    if (char.isLowerCase()) {
 | 
			
		||||
                        char.titlecase(Locale.forLanguageTag(lang))
 | 
			
		||||
                    } else {
 | 
			
		||||
                        char.toString()
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
                .joinToString { it.trim() }
 | 
			
		||||
 | 
			
		||||
            status = seriesDetails.selectFirst(seriesStatusSelector)?.text().parseStatus()
 | 
			
		||||
            thumbnail_url = seriesDetails.select(seriesThumbnailSelector).imgAttr()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun chapterListSelector() = "div.komik_info-chapters li"
 | 
			
		||||
 | 
			
		||||
    override fun chapterFromElement(element: Element) = SChapter.create().apply {
 | 
			
		||||
@ -215,17 +244,11 @@ class KomikCast : MangaThemesia(
 | 
			
		||||
            OrderByFilter(),
 | 
			
		||||
            Filter.Header("Genre exclusion is not available for all sources"),
 | 
			
		||||
            GenreListFilter(getGenreList()),
 | 
			
		||||
            Filter.Separator(),
 | 
			
		||||
            Filter.Header("NOTE: Can't be used with other filter!"),
 | 
			
		||||
            Filter.Header("$name Project List page"),
 | 
			
		||||
            ProjectFilter(),
 | 
			
		||||
        )
 | 
			
		||||
        if (hasProjectPage) {
 | 
			
		||||
            filters.addAll(
 | 
			
		||||
                mutableListOf<Filter<*>>(
 | 
			
		||||
                    Filter.Separator(),
 | 
			
		||||
                    Filter.Header("NOTE: Can't be used with other filter!"),
 | 
			
		||||
                    Filter.Header("$name Project List page"),
 | 
			
		||||
                    ProjectFilter(),
 | 
			
		||||
                ),
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
        return FilterList(filters)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -38,8 +38,4 @@ class SoulScans : MangaThemesia("Soul Scans", "https://soulscans.my.id", "id") {
 | 
			
		||||
            seriesDetails.select(seriesThumbnailSelector).firstOrNull()?.let { thumbnail_url = it.imgAttr() }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun String?.removeEmptyPlaceholder(): String? {
 | 
			
		||||
        return if (this.isNullOrBlank() || this == "-" || this == "N/A") null else this
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -205,7 +205,7 @@ abstract class MangaThemesia(
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun String?.removeEmptyPlaceholder(): String? {
 | 
			
		||||
    protected fun String?.removeEmptyPlaceholder(): String? {
 | 
			
		||||
        return if (this.isNullOrBlank() || this == "-" || this == "N/A") null else this
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -52,7 +52,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
 | 
			
		||||
        SingleLang("Komiksan", "https://komiksan.link", "id", overrideVersionCode = 2),
 | 
			
		||||
        SingleLang("Kiryuu", "https://kiryuu.id", "id", overrideVersionCode = 6),
 | 
			
		||||
        SingleLang("Komik AV", "https://komikav.com", "id", overrideVersionCode = 1),
 | 
			
		||||
        SingleLang("Komik Cast", "https://komikcast.vip", "id", overrideVersionCode = 21),
 | 
			
		||||
        SingleLang("Komik Cast", "https://komikcast.vip", "id", overrideVersionCode = 22),
 | 
			
		||||
        SingleLang("KomikDewasa", "https://komikdewasa.org", "id", isNsfw = true),
 | 
			
		||||
        SingleLang("Komik Station", "https://komikstation.co", "id", overrideVersionCode = 4),
 | 
			
		||||
        SingleLang("KomikIndo.co", "https://komikindo.co", "id", className = "KomikindoCo", overrideVersionCode = 3),
 | 
			
		||||
@ -123,7 +123,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
 | 
			
		||||
        SingleLang("Silence Scan", "https://silencescan.com.br", "pt-BR", isNsfw = true, overrideVersionCode = 5),
 | 
			
		||||
        SingleLang("SkyMangas", "https://skymangas.com", "es"),
 | 
			
		||||
        SingleLang("Snudae Scans", "https://snudaescans.com", "en", isNsfw = true, className = "BatotoScans", overrideVersionCode = 1),
 | 
			
		||||
        SingleLang("Soul Scans", "https://soulscans.my.id", "id"),
 | 
			
		||||
        SingleLang("Soul Scans", "https://soulscans.my.id", "id", overrideVersionCode = 1),
 | 
			
		||||
        SingleLang("SSSScanlator", "https://sssscanlator.com", "pt-BR"),
 | 
			
		||||
        SingleLang("SSS Hentais", "https://hentais.sssscanlator.com", "pt-BR", isNsfw = true, className = "SssHentais"),
 | 
			
		||||
        SingleLang("Starlight Scan", "https://starligthscan.com", "pt-BR", isNsfw = true),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user