Misc parsers fixes

pull/142/head
Koitharu 3 years ago
parent ef838068ff
commit cf00732023
No known key found for this signature in database
GPG Key ID: 8E861F8CE6E7CE27

@ -1,3 +1,5 @@
import tasks.ReportGenerateTask
plugins { plugins {
id 'java-library' id 'java-library'
id 'org.jetbrains.kotlin.jvm' id 'org.jetbrains.kotlin.jvm'
@ -68,4 +70,5 @@ dependencies {
testImplementation 'io.webfolder:quickjs:1.1.0' testImplementation 'io.webfolder:quickjs:1.1.0'
} }
tasks.register('generateTestsReport') //noinspection ConfigurationAvoidance
task generateTestsReport(type: ReportGenerateTask)

@ -51,6 +51,22 @@
data-bs-toggle="modal" style="cursor: pointer;"> data-bs-toggle="modal" style="cursor: pointer;">
<i data-feather="alert-triangle"></i> <i data-feather="alert-triangle"></i>
</td> </td>
{% elseif case.failure.type == 'java.net.SocketTimeoutException' or case.failure.type ==
'java.net.UnknownHostException' %}
<td class="table-secondary text-center" data-bs-target="#failure_{{ case.hashCode }}"
data-bs-toggle="modal" style="cursor: pointer;">
<i data-feather="power"></i>
</td>
{% elseif case.failure.type == 'org.koitharu.kotatsu.parsers.exception.CloudFlareProtectedException' %}
<td class="table-secondary text-center" data-bs-target="#failure_{{ case.hashCode }}"
data-bs-toggle="modal" style="cursor: pointer;">
<i data-feather="shield"></i>
</td>
{% elseif case.failure.type == 'org.koitharu.kotatsu.parsers.exception.AuthRequiredException' %}
<td class="table-secondary text-center" data-bs-target="#failure_{{ case.hashCode }}"
data-bs-toggle="modal" style="cursor: pointer;">
<i data-feather="user-x"></i>
</td>
{% else %} {% else %}
<td class="table-danger text-center" data-bs-target="#failure_{{ case.hashCode }}" <td class="table-danger text-center" data-bs-target="#failure_{{ case.hashCode }}"
data-bs-toggle="modal" style="cursor: pointer;"> data-bs-toggle="modal" style="cursor: pointer;">
@ -88,6 +104,21 @@

@ -24,7 +24,7 @@ private const val CHAPTERS_LIMIT = 99999
@MangaSourceParser("COMICK_FUN", "ComicK") @MangaSourceParser("COMICK_FUN", "ComicK")
internal class ComickFunParser(override val context: MangaLoaderContext) : MangaParser(MangaSource.COMICK_FUN) { internal class ComickFunParser(override val context: MangaLoaderContext) : MangaParser(MangaSource.COMICK_FUN) {
override val configKeyDomain = ConfigKey.Domain("comick.fun", null) override val configKeyDomain = ConfigKey.Domain("comick.app", null)
override val sortOrders: Set<SortOrder> = EnumSet.of( override val sortOrders: Set<SortOrder> = EnumSet.of(
SortOrder.POPULARITY, SortOrder.POPULARITY,

@ -58,9 +58,9 @@ internal class ExHentaiParser(
init { init {
context.cookieJar.insertCookies(DOMAIN_AUTHORIZED, "nw=1", "sl=dm_2") context.cookieJar.insertCookies(DOMAIN_AUTHORIZED, "nw=1", "sl=dm_2")
context.cookieJar.insertCookies(DOMAIN_UNAUTHORIZED, "nw=1", "sl=dm_2") context.cookieJar.insertCookies(DOMAIN_UNAUTHORIZED, "nw=1", "sl=dm_2")
paginator.firstPage = 0
} }
override suspend fun getListPage( override suspend fun getListPage(
page: Int, page: Int,
query: String?, query: String?,
@ -68,11 +68,16 @@ internal class ExHentaiParser(
sortOrder: SortOrder, sortOrder: SortOrder,
): List<Manga> { ): List<Manga> {
var search = query?.urlEncoded().orEmpty() var search = query?.urlEncoded().orEmpty()
val next = nextPages.get(page, 0L)
if (page > 0 && next == 0L) {
assert(false) { "Page timestamp not found" }
return emptyList()
}
val url = buildString { val url = buildString {
append("https://") append("https://")
append(getDomain()) append(getDomain())
append("/?next=") append("/?next=")
append(nextPages.get(page, 0L)) append(next)
if (!tags.isNullOrEmpty()) { if (!tags.isNullOrEmpty()) {
var fCats = 0 var fCats = 0
for (tag in tags) { for (tag in tags) {

@ -18,7 +18,10 @@ internal class NudeMoonParser(
override val context: MangaLoaderContext, override val context: MangaLoaderContext,
) : MangaParser(MangaSource.NUDEMOON), MangaParserAuthProvider { ) : MangaParser(MangaSource.NUDEMOON), MangaParserAuthProvider {
override val configKeyDomain = ConfigKey.Domain("nude-moon.net", null) override val configKeyDomain = ConfigKey.Domain(
defaultValue = "nude-moon.org",
presetValues = arrayOf("nude-moon.org", "nude-moon.net"),
)
override val authUrl: String override val authUrl: String
get() = "https://${getDomain()}/index.php" get() = "https://${getDomain()}/index.php"

Loading…
Cancel
Save