Add push to mangadex
(cherry picked from commit 869f24f2092c761bc2a7bf075784bc8b7cbaea23) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSiteController.kt # app/src/main/res/values/strings_neko.xml
This commit is contained in:
parent
c789203ff8
commit
0b6f7c5e23
@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.source.model.SManga
|
|||||||
import eu.kanade.tachiyomi.source.online.all.MangaDex
|
import eu.kanade.tachiyomi.source.online.all.MangaDex
|
||||||
import eu.kanade.tachiyomi.source.online.all.MergedSource
|
import eu.kanade.tachiyomi.source.online.all.MergedSource
|
||||||
import eu.kanade.tachiyomi.ui.library.LibraryGroup
|
import eu.kanade.tachiyomi.ui.library.LibraryGroup
|
||||||
|
import eu.kanade.tachiyomi.ui.manga.track.TrackItem
|
||||||
import eu.kanade.tachiyomi.util.chapter.NoChaptersException
|
import eu.kanade.tachiyomi.util.chapter.NoChaptersException
|
||||||
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource
|
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource
|
||||||
import eu.kanade.tachiyomi.util.prepUpdateCover
|
import eu.kanade.tachiyomi.util.prepUpdateCover
|
||||||
@ -92,7 +93,8 @@ class LibraryUpdateService(
|
|||||||
COVERS, // Manga covers
|
COVERS, // Manga covers
|
||||||
TRACKING, // Tracking metadata
|
TRACKING, // Tracking metadata
|
||||||
// SY -->
|
// SY -->
|
||||||
SYNC_FOLLOWS // MangaDex specific, pull mangadex manga in reading, rereading
|
SYNC_FOLLOWS, // MangaDex specific, pull mangadex manga in reading, rereading
|
||||||
|
PUSH_FAVORITES // MangaDex specific, push mangadex manga to mangadex
|
||||||
// SY <--
|
// SY <--
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,6 +227,7 @@ class LibraryUpdateService(
|
|||||||
Target.TRACKING -> updateTrackings(mangaList)
|
Target.TRACKING -> updateTrackings(mangaList)
|
||||||
// SY -->
|
// SY -->
|
||||||
Target.SYNC_FOLLOWS -> syncFollows()
|
Target.SYNC_FOLLOWS -> syncFollows()
|
||||||
|
Target.PUSH_FAVORITES -> pushFavorites()
|
||||||
// SY <--
|
// SY <--
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -581,6 +584,40 @@ class LibraryUpdateService(
|
|||||||
}
|
}
|
||||||
.map { LibraryManga() }
|
.map { LibraryManga() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method that updates the all mangas which are not tracked as "reading" on mangadex
|
||||||
|
*/
|
||||||
|
private fun pushFavorites(): Observable<LibraryManga> {
|
||||||
|
val count = AtomicInteger(0)
|
||||||
|
val listManga = db.getLibraryMangas().executeAsBlocking()
|
||||||
|
|
||||||
|
// filter all follows from Mangadex and only add reading or rereading manga to library
|
||||||
|
return Observable.from(if (trackManager.mdList.isLogged) listManga else emptyList())
|
||||||
|
.flatMap { manga ->
|
||||||
|
notifier.showProgressNotification(manga, count.andIncrement, listManga.size)
|
||||||
|
|
||||||
|
// Get this manga's trackers from the database
|
||||||
|
val dbTracks = db.getTracks(manga).executeAsBlocking()
|
||||||
|
|
||||||
|
//find the mdlist entry if its unfollowed the follow it
|
||||||
|
val tracker = TrackItem(dbTracks.firstOrNull { it.sync_id == TrackManager.MDLIST } ?: trackManager.mdList.createInitialTracker(manga), trackManager.mdList)
|
||||||
|
|
||||||
|
if (tracker.track?.status == FollowStatus.UNFOLLOWED.int) {
|
||||||
|
tracker.track.status = FollowStatus.READING.int
|
||||||
|
tracker.service.update(tracker.track)
|
||||||
|
} else Observable.just(null)
|
||||||
|
}
|
||||||
|
.doOnNext { returnedTracker ->
|
||||||
|
returnedTracker?.let {
|
||||||
|
db.insertTrack(returnedTracker)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.doOnCompleted {
|
||||||
|
notifier.cancelProgressNotification()
|
||||||
|
}
|
||||||
|
.map { LibraryManga() }
|
||||||
|
}
|
||||||
// SY <--
|
// SY <--
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,6 +79,18 @@ class SettingsMangaDexController :
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preference {
|
||||||
|
titleRes = R.string.mangadex_push_favorites_to_mangadex
|
||||||
|
summaryRes = R.string.mangadex_push_favorites_to_mangadex_summary
|
||||||
|
|
||||||
|
onClick {
|
||||||
|
LibraryUpdateService.start(
|
||||||
|
context,
|
||||||
|
target = LibraryUpdateService.Target.PUSH_FAVORITES
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun siteLoginDialogClosed(source: Source) {
|
override fun siteLoginDialogClosed(source: Source) {
|
||||||
|
@ -547,8 +547,8 @@
|
|||||||
<!-- MangaDex -->
|
<!-- MangaDex -->
|
||||||
<string name="md_follows_unfollowed">Unfollowed</string>
|
<string name="md_follows_unfollowed">Unfollowed</string>
|
||||||
<string name="mangadex_specific_settings">MangaDex settings</string>
|
<string name="mangadex_specific_settings">MangaDex settings</string>
|
||||||
<string name="mangadex_sync_follows_to_library">Sync Mangadex manga into your library</string>
|
<string name="mangadex_sync_follows_to_library">Sync Mangadex manga to your library</string>
|
||||||
<string name="mangadex_sync_follows_to_library_summary">Pulls reading/rereading manga from Mangadex into your library</string>
|
<string name="mangadex_sync_follows_to_library_summary">Pulls reading/rereading manga from MangaDex into your library if they are not already added.</string>
|
||||||
<string name="mangadex_low_quality_covers">Use low quality thumbnails</string>
|
<string name="mangadex_low_quality_covers">Use low quality thumbnails</string>
|
||||||
<string name="mangadex_use_latest_cover">Use latest uploaded cover</string>
|
<string name="mangadex_use_latest_cover">Use latest uploaded cover</string>
|
||||||
<string name="mangadex_use_latest_cover_summary">When enabled, it uses the latest uploaded manga cover under the /covers url instead of using the cover on MangaDex\'s manga page</string>
|
<string name="mangadex_use_latest_cover_summary">When enabled, it uses the latest uploaded manga cover under the /covers url instead of using the cover on MangaDex\'s manga page</string>
|
||||||
@ -559,5 +559,8 @@
|
|||||||
<string name="mangadex_add_to_follows">Add to MangaDex follows</string>
|
<string name="mangadex_add_to_follows">Add to MangaDex follows</string>
|
||||||
<string name="mangadex_follows">MangaDex follows</string>
|
<string name="mangadex_follows">MangaDex follows</string>
|
||||||
<string name="random">Random</string>
|
<string name="random">Random</string>
|
||||||
|
<string name="mangadex_push_favorites_to_mangadex">Sync library manga to MangaDex</string>
|
||||||
|
<string name="mangadex_push_favorites_to_mangadex_summary">Syncs any non MdList tracked manga to MangaDex as reading.</string>
|
||||||
|
<string name="mangadex_push_favorites_to_mangadex_toast">Pushed %d manga to MangaDex</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user