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