Reaper scans: fix upload date bleeding into chapter name (#8819)
* fix Reaper Scans * run kotlinter * Missed from previous commits * fix ReadManhua
This commit is contained in:
parent
6521e78158
commit
51df2e6dc2
|
@ -1,11 +1,8 @@
|
||||||
package eu.kanade.tachiyomi.extension.pt.cervoscanlator
|
package eu.kanade.tachiyomi.extension.pt.cervoscanlator
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.lib.ratelimit.RateLimitInterceptor
|
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
import okhttp3.OkHttpClient
|
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
|
|
||||||
class CervoScanlator : Madara(
|
class CervoScanlator : Madara(
|
||||||
"Cervo Scanlator",
|
"Cervo Scanlator",
|
||||||
|
|
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.extension.en.mangacultivator
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
|
|
||||||
|
|
||||||
class MangaCultivator : Madara("MangaCultivator", "https://mangacultivator.com", "en") {
|
class MangaCultivator : Madara("MangaCultivator", "https://mangacultivator.com", "en") {
|
||||||
override val useNewChapterEndpoint: Boolean = true
|
override val useNewChapterEndpoint: Boolean = true
|
||||||
}
|
}
|
|
@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.extension.en.mangasushi
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
|
|
||||||
|
|
||||||
class Mangasushi : Madara("Mangasushi", "https://mangasushi.net", "en") {
|
class Mangasushi : Madara("Mangasushi", "https://mangasushi.net", "en") {
|
||||||
override val useNewChapterEndpoint: Boolean = true
|
override val useNewChapterEndpoint: Boolean = true
|
||||||
}
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
package eu.kanade.tachiyomi.extension.en.readmanhua
|
package eu.kanade.tachiyomi.extension.en.readmanhua
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.WordSet
|
|
||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
|
@ -34,19 +33,4 @@ class ReadManhua : Madara(
|
||||||
|
|
||||||
return chapter
|
return chapter
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parses dates in this form:
|
|
||||||
// 21 horas ago
|
|
||||||
private fun parseRelativeDate(date: String): Long {
|
|
||||||
val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0
|
|
||||||
val cal = Calendar.getInstance()
|
|
||||||
|
|
||||||
return when {
|
|
||||||
WordSet("hari", "gün", "jour", "día", "dia", "day").anyWordIn(date) -> cal.apply { add(Calendar.DAY_OF_MONTH, -number) }.timeInMillis
|
|
||||||
WordSet("jam", "saat", "heure", "hora", "hour").anyWordIn(date) -> cal.apply { add(Calendar.HOUR, -number) }.timeInMillis
|
|
||||||
WordSet("menit", "dakika", "min", "minute", "minuto").anyWordIn(date) -> cal.apply { add(Calendar.MINUTE, -number) }.timeInMillis
|
|
||||||
WordSet("detik", "segundo", "second").anyWordIn(date) -> cal.apply { add(Calendar.SECOND, -number) }.timeInMillis
|
|
||||||
else -> 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,31 @@
|
||||||
package eu.kanade.tachiyomi.extension.en.reaperscans
|
package eu.kanade.tachiyomi.extension.en.reaperscans
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
|
import org.jsoup.nodes.Element
|
||||||
|
|
||||||
class ReaperScans : Madara("Reaper Scans", "https://reaperscans.com", "en") {
|
class ReaperScans : Madara("Reaper Scans", "https://reaperscans.com", "en") {
|
||||||
override val versionId = 2
|
override val versionId = 2
|
||||||
|
|
||||||
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
override fun popularMangaSelector() = "div.page-item-detail.manga"
|
||||||
|
|
||||||
|
override fun chapterFromElement(element: Element): SChapter {
|
||||||
|
val chapter = SChapter.create()
|
||||||
|
|
||||||
|
with(element) {
|
||||||
|
select(chapterUrlSelector).first()?.let { urlElement ->
|
||||||
|
chapter.url = urlElement.attr("abs:href").let {
|
||||||
|
it.substringBefore("?style=paged") + if (!it.endsWith(chapterUrlSuffix)) chapterUrlSuffix else ""
|
||||||
|
}
|
||||||
|
chapter.name = urlElement.ownText()
|
||||||
|
}
|
||||||
|
// Dates can be part of a "new" graphic or plain text
|
||||||
|
// Added "title" alternative
|
||||||
|
chapter.date_upload = select("img").firstOrNull()?.attr("alt")?.let { parseRelativeDate(it) }
|
||||||
|
?: select("span a").firstOrNull()?.attr("title")?.let { parseRelativeDate(it) }
|
||||||
|
?: parseChapterDate(select("span.chapter-release-date i").firstOrNull()?.text())
|
||||||
|
}
|
||||||
|
|
||||||
|
return chapter
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -542,7 +542,7 @@ abstract class Madara(
|
||||||
|
|
||||||
// Parses dates in this form:
|
// Parses dates in this form:
|
||||||
// 21 horas ago
|
// 21 horas ago
|
||||||
private fun parseRelativeDate(date: String): Long {
|
fun parseRelativeDate(date: String): Long {
|
||||||
val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0
|
val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0
|
||||||
val cal = Calendar.getInstance()
|
val cal = Calendar.getInstance()
|
||||||
|
|
||||||
|
|
|
@ -325,7 +325,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
||||||
SingleLang("RawDEX", "https://rawdex.net", "ko", isNsfw = true, overrideVersionCode = 1),
|
SingleLang("RawDEX", "https://rawdex.net", "ko", isNsfw = true, overrideVersionCode = 1),
|
||||||
SingleLang("ReadAdult", "https://readadult.net", "en", isNsfw = true),
|
SingleLang("ReadAdult", "https://readadult.net", "en", isNsfw = true),
|
||||||
SingleLang("ReadManhua", "https://readmanhua.net", "en", overrideVersionCode = 2),
|
SingleLang("ReadManhua", "https://readmanhua.net", "en", overrideVersionCode = 2),
|
||||||
SingleLang("Reaper Scans", "https://reaperscans.com", "en"),
|
SingleLang("Reaper Scans", "https://reaperscans.com", "en", overrideVersionCode = 1),
|
||||||
SingleLang("Red Ribbon Scanlator", "https://redribbon.site", "pt-BR", overrideVersionCode = 1),
|
SingleLang("Red Ribbon Scanlator", "https://redribbon.site", "pt-BR", overrideVersionCode = 1),
|
||||||
SingleLang("Renascence Scans (Renascans)", "https://new.renascans.com", "en", className = "RenaScans", overrideVersionCode = 1),
|
SingleLang("Renascence Scans (Renascans)", "https://new.renascans.com", "en", className = "RenaScans", overrideVersionCode = 1),
|
||||||
SingleLang("Reset Scans", "https://reset-scans.com", "en", overrideVersionCode = 3),
|
SingleLang("Reset Scans", "https://reset-scans.com", "en", overrideVersionCode = 3),
|
||||||
|
|
|
@ -307,5 +307,4 @@ abstract class ZManga(
|
||||||
private class Tag(val id: String, name: String) : Filter.CheckBox(name)
|
private class Tag(val id: String, name: String) : Filter.CheckBox(name)
|
||||||
|
|
||||||
private class GenreList(genres: List<Tag>) : Filter.Group<Tag>("Genres", genres)
|
private class GenreList(genres: List<Tag>) : Filter.Group<Tag>("Genres", genres)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue