Skip to content

Commit

Permalink
Update source
Browse files Browse the repository at this point in the history
 [AnimeH] Broken source close #1301
 [SussyScan] fix close #1298
 close #1287
 close #1282
 close #1273
 close #1267
 close #1268
 close #1260
 close #1234
 [Manhwa18] fix src close #1297
 close #1290
 close #1288
[KomikCast] close #1284
close #1283
close #1272
close #1270
close #1265
[Birdtoon] close #1276
[Komiktap] close #1275
[SadScans] close #1274
[Flamecomics] reverse chapter fix close #1266
[Kiryuu] fix url close #1258
[MangaTime] Broken close #1228
[Dexhentai] fix close #1226
  • Loading branch information
davvarrr committed Dec 13, 2024
1 parent 336f647 commit 6b1fb90
Show file tree
Hide file tree
Showing 136 changed files with 730 additions and 362 deletions.
2 changes: 1 addition & 1 deletion .github/summary.yaml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
total: 1154
total: 1172
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context

override val availableSortOrders: Set<SortOrder> = EnumSet.of(
SortOrder.NEWEST,
SortOrder.POPULARITY,
SortOrder.POPULARITY_TODAY,
SortOrder.POPULARITY_WEEK,
SortOrder.POPULARITY_MONTH,
SortOrder.POPULARITY_YEAR,
)

private val localeMap: Map<Locale, String> = mapOf(
Expand Down Expand Up @@ -121,9 +124,10 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context

override suspend fun getList(offset: Int, order: SortOrder, filter: MangaListFilter): List<Manga> = when {
filter.query.isNullOrEmpty() -> {

if (filter.tags.isEmpty()) {
when (order) {
SortOrder.POPULARITY -> {
SortOrder.POPULARITY_TODAY -> {
getGalleryIDsFromNozomi(
"popular",
"today",
Expand All @@ -132,6 +136,33 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
)
}

SortOrder.POPULARITY_WEEK -> {
getGalleryIDsFromNozomi(
"popular",
"week",
filter.locale.getSiteLang(),
offset.nextOffsetRange(),
)
}

SortOrder.POPULARITY_MONTH -> {
getGalleryIDsFromNozomi(
"popular",
"month",
filter.locale.getSiteLang(),
offset.nextOffsetRange(),
)
}

SortOrder.POPULARITY_YEAR -> {
getGalleryIDsFromNozomi(
"popular",
"year",
filter.locale.getSiteLang(),
offset.nextOffsetRange(),
)
}

else -> {
getGalleryIDsFromNozomi(null, "index", filter.locale.getSiteLang(), offset.nextOffsetRange())
}
Expand All @@ -141,7 +172,7 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
cachedSearchIds =
hitomiSearch(
filter.tags.joinToString(" ") { it.key },
order == SortOrder.POPULARITY,
order,
filter.locale.getSiteLang(),
).toList()
}
Expand All @@ -151,7 +182,7 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context

else -> {
if (offset == 0) {
cachedSearchIds = hitomiSearch(filter.query, order == SortOrder.POPULARITY).toList()
cachedSearchIds = hitomiSearch(filter.query, order).toList()
}
cachedSearchIds.subList(offset, min(offset + 25, cachedSearchIds.size))
}
Expand All @@ -164,7 +195,7 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context

private suspend fun hitomiSearch(
query: String,
sortByPopularity: Boolean = false,
sortByPopularity: SortOrder = SortOrder.UPDATED,
language: String = "all",
): Set<Int> =
coroutineScope {
Expand Down Expand Up @@ -205,7 +236,11 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
}

val results = when {
sortByPopularity -> getGalleryIDsFromNozomi(null, "popular", language)
sortByPopularity == SortOrder.UPDATED -> getGalleryIDsFromNozomi(null, "index", language)
sortByPopularity == SortOrder.POPULARITY_TODAY -> getGalleryIDsFromNozomi("popular", "today", language)
sortByPopularity == SortOrder.POPULARITY_WEEK -> getGalleryIDsFromNozomi("popular", "week", language)
sortByPopularity == SortOrder.POPULARITY_MONTH -> getGalleryIDsFromNozomi("popular", "month", language)
sortByPopularity == SortOrder.POPULARITY_YEAR -> getGalleryIDsFromNozomi("popular", "year", language)
positiveTerms.isEmpty() -> getGalleryIDsFromNozomi(null, "index", language)
else -> emptySet()
}.toMutableSet()
Expand Down Expand Up @@ -481,14 +516,14 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
title = doc.selectFirstOrThrow("h1").text(),
url = id.toString(),
coverUrl =
"https:" +
doc.selectFirstOrThrow("picture > source")
.attr("data-srcset")
.substringBefore(" "),
"https:" +
doc.selectFirstOrThrow("picture > source")
.attr("data-srcset")
.substringBefore(" "),
publicUrl =
doc.selectFirstOrThrow("h1 > a")
.attrAsRelativeUrl("href")
.toAbsoluteUrl(domain),
doc.selectFirstOrThrow("h1 > a")
.attrAsRelativeUrl("href")
.toAbsoluteUrl(domain),
author = null,
tags = emptySet(),
isNsfw = true,
Expand All @@ -511,37 +546,37 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
return manga.copy(
title = json.getString("title"),
largeCoverUrl =
json.getJSONArray("files").getJSONObject(0).let {
val hash = it.getString("hash")
val commonId = commonImageId()
val imageId = imageIdFromHash(hash)
val subDomain = 'a' + subdomainOffset(imageId)

"https://${getDomain("${subDomain}a")}/webp/$commonId$imageId/$hash.webp"
},
json.getJSONArray("files").getJSONObject(0).let {
val hash = it.getString("hash")
val commonId = commonImageId()
val imageId = imageIdFromHash(hash)
val subDomain = 'a' + subdomainOffset(imageId)

"https://${getDomain("${subDomain}a")}/webp/$commonId$imageId/$hash.webp"
},
author =
json.optJSONArray("artists")
?.mapJSON { it.getString("artist").toCamelCase() }
?.joinToString(),
json.optJSONArray("artists")
?.mapJSON { it.getString("artist").toCamelCase() }
?.joinToString(),
publicUrl = json.getString("galleryurl").toAbsoluteUrl(domain),
tags =
buildSet {
json.optJSONArray("characters")
?.mapToTags("character")
?.let(::addAll)
json.optJSONArray("tags")
?.mapToTags("tag")
?.let(::addAll)
json.optJSONArray("artists")
?.mapToTags("artist")
?.let(::addAll)
json.optJSONArray("parodys")
?.mapToTags("parody")
?.let(::addAll)
json.optJSONArray("groups")
?.mapToTags("group")
?.let(::addAll)
},
buildSet {
json.optJSONArray("characters")
?.mapToTags("character")
?.let(::addAll)
json.optJSONArray("tags")
?.mapToTags("tag")
?.let(::addAll)
json.optJSONArray("artists")
?.mapToTags("artist")
?.let(::addAll)
json.optJSONArray("parodys")
?.mapToTags("parody")
?.let(::addAll)
json.optJSONArray("groups")
?.mapToTags("group")
?.let(::addAll)
},
chapters = listOf(
MangaChapter(
id = generateUid(manga.url),
Expand All @@ -565,15 +600,15 @@ internal class HitomiLaParser(context: MangaLoaderContext) : MangaParser(context
mapJSON {
MangaTag(
title =
it.getString(key).toCamelCase().let { title ->
if (it.getStringOrNull("female")?.toIntOrNull() == 1) {
"$title"
} else if (it.getStringOrNull("male")?.toIntOrNull() == 1) {
"$title"
} else {
title
}
},
it.getString(key).toCamelCase().let { title ->
if (it.getStringOrNull("female")?.toIntOrNull() == 1) {
"$title"
} else if (it.getStringOrNull("male")?.toIntOrNull() == 1) {
"$title"
} else {
title
}
},
key = it.getString("url").tagUrlToTag(),
source = source,
).let(tags::add)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ internal abstract class LineWebtoonsParser(

override suspend fun resolveLink(resolver: LinkResolver, link: HttpUrl): Manga? {
val titleNo = link.queryParameter("title_no") ?: return null
return resolver.resolveManga(this, url = titleNo.toString())
return resolver.resolveManga(this, url = titleNo)
}

private fun parseTag(jo: JSONObject): MangaTag {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import okhttp3.Interceptor
import okhttp3.Response
import org.json.JSONArray
import org.json.JSONObject
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.PagedMangaParser
Expand All @@ -19,6 +20,7 @@ import org.koitharu.kotatsu.parsers.util.suspendlazy.suspendLazy
import java.text.SimpleDateFormat
import java.util.*

@Broken
@MangaSourceParser("NINENINENINEHENTAI", "AnimeH", type = ContentType.HENTAI)
internal class NineNineNineHentaiParser(context: MangaLoaderContext) :
PagedMangaParser(context, MangaParserSource.NINENINENINEHENTAI, PAGE_SIZE), Interceptor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ internal class BeeToon(context: MangaLoaderContext) :

override val availableSortOrders: Set<SortOrder> = EnumSet.of(SortOrder.UPDATED, SortOrder.POPULARITY)

override val configKeyDomain = ConfigKey.Domain("manhwafull.net")
override val configKeyDomain = ConfigKey.Domain("bidmanga.com")

override fun onCreateConfig(keys: MutableCollection<ConfigKey<*>>) {
super.onCreateConfig(keys)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import java.util.*
@MangaSourceParser("COMICEXTRA", "ComicExtra", "en", ContentType.COMICS)
internal class ComicExtra(context: MangaLoaderContext) : PagedMangaParser(context, MangaParserSource.COMICEXTRA, 25) {

override val configKeyDomain = ConfigKey.Domain("comixextra.com")
override val configKeyDomain = ConfigKey.Domain("azcomix.me")

override val userAgentKey = ConfigKey.UserAgent(UserAgents.CHROME_DESKTOP)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ internal class FlameComics(context: MangaLoaderContext) :
branch = jo.getStringOrNull("language"),
source = source,
)
},
}.reversed(),
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,7 @@ internal class Manhwa18Parser(context: MangaLoaderContext) :
val chapterUrl = chapter.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(chapterUrl).parseHtml()
return doc.requireElementById("chapter-content").select("img").mapNotNull {
val url = it.attrAsRelativeUrlOrNull("data-src")
?: it.attrAsRelativeUrlOrNull("src")
?: return@mapNotNull null
val url = it.src() ?: return@mapNotNull null
MangaPage(
id = generateUid(url),
url = url,
Expand Down
Loading

0 comments on commit 6b1fb90

Please sign in to comment.