Mangastream: fix some chapter URLs being decoded when stored (closes #1148)
This commit is contained in:
parent
31175e3b6d
commit
e2d2a8afc2
|
@ -5,7 +5,7 @@ ext {
|
|||
appName = 'Tachiyomi: Mangastream'
|
||||
pkgNameSuffix = 'en.mangastream'
|
||||
extClass = '.Mangastream'
|
||||
extVersionCode = 3
|
||||
extVersionCode = 4
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,11 @@ package eu.kanade.tachiyomi.extension.en.mangastream
|
|||
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||
import eu.kanade.tachiyomi.source.model.*
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Response
|
||||
|
@ -11,20 +15,24 @@ import org.jsoup.nodes.Element
|
|||
import rx.Observable
|
||||
import java.text.ParseException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Calendar
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import java.util.regex.Pattern
|
||||
|
||||
class Mangastream : ParsedHttpSource() {
|
||||
|
||||
override val name = "Mangastream"
|
||||
|
||||
override val baseUrl = "https://mangastream.com"
|
||||
override val baseUrl = "https://readms.net/"
|
||||
|
||||
override val lang = "en"
|
||||
|
||||
override val supportsLatest = true
|
||||
|
||||
private val datePattern = Pattern.compile("(\\d+) days? ago")
|
||||
private val datePattern by lazy {
|
||||
Pattern.compile("(\\d+) days? ago")
|
||||
}
|
||||
|
||||
override fun popularMangaSelector() = "table.table-striped > tbody > tr > td:nth-of-type(1)"
|
||||
|
||||
|
@ -83,10 +91,10 @@ class Mangastream : ParsedHttpSource() {
|
|||
|
||||
override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
|
||||
return client.newCall(searchMangaRequest(page, query, filters))
|
||||
.asObservableSuccess()
|
||||
.map { response ->
|
||||
searchMangaParse(response, query)
|
||||
}
|
||||
.asObservableSuccess()
|
||||
.map { response ->
|
||||
searchMangaParse(response, query)
|
||||
}
|
||||
}
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga {
|
||||
|
@ -114,27 +122,27 @@ class Mangastream : ParsedHttpSource() {
|
|||
val dateEl = element.select("td:nth-of-type(2)")
|
||||
|
||||
val chapter = SChapter.create()
|
||||
chapter.setUrlWithoutDomain(urlEl.attr("href"))
|
||||
chapter.url = urlEl.attr("href")
|
||||
chapter.name = urlEl.text()
|
||||
chapter.date_upload = dateEl.text()?.let { dateParse(it) } ?: 0
|
||||
|
||||
return chapter
|
||||
}
|
||||
|
||||
private fun dateParse(dateAsString: String): Long {
|
||||
var date: Date
|
||||
try {
|
||||
date = SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH).parse(dateAsString.replace(Regex("(st|nd|rd|th)"), ""))
|
||||
val date: Date = try {
|
||||
SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH).parse(dateAsString.replace(Regex("(st|nd|rd|th)"), ""))
|
||||
} catch (e: ParseException) {
|
||||
val m = datePattern.matcher(dateAsString)
|
||||
|
||||
if (dateAsString != "Today" && m.matches()) {
|
||||
val amount = m.group(1).toInt()
|
||||
|
||||
date = Calendar.getInstance().apply {
|
||||
Calendar.getInstance().apply {
|
||||
add(Calendar.DATE, -amount)
|
||||
}.time
|
||||
} else if (dateAsString == "Today"){
|
||||
date = Calendar.getInstance().time
|
||||
} else if (dateAsString == "Today") {
|
||||
Calendar.getInstance().time
|
||||
} else return 0
|
||||
}
|
||||
|
||||
|
@ -147,13 +155,14 @@ class Mangastream : ParsedHttpSource() {
|
|||
val pages = mutableListOf<Page>()
|
||||
|
||||
for (i in 1..num)
|
||||
pages.add(Page(i-1, url + i ))
|
||||
pages.add(Page(i - 1, url + i))
|
||||
|
||||
pages.getOrNull(0)?.imageUrl = imageUrlParse(document)
|
||||
return pages
|
||||
}
|
||||
|
||||
override fun imageUrlParse(document: Document) = "http:" + document.getElementById("manga-page").attr("src")
|
||||
override fun imageUrlParse(document: Document): String {
|
||||
return "http:" + document.getElementById("manga-page").attr("src")
|
||||
}
|
||||
|
||||
override fun getFilterList() = super.getFilterList()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue