feat(MangaDex): use tracker links to associate mangas automatically with trackers (#1387)

* feat: add searchById support to trackers (MAL, AniList, MangaUpdates only)

* feat: add new preference to toggle auto selection of tracker items using source metadata if available

* feat: add new preference to toggle auto selection of tracker items using source metadata if available

* feat: add automatic title selection using source metadata to TrackInfoDialog.kt

* style: apply spotless

* refactor: remove hardcoded MangaDexSearchMetadata cast and introduce common interface
This commit is contained in:
Tim Schneeberger
2025-03-02 17:37:50 +01:00
committed by GitHub
parent 8d062cecfd
commit 217503eab0
15 changed files with 347 additions and 77 deletions
@@ -4,13 +4,14 @@ import android.content.Context
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.model.copy
import exh.md.utils.MangaDexRelation
import exh.metadata.metadata.base.TrackerIdMetadata
import kotlinx.serialization.Serializable
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.i18n.MR
import tachiyomi.i18n.sy.SYMR
@Serializable
class MangaDexSearchMetadata : RaisedSearchMetadata() {
class MangaDexSearchMetadata : RaisedSearchMetadata(), TrackerIdMetadata {
var mdUuid: String? = null
// var mdUrl: String? = null
@@ -31,11 +32,11 @@ class MangaDexSearchMetadata : RaisedSearchMetadata() {
var rating: Float? = null
// var users: String? = null
var anilistId: String? = null
var kitsuId: String? = null
var myAnimeListId: String? = null
var mangaUpdatesId: String? = null
var animePlanetId: String? = null
override var anilistId: String? = null
override var kitsuId: String? = null
override var myAnimeListId: String? = null
override var mangaUpdatesId: String? = null
override var animePlanetId: String? = null
var status: Int? = null
@@ -0,0 +1,9 @@
package exh.metadata.metadata.base
interface TrackerIdMetadata {
var anilistId: String?
var kitsuId: String?
var myAnimeListId: String?
var mangaUpdatesId: String?
var animePlanetId: String?
}