@ -21,6 +21,7 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateService.Companion.start
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackService
import eu.kanade.tachiyomi.data.track.UnattendedTrackService
import eu.kanade.tachiyomi.data.track.UnattendedTrackService
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.SManga
@ -273,6 +274,7 @@ class LibraryUpdateService(
val newUpdates = mutableListOf < Pair < LibraryManga , Array < Chapter > > > ( )
val newUpdates = mutableListOf < Pair < LibraryManga , Array < Chapter > > > ( )
val failedUpdates = mutableListOf < Pair < Manga , String ? > > ( )
val failedUpdates = mutableListOf < Pair < Manga , String ? > > ( )
var hasDownloads = false
var hasDownloads = false
val loggedServices by lazy { trackManager . services . filter { it . isLogged } }
mangaToUpdate . forEach { manga ->
mangaToUpdate . forEach { manga ->
if ( updateJob ?. isActive != true ) {
if ( updateJob ?. isActive != true ) {
@ -301,6 +303,10 @@ class LibraryUpdateService(
}
}
failedUpdates . add ( manga to errorMessage )
failedUpdates . add ( manga to errorMessage )
}
}
if ( preferences . autoUpdateTrackers ( ) ) {
updateTrackings ( manga , loggedServices )
}
}
}
notifier . cancelProgressNotification ( )
notifier . cancelProgressNotification ( )
@ -409,31 +415,35 @@ class LibraryUpdateService(
notifier . showProgressNotification ( manga , progressCount ++ , mangaToUpdate . size )
notifier . showProgressNotification ( manga , progressCount ++ , mangaToUpdate . size )
// Update the tracking details.
// Update the tracking details.
db . getTracks ( manga ) . executeAsBlocking ( )
updateTrackings ( manga , loggedServices )
. map { track ->
}
supervisorScope {
async {
notifier . cancelProgressNotification ( )
val service = trackManager . getService ( track . sync _id )
}
if ( service != null && service in loggedServices ) {
try {
private suspend fun updateTrackings ( manga : LibraryManga , loggedServices : List < TrackService > ) {
val updatedTrack = service . refresh ( track )
db . getTracks ( manga ) . executeAsBlocking ( )
db . insertTrack ( updatedTrack ) . executeAsBlocking ( )
. map { track ->
supervisorScope {
if ( service is UnattendedTrackService ) {
async {
syncChaptersWithTrackServiceTwoWay ( db , db . getChapters ( manga ) . executeAsBlocking ( ) , track , service )
val service = trackManager . getService ( track . sync _id )
}
if ( service != null && service in loggedServices ) {
} catch ( e : Throwable ) {
try {
// Ignore errors and continue
val updatedTrack = service . refresh ( track )
Timber . e ( e )
db . insertTrack ( updatedTrack ) . executeAsBlocking ( )
if ( service is UnattendedTrackService ) {
syncChaptersWithTrackServiceTwoWay ( db , db . getChapters ( manga ) . executeAsBlocking ( ) , track , service )
}
}
} catch ( e : Throwable ) {
// Ignore errors and continue
Timber . e ( e )
}
}
}
}
}
}
}
}
. awaitAll ( )
}
}
. awaitAll ( )
notifier . cancelProgressNotification ( )
}
}
/ * *
/ * *