mirror of
https://github.com/keiyoushi/extensions-source.git
synced 2024-11-23 02:42:35 +01:00
MangaDistrict: get absolute dates from page list (#4527)
* MangaDistrict: get absolute dates from page list * tfw
This commit is contained in:
parent
8d4d54a941
commit
2e8b41db6c
@ -3,7 +3,7 @@ ext {
|
||||
extClass = '.MangaDistrict'
|
||||
themePkg = 'madara'
|
||||
baseUrl = 'https://mangadistrict.com'
|
||||
overrideVersionCode = 5
|
||||
overrideVersionCode = 6
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
@ -7,13 +7,19 @@ import androidx.preference.PreferenceScreen
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.encodeToString
|
||||
import okhttp3.Response
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
import java.util.TimeZone
|
||||
|
||||
class MangaDistrict :
|
||||
Madara(
|
||||
@ -66,9 +72,44 @@ class MangaDistrict :
|
||||
}
|
||||
}
|
||||
|
||||
override fun chapterFromElement(element: Element): SChapter {
|
||||
return super.chapterFromElement(element).apply {
|
||||
preferences.dates[url]?.also {
|
||||
date_upload = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val pageListDate = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).apply {
|
||||
timeZone = TimeZone.getTimeZone("UTC")
|
||||
}
|
||||
|
||||
override fun pageListParse(document: Document): List<Page> {
|
||||
try {
|
||||
preferences.dates[document.location()] = pageListDate.parse(
|
||||
document.selectFirst("meta[property=og:updated_time]")!!
|
||||
.attr("content").substringBeforeLast("+"),
|
||||
)!!.time
|
||||
} catch (_: Exception) {}
|
||||
|
||||
return super.pageListParse(document)
|
||||
}
|
||||
|
||||
private fun isRemoveTitleVersion() = preferences.getBoolean(REMOVE_TITLE_VERSION_PREF, false)
|
||||
private fun getImgRes() = preferences.getString(IMG_RES_PREF, IMG_RES_DEFAULT)!!
|
||||
|
||||
private var SharedPreferences.dates: MutableMap<String, Long>
|
||||
get() = try {
|
||||
json.decodeFromString(getString(DATE_MAP, "{}") ?: "{}")
|
||||
} catch (_: Exception) {
|
||||
mutableMapOf()
|
||||
}
|
||||
set(newVal) {
|
||||
val currentMap = dates
|
||||
currentMap.putAll(newVal)
|
||||
edit().putString(DATE_MAP, json.encodeToString(currentMap)).apply()
|
||||
}
|
||||
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||
SwitchPreferenceCompat(screen.context).apply {
|
||||
key = REMOVE_TITLE_VERSION_PREF
|
||||
@ -105,5 +146,7 @@ class MangaDistrict :
|
||||
private const val IMG_RES_HIGH = "high"
|
||||
private const val IMG_RES_FULL = "full"
|
||||
private const val IMG_RES_DEFAULT = IMG_RES_ALL
|
||||
|
||||
private const val DATE_MAP = "date_saved"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user