diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt index e71378eec..beb969daf 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/AnibelRepository.kt @@ -237,7 +237,6 @@ class AnibelRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor when { c == '-' -> { builder.setCharAt(i, ' ') - capitalize = true } capitalize -> { builder.setCharAt(i, c.uppercaseChar()) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt index 82a0a3268..ceb4ee024 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ChanRepository.kt @@ -61,7 +61,7 @@ abstract class ChanRepository(loaderContext: MangaLoaderContext) : RemoteMangaRe tags = runCatching { row.selectFirst("div.genre")?.select("a")?.mapToSet { MangaTag( - title = it.text(), + title = it.text().toTitleCase(), key = it.attr("href").substringAfterLast('/').urlEncoded(), source = source ) @@ -136,7 +136,7 @@ abstract class ChanRepository(loaderContext: MangaLoaderContext) : RemoteMangaRe return root.select("li.sidetag").mapToSet { li -> val a = li.children().last() ?: throw ParseException("a is null") MangaTag( - title = a.text().toCamelCase(), + title = a.text().toTitleCase(), key = a.attr("href").substringAfterLast('/'), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt index 0b5fd9b65..308f209b0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/DesuMeRepository.kt @@ -85,7 +85,7 @@ class DesuMeRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor tags = json.getJSONArray("genres").mapToSet { MangaTag( key = it.getString("text"), - title = it.getString("russian"), + title = it.getString("russian").toTitleCase(), source = manga.source ) }, @@ -133,7 +133,7 @@ class DesuMeRepository(loaderContext: MangaLoaderContext) : RemoteMangaRepositor MangaTag( source = source, key = it.selectFirst("input")?.attr("data-genre") ?: parseFailed(), - title = it.selectFirst("label")?.text() ?: parseFailed() + title = it.selectFirst("label")?.text()?.toTitleCase() ?: parseFailed() ) } } diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt index 41b86750e..00619c34f 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/ExHentaiRepository.kt @@ -85,7 +85,7 @@ class ExHentaiRepository( val tagsDiv = glink.nextElementSibling() ?: parseFailed("tags div not found") val mainTag = td2.selectFirst("div.cn")?.let { div -> MangaTag( - title = div.text(), + title = div.text().toTitleCase(), key = tagIdByClass(div.classNames()) ?: return@let null, source = source, ) @@ -181,7 +181,7 @@ class ExHentaiRepository( val id = div.id().substringAfterLast('_').toIntOrNull() ?: return@mapNotNullToSet null MangaTag( - title = div.text(), + title = div.text().toTitleCase(), key = id.toString(), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt index 598a43bf0..c1f49d804 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/GroupleRepository.kt @@ -89,7 +89,7 @@ abstract class GroupleRepository(loaderContext: MangaLoaderContext) : tileInfo?.select("a.element-link") ?.mapToSet { MangaTag( - title = it.text(), + title = it.text().toTitleCase(), key = it.attr("href").substringAfterLast('/'), source = source ) @@ -119,7 +119,7 @@ abstract class GroupleRepository(loaderContext: MangaLoaderContext) : .mapNotNull { val a = it.selectFirst("a.element-link") ?: return@mapNotNull null MangaTag( - title = a.text(), + title = a.text().toTitleCase(), key = a.attr("href").substringAfterLast('/'), source = source ) @@ -183,7 +183,7 @@ abstract class GroupleRepository(loaderContext: MangaLoaderContext) : ?.selectFirst("table.table") ?: parseFailed("Cannot find root") return root.select("a.element-link").mapToSet { a -> MangaTag( - title = a.text().toCamelCase(), + title = a.text().toTitleCase(), key = a.attr("href").substringAfterLast('/'), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt index 072c7611b..2c25870b9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/HenChanRepository.kt @@ -5,6 +5,7 @@ import org.koitharu.kotatsu.core.exceptions.ParseException import org.koitharu.kotatsu.core.model.* import org.koitharu.kotatsu.utils.ext.mapToSet import org.koitharu.kotatsu.utils.ext.parseHtml +import org.koitharu.kotatsu.utils.ext.toTitleCase class HenChanRepository(loaderContext: MangaLoaderContext) : ChanRepository(loaderContext) { @@ -36,7 +37,7 @@ class HenChanRepository(loaderContext: MangaLoaderContext) : ChanRepository(load tags = root.selectFirst("div.sidetags")?.select("li.sidetag")?.mapToSet { val a = it.children().last() ?: parseFailed("Invalid tag") MangaTag( - title = a.text(), + title = a.text().toTitleCase(), key = a.attr("href").substringAfterLast('/'), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaDexRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaDexRepository.kt index 2b289212b..57e57c025 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaDexRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaDexRepository.kt @@ -94,7 +94,8 @@ class MangaDexRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit MangaTag( title = tag.getJSONObject("attributes") .getJSONObject("name") - .firstStringValue(), + .firstStringValue() + .toTitleCase(), key = tag.getString("id"), source = source, ) @@ -194,7 +195,7 @@ class MangaDexRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit .getJSONArray("data") return tags.mapToSet { jo -> MangaTag( - title = jo.getJSONObject("attributes").getJSONObject("name").firstStringValue(), + title = jo.getJSONObject("attributes").getJSONObject("name").firstStringValue().toTitleCase(), key = jo.getString("id"), source = source, ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt index ed58f073c..8ebbf2c44 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaLibRepository.kt @@ -139,7 +139,7 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) : tags = info?.selectFirst("div.media-tags") ?.select("a.media-tag-item")?.mapToSet { a -> MangaTag( - title = a.text().toCamelCase(), + title = a.text().toTitleCase(), key = a.attr("href").substringAfterLast('='), source = source ) @@ -203,7 +203,7 @@ open class MangaLibRepository(loaderContext: MangaLoaderContext) : result += MangaTag( source = source, key = x.getInt("id").toString(), - title = x.getString("name").toCamelCase() + title = x.getString("name").toTitleCase(), ) } return result diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt index 5e5429d95..a9c0030d2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaOwlRepository.kt @@ -91,7 +91,7 @@ class MangaOwlRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit .mapNotNull { val a = it.selectFirst("a") ?: return@mapNotNull null MangaTag( - title = a.text(), + title = a.text().toTitleCase(), key = a.attr("href"), source = source ) @@ -144,7 +144,7 @@ class MangaOwlRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposit return root.mapToSet { p -> val a = p.selectFirst("a") ?: parseFailed("a is null") MangaTag( - title = a.text().toCamelCase(), + title = a.text().toTitleCase(), key = a.attr("href"), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt index afe3750c3..973bb77bb 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangaTownRepository.kt @@ -80,7 +80,7 @@ class MangaTownRepository(loaderContext: MangaLoaderContext) : }, tags = li.selectFirst("p.keyWord")?.select("a")?.mapNotNullToSet tags@{ x -> MangaTag( - title = x.attr("title"), + title = x.attr("title").toTitleCase(), key = x.attr("href").parseTagKey() ?: return@tags null, source = MangaSource.MANGATOWN ) @@ -104,7 +104,7 @@ class MangaTownRepository(loaderContext: MangaLoaderContext) : x.selectFirst("b")?.ownText() == "Genre(s):" }?.select("a")?.mapNotNull { a -> MangaTag( - title = a.attr("title"), + title = a.attr("title").toTitleCase(), key = a.attr("href").parseTagKey() ?: return@mapNotNull null, source = MangaSource.MANGATOWN ) @@ -172,7 +172,7 @@ class MangaTownRepository(loaderContext: MangaLoaderContext) : MangaTag( source = MangaSource.MANGATOWN, key = key, - title = a.text() + title = a.text().toTitleCase() ) } } diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt index 2b2f9b8cd..6aa94cb98 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/MangareadRepository.kt @@ -62,7 +62,7 @@ class MangareadRepository( tags = summary?.selectFirst(".mg_genres")?.select("a")?.mapToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), - title = a.text(), + title = a.text().toTitleCase(), source = MangaSource.MANGAREAD ) }.orEmpty(), @@ -91,7 +91,7 @@ class MangareadRepository( } MangaTag( key = href, - title = a.text(), + title = a.text().toTitleCase(), source = MangaSource.MANGAREAD ) } @@ -113,7 +113,7 @@ class MangareadRepository( ?.mapNotNullToSet { a -> MangaTag( key = a.attr("href").removeSuffix("/").substringAfterLast('/'), - title = a.text(), + title = a.text().toTitleCase(), source = MangaSource.MANGAREAD ) } ?: manga.tags, diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt index 7b782ab1c..351467882 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/NineMangaRepository.kt @@ -94,7 +94,7 @@ abstract class NineMangaRepository( tags = infoRoot.getElementsByAttributeValue("itemprop", "genre").first() ?.select("a")?.mapToSet { a -> MangaTag( - title = a.text(), + title = a.text().toTitleCase(), key = a.attr("href").substringBetween("/", "."), source = source, ) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt index ebea9bc94..d3925d62a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/parser/site/RemangaRepository.kt @@ -73,7 +73,7 @@ class RemangaRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposito author = null, tags = jo.optJSONArray("genres")?.mapToSet { g -> MangaTag( - title = g.getString("name"), + title = g.getString("name").toTitleCase(), key = g.getInt("id").toString(), source = MangaSource.REMANGA ) @@ -109,7 +109,7 @@ class RemangaRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposito }, tags = content.getJSONArray("genres").mapToSet { g -> MangaTag( - title = g.getString("name"), + title = g.getString("name").toTitleCase(), key = g.getInt("id").toString(), source = MangaSource.REMANGA ) @@ -175,7 +175,7 @@ class RemangaRepository(loaderContext: MangaLoaderContext) : RemoteMangaReposito .parseJson().getJSONObject("content").getJSONArray("genres") return content.mapToSet { jo -> MangaTag( - title = jo.getString("name"), + title = jo.getString("name").toTitleCase(), key = jo.getInt("id").toString(), source = source ) diff --git a/app/src/main/java/org/koitharu/kotatsu/local/data/MangaIndex.kt b/app/src/main/java/org/koitharu/kotatsu/local/data/MangaIndex.kt index f678b83b7..791e9985a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/data/MangaIndex.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/data/MangaIndex.kt @@ -7,10 +7,7 @@ import org.koitharu.kotatsu.core.model.Manga import org.koitharu.kotatsu.core.model.MangaChapter import org.koitharu.kotatsu.core.model.MangaSource import org.koitharu.kotatsu.core.model.MangaTag -import org.koitharu.kotatsu.utils.ext.getBooleanOrDefault -import org.koitharu.kotatsu.utils.ext.getLongOrDefault -import org.koitharu.kotatsu.utils.ext.getStringOrNull -import org.koitharu.kotatsu.utils.ext.mapToSet +import org.koitharu.kotatsu.utils.ext.* class MangaIndex(source: String?) { @@ -61,7 +58,7 @@ class MangaIndex(source: String?) { description = json.getStringOrNull("description"), tags = json.getJSONArray("tags").mapToSet { x -> MangaTag( - title = x.getString("title"), + title = x.getString("title").toTitleCase(), key = x.getString("key"), source = source )