fix: handle Komga tracks during manga migration (#6463)

* fix: handle Komga tracks during manga migration

closes #6354

* refactor: remove Komga direct reference
This commit is contained in:
Gauthier
2022-01-23 03:25:05 +08:00
committed by GitHub
parent 66a180bc36
commit cd7cf3583e
3 changed files with 38 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.data.track
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.database.models.Track
import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.source.Source
@@ -25,4 +26,14 @@ interface EnhancedTrackService {
* match is similar to TrackService.search, but only return zero or one match.
*/
suspend fun match(manga: Manga): TrackSearch?
/**
* Checks whether the provided source/track/manga triplet is from this TrackService
*/
fun isTrackFrom(track: Track, manga: Manga, source: Source): Boolean
/**
* Migrates the given track for the manga to the newSource, if possible
*/
fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track?
}

View File

@@ -10,6 +10,7 @@ import eu.kanade.tachiyomi.data.track.EnhancedTrackService
import eu.kanade.tachiyomi.data.track.NoLoginTrackService
import eu.kanade.tachiyomi.data.track.TrackService
import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.source.Source
import okhttp3.Dns
import okhttp3.OkHttpClient
@@ -103,4 +104,14 @@ class Komga(private val context: Context, id: Int) : TrackService(id), EnhancedT
} catch (e: Exception) {
null
}
override fun isTrackFrom(track: Track, manga: Manga, source: Source): Boolean =
accept(source) && track.tracking_url == manga.url
override fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track? =
if (accept(newSource)) {
track.also { track.tracking_url = manga.url }
} else {
null
}
}