Cleanup mangadex, hopefully mitigate freezing
This commit is contained in:
parent
dee3abd0c3
commit
2bdead3e5f
@ -382,7 +382,7 @@ class LibraryUpdateService(
|
||||
)
|
||||
|
||||
try {
|
||||
val (newChapters, _) = updateManga(manga)
|
||||
val (newChapters, _) = updateManga(manga, loggedServices)
|
||||
|
||||
if (newChapters.isNotEmpty()) {
|
||||
if (manga.shouldDownloadNewChapters(db, preferences)) {
|
||||
@ -456,7 +456,7 @@ class LibraryUpdateService(
|
||||
* @param manga the manga to update.
|
||||
* @return a pair of the inserted and removed chapters.
|
||||
*/
|
||||
suspend fun updateManga(manga: Manga): Pair<List<Chapter>, List<Chapter>> {
|
||||
suspend fun updateManga(manga: Manga, loggedServices: List<TrackService>): Pair<List<Chapter>, List<Chapter>> {
|
||||
val source = sourceManager.getOrStub(manga.source).getMainSource()
|
||||
|
||||
// Update manga details metadata in the background
|
||||
@ -480,16 +480,15 @@ class LibraryUpdateService(
|
||||
}
|
||||
|
||||
// SY -->
|
||||
if (source.isMdBasedSource() && trackManager.mdList.isLogged) {
|
||||
if (source.isMdBasedSource() && trackManager.mdList in loggedServices) {
|
||||
val handler = CoroutineExceptionHandler { _, exception ->
|
||||
Timber.e(exception)
|
||||
}
|
||||
ioScope.launch(handler) {
|
||||
val tracks = db.getTracks(manga).executeOnIO()
|
||||
val tracks = db.getTracks(manga).executeAsBlocking()
|
||||
if (tracks.isEmpty() || tracks.none { it.sync_id == TrackManager.MDLIST }) {
|
||||
var track = trackManager.mdList.createInitialTracker(manga)
|
||||
track = trackManager.mdList.refresh(track)
|
||||
db.insertTrack(track).executeOnIO()
|
||||
val track = trackManager.mdList.createInitialTracker(manga)
|
||||
db.insertTrack(trackManager.mdList.refresh(track)).executeAsBlocking()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ class MdList(private val context: Context, id: Int) : TrackService(id) {
|
||||
override suspend fun refresh(track: Track): Track {
|
||||
return withIOContext {
|
||||
val mdex = mdex ?: throw MangaDexNotFoundException()
|
||||
val (remoteTrack/*, mangaMetadata*/) = mdex.getTrackingAndMangaInfo(track)
|
||||
val remoteTrack = mdex.fetchTrackingInfo(track.tracking_url)
|
||||
track.copyPersonalFrom(remoteTrack)
|
||||
/*if (track.total_chapters == 0 && mangaMetadata.status == SManga.COMPLETED) {
|
||||
track.total_chapters = mangaMetadata.maxChapterNumber ?: 0
|
||||
|
@ -83,7 +83,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
||||
|
||||
private val loginHelper = MangaDexLoginHelper(mangadexAuthServiceLazy, preferences, mdList)
|
||||
|
||||
override val baseHttpClient: OkHttpClient = super.client.newBuilder()
|
||||
override val baseHttpClient: OkHttpClient = delegate.client.newBuilder()
|
||||
.authenticator(
|
||||
TokenAuthenticator(loginHelper)
|
||||
)
|
||||
|
@ -252,7 +252,9 @@ class ApiMangaParser(
|
||||
// Convert from unix time
|
||||
val dateUpload = MdUtil.parseDate(attributes.publishAt)
|
||||
|
||||
val scanlatorName = networkChapter.relationships.filter { it.type == "scanlation_group" }.mapNotNull { groups[it.id] }.toSet()
|
||||
val scanlatorName = networkChapter.relationships.filter {
|
||||
it.type == MdConstants.Types.scanlator
|
||||
}.mapNotNull { groups[it.id] }.toSet()
|
||||
|
||||
val scanlator = MdUtil.cleanString(MdUtil.getScanlatorString(scanlatorName))
|
||||
|
||||
|
@ -159,8 +159,9 @@ class FollowsHandler(
|
||||
val mangaId = MdUtil.getMangaId(url)
|
||||
val followStatus = FollowStatus.fromDex(service.readingStatusForManga(mangaId).status)
|
||||
Track.create(TrackManager.MDLIST).apply {
|
||||
title = ""
|
||||
status = followStatus.int
|
||||
tracking_url = "${MdUtil.baseUrl}/title/$mangaId"
|
||||
tracking_url = url
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ class PageHandler(
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun updateExtensionVariable(mangadex: Source, atHomeRequestUrl: String) {
|
||||
private fun updateExtensionVariable(mangadex: Source, atHomeRequestUrl: String) {
|
||||
val mangadexSuperclass = mangadex::class.superclasses.first()
|
||||
|
||||
val helperCallable = mangadexSuperclass.members.find { it.name == "helper" } ?: return
|
||||
@ -69,7 +69,7 @@ class PageHandler(
|
||||
tokenTracker[atHomeRequestUrl] = System.currentTimeMillis()
|
||||
}
|
||||
|
||||
fun pageListParse(
|
||||
private fun pageListParse(
|
||||
chapterDto: ChapterDto,
|
||||
atHomeRequestUrl: String,
|
||||
atHomeDto: AtHomeDto,
|
||||
|
Loading…
x
Reference in New Issue
Block a user