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.MergedSource
|
||||
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.syncChaptersWithSource
|
||||
import eu.kanade.tachiyomi.util.prepUpdateCover
|
||||
@ -92,7 +93,8 @@ class LibraryUpdateService(
|
||||
COVERS, // Manga covers
|
||||
TRACKING, // Tracking metadata
|
||||
// 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 <--
|
||||
}
|
||||
|
||||
@ -225,6 +227,7 @@ class LibraryUpdateService(
|
||||
Target.TRACKING -> updateTrackings(mangaList)
|
||||
// SY -->
|
||||
Target.SYNC_FOLLOWS -> syncFollows()
|
||||
Target.PUSH_FAVORITES -> pushFavorites()
|
||||
// SY <--
|
||||
}
|
||||
}
|
||||
@ -581,6 +584,40 @@ class LibraryUpdateService(
|
||||
}
|
||||
.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 <--
|
||||
|
||||
/**
|
||||
|
@ -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) {
|
||||
|
@ -547,8 +547,8 @@
|
||||
<!-- MangaDex -->
|
||||
<string name="md_follows_unfollowed">Unfollowed</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_summary">Pulls reading/rereading manga from Mangadex 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 if they are not already added.</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_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_follows">MangaDex follows</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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user