komikku/app/src/main/java/exh/debug/DebugFunctions.kt

318 lines
13 KiB
Kotlin
Raw Normal View History

package exh.debug
2019-04-18 23:40:13 +02:00
import android.app.Application
import eu.kanade.domain.base.BasePreferences
import eu.kanade.domain.manga.interactor.UpdateManga
Move more models to domain module (cherry picked from commit 345e9c2a9a61f1f3b814db52eddbb42681499854) # Conflicts: # app/src/main/java/eu/kanade/data/manga/MangaMapper.kt # app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt # app/src/main/java/eu/kanade/domain/chapter/model/ChapterFilter.kt # app/src/main/java/eu/kanade/domain/history/interactor/GetNextChapters.kt # app/src/main/java/eu/kanade/domain/library/service/LibraryPreferences.kt # app/src/main/java/eu/kanade/domain/manga/model/Manga.kt # app/src/main/java/eu/kanade/presentation/browse/MigrateSearchScreen.kt # app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceDialogs.kt # app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt # app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterGetNextUnread.kt
2023-01-22 16:54:28 +01:00
import eu.kanade.domain.manga.model.toSManga
import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.ui.UiPreferences
import eu.kanade.tachiyomi.core.security.SecurityPreferences
2022-10-22 23:02:03 +02:00
import eu.kanade.tachiyomi.data.backup.models.Backup
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.network.NetworkPreferences
import eu.kanade.tachiyomi.source.AndroidSourceManager
import eu.kanade.tachiyomi.source.online.all.NHentai
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
import eu.kanade.tachiyomi.util.system.workManager
2020-02-22 11:12:30 +01:00
import exh.EXHMigrations
import exh.eh.EHentaiThrottleManager
2019-04-18 23:40:13 +02:00
import exh.eh.EHentaiUpdateWorker
2020-02-10 20:04:16 +01:00
import exh.metadata.metadata.EHentaiSearchMetadata
import exh.source.EH_SOURCE_ID
import exh.source.EXH_SOURCE_ID
import exh.source.nHentaiSourceIds
import exh.util.jobScheduler
import kotlinx.coroutines.runBlocking
2022-10-22 23:02:03 +02:00
import kotlinx.serialization.protobuf.schema.ProtoBufSchemaGenerator
Move more things around (cherry picked from commit 1730dd6af1f5a9e6f8752a2350b1bd153262a751) # Conflicts: # app/src/main/java/eu/kanade/data/source/SourcePagingSource.kt # app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt # app/src/main/java/eu/kanade/domain/library/service/LibraryPreferences.kt # app/src/main/java/eu/kanade/domain/manga/interactor/GetManga.kt # app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt # app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt # app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt # app/src/main/java/eu/kanade/tachiyomi/App.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt # app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt # 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/data/updater/AppUpdateChecker.kt # app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt # app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt # data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt
2023-01-28 04:31:12 +01:00
import tachiyomi.core.preference.PreferenceStore
import tachiyomi.data.DatabaseHandler
import tachiyomi.domain.backup.service.BackupPreferences
import tachiyomi.domain.library.service.LibraryPreferences
2023-03-17 01:18:41 +01:00
import tachiyomi.domain.manga.interactor.GetAllManga
import tachiyomi.domain.manga.interactor.GetExhFavoriteMangaWithMetadata
import tachiyomi.domain.manga.interactor.GetFavorites
2023-03-17 01:18:41 +01:00
import tachiyomi.domain.manga.interactor.GetFlatMetadataById
import tachiyomi.domain.manga.interactor.GetSearchMetadata
import tachiyomi.domain.manga.interactor.InsertFlatMetadata
import tachiyomi.domain.source.service.SourceManager
import uy.kohesive.injekt.injectLazy
import java.util.UUID
2020-11-25 21:57:05 +01:00
@Suppress("unused")
object DebugFunctions {
2019-04-18 23:40:13 +02:00
val app: Application by injectLazy()
val handler: DatabaseHandler by injectLazy()
val prefsStore: PreferenceStore by injectLazy()
val basePrefs: BasePreferences by injectLazy()
val uiPrefs: UiPreferences by injectLazy()
val networkPrefs: NetworkPreferences by injectLazy()
val sourcePrefs: SourcePreferences by injectLazy()
val securityPrefs: SecurityPreferences by injectLazy()
val libraryPrefs: LibraryPreferences by injectLazy()
val readerPrefs: ReaderPreferences by injectLazy()
val backupPrefs: BackupPreferences by injectLazy()
val trackManager: TrackManager by injectLazy()
2019-04-14 18:12:58 +02:00
val sourceManager: SourceManager by injectLazy()
val updateManga: UpdateManga by injectLazy()
val getFavorites: GetFavorites by injectLazy()
val getFlatMetadataById: GetFlatMetadataById by injectLazy()
val insertFlatMetadata: InsertFlatMetadata by injectLazy()
val getExhFavoriteMangaWithMetadata: GetExhFavoriteMangaWithMetadata by injectLazy()
val getSearchMetadata: GetSearchMetadata by injectLazy()
val getAllManga: GetAllManga by injectLazy()
2020-02-22 11:12:30 +01:00
fun forceUpgradeMigration() {
val lastVersionCode = prefsStore.getInt("eh_last_version_code", 0)
lastVersionCode.set(1)
EXHMigrations.upgrade(app, prefsStore, basePrefs, uiPrefs, networkPrefs, sourcePrefs, securityPrefs, libraryPrefs, readerPrefs, backupPrefs, trackManager)
2020-02-22 11:12:30 +01:00
}
2020-08-14 04:15:09 +02:00
fun forceSetupJobs() {
val lastVersionCode = prefsStore.getInt("eh_last_version_code", 0)
lastVersionCode.set(0)
EXHMigrations.upgrade(app, prefsStore, basePrefs, uiPrefs, networkPrefs, sourcePrefs, securityPrefs, libraryPrefs, readerPrefs, backupPrefs, trackManager)
2020-08-14 04:15:09 +02:00
}
2020-02-10 20:04:16 +01:00
fun resetAgedFlagInEXHManga() {
runBlocking {
getExhFavoriteMangaWithMetadata.await().forEach { manga ->
val meta = getFlatMetadataById.await(manga.id)?.raise<EHentaiSearchMetadata>() ?: return@forEach
2020-08-14 04:15:09 +02:00
// remove age flag
meta.aged = false
insertFlatMetadata.await(meta)
2020-02-10 20:04:16 +01:00
}
}
}
private val throttleManager = EHentaiThrottleManager()
2020-02-10 20:04:16 +01:00
fun getDelegatedSourceList(): String = AndroidSourceManager.currentDelegatedSources.map { it.value.sourceName + " : " + it.value.sourceId + " : " + it.value.factory }.joinToString(separator = "\n")
fun resetEHGalleriesForUpdater() {
throttleManager.resetThrottle()
runBlocking {
val allManga = getExhFavoriteMangaWithMetadata.await()
2020-08-14 04:15:09 +02:00
val eh = sourceManager.get(EH_SOURCE_ID)
val ex = sourceManager.get(EXH_SOURCE_ID)
2020-08-14 04:15:09 +02:00
allManga.forEach { manga ->
throttleManager.throttle()
val networkManga = when (manga.source) {
EH_SOURCE_ID -> eh
EXH_SOURCE_ID -> ex
else -> return@forEach
}?.getMangaDetails(manga.toSManga()) ?: return@forEach
updateManga.awaitUpdateFromSource(manga, networkManga, true)
}
}
}
fun getEHMangaListWithAgedFlagInfo(): String {
return runBlocking {
getExhFavoriteMangaWithMetadata.await().map { manga ->
val meta = getFlatMetadataById.await(manga.id)?.raise<EHentaiSearchMetadata>() ?: return@map
"Aged: ${meta.aged}\t Title: ${manga.title}"
2020-05-17 01:44:12 +02:00
}
}.joinToString(",\n")
2020-05-17 01:44:12 +02:00
}
fun countAgedFlagInEXHManga(): Int {
return runBlocking {
getExhFavoriteMangaWithMetadata.await()
.count { manga ->
val meta = getFlatMetadataById.await(manga.id)
?.raise<EHentaiSearchMetadata>()
?: return@count false
meta.aged
2020-05-17 01:44:12 +02:00
}
}
}
fun addAllMangaInDatabaseToLibrary() {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
runBlocking { handler.await { ehQueries.addAllMangaInDatabaseToLibrary() } }
}
fun countMangaInDatabaseInLibrary() = runBlocking { getFavorites.await().size }
fun countMangaInDatabaseNotInLibrary() = runBlocking { getAllManga.await() }.count { !it.favorite }
fun countMangaInDatabase() = runBlocking { getAllManga.await() }.size
fun countMetadataInDatabase() = runBlocking { getSearchMetadata.await().size }
fun countMangaInLibraryWithMissingMetadata() = runBlocking {
runBlocking { getAllManga.await() }.count {
it.favorite && getSearchMetadata.await(it.id) == null
}
}
fun clearSavedSearches() = runBlocking { handler.await { saved_searchQueries.deleteAll() } }
2019-04-14 18:12:58 +02:00
fun listAllSources() = sourceManager.getCatalogueSources().joinToString("\n") {
2021-06-02 03:09:03 +02:00
"${it.id}: ${it.name} (${it.lang.uppercase()})"
}
fun listAllSourcesClassName() = sourceManager.getCatalogueSources().joinToString("\n") {
2021-06-02 03:09:03 +02:00
"${it::class.qualifiedName}: ${it.name} (${it.lang.uppercase()})"
}
fun listVisibleSources() = sourceManager.getVisibleCatalogueSources().joinToString("\n") {
2021-06-02 03:09:03 +02:00
"${it.id}: ${it.name} (${it.lang.uppercase()})"
}
fun listAllHttpSources() = sourceManager.getOnlineSources().joinToString("\n") {
2021-06-02 03:09:03 +02:00
"${it.id}: ${it.name} (${it.lang.uppercase()})"
}
fun listVisibleHttpSources() = sourceManager.getVisibleOnlineSources().joinToString("\n") {
2021-06-02 03:09:03 +02:00
"${it.id}: ${it.name} (${it.lang.uppercase()})"
}
2019-04-14 18:12:58 +02:00
fun convertAllEhentaiGalleriesToExhentai() = convertSources(EH_SOURCE_ID, EXH_SOURCE_ID)
fun convertAllExhentaiGalleriesToEhentai() = convertSources(EXH_SOURCE_ID, EH_SOURCE_ID)
fun testLaunchEhentaiBackgroundUpdater() {
EHentaiUpdateWorker.launchBackgroundTest(app)
2019-04-18 23:40:13 +02:00
}
fun rescheduleEhentaiBackgroundUpdater() {
2020-04-22 23:26:46 +02:00
EHentaiUpdateWorker.scheduleBackground(app)
}
fun listScheduledJobs() = app.jobScheduler.allPendingJobs.joinToString(",\n") { j ->
val info = j.extras.getString("EXTRA_WORK_SPEC_ID")?.let {
app.workManager.getWorkInfoById(UUID.fromString(it)).get()
}
if (info != null) {
"""
{
id: ${info.id},
isPeriodic: ${j.extras["EXTRA_IS_PERIODIC"]},
state: ${info.state.name},
tags: [
${info.tags.joinToString(separator = ",\n ")}
],
}
""".trimIndent()
} else {
"""
{
info: ${j.id},
isPeriodic: ${j.isPeriodic},
isPersisted: ${j.isPersisted},
intervalMillis: ${j.intervalMillis},
}
""".trimIndent()
2020-05-02 06:46:24 +02:00
}
}
2020-04-22 23:26:46 +02:00
fun cancelAllScheduledJobs() = app.jobScheduler.cancelAll()
2019-04-14 18:12:58 +02:00
private fun convertSources(from: Long, to: Long) {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
runBlocking {
handler.await { ehQueries.migrateSource(to, from) }
}
2019-04-14 18:12:58 +02:00
}
2022-03-27 20:11:37 +02:00
/*fun copyEHentaiSavedSearchesToExhentai() {
runBlocking {
2020-08-14 04:15:09 +02:00
val source = sourceManager.get(EH_SOURCE_ID) as? CatalogueSource ?: return@runBlocking
val newSource = sourceManager.get(EXH_SOURCE_ID) as? CatalogueSource ?: return@runBlocking
2020-11-30 20:35:31 +01:00
val savedSearches = prefs.savedSearches().get().mapNotNull {
try {
val id = it.substringBefore(':').toLong()
if (id != source.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (t: RuntimeException) {
// Load failed
xLogE("Failed to load saved search!", t)
t.printStackTrace()
null
}
}.toMutableList()
2020-11-30 20:35:31 +01:00
savedSearches += prefs.savedSearches().get().mapNotNull {
try {
val id = it.substringBefore(':').toLong()
if (id != newSource.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (t: RuntimeException) {
// Load failed
xLogE("Failed to load saved search!", t)
t.printStackTrace()
null
}
}.filterNot { newSavedSearch -> savedSearches.any { it.name == newSavedSearch.name } }
2020-11-30 20:35:31 +01:00
val otherSerialized = prefs.savedSearches().get().filter {
!it.startsWith("${newSource.id}:")
}
val newSerialized = savedSearches.map {
"${newSource.id}:" + Json.encodeToString(it)
}
2020-11-30 20:35:31 +01:00
prefs.savedSearches().set((otherSerialized + newSerialized).toSet())
}
}
fun copyExhentaiSavedSearchesToEHentai() {
runBlocking {
2020-08-14 04:15:09 +02:00
val source = sourceManager.get(EXH_SOURCE_ID) as? CatalogueSource ?: return@runBlocking
val newSource = sourceManager.get(EH_SOURCE_ID) as? CatalogueSource ?: return@runBlocking
2020-11-30 20:35:31 +01:00
val savedSearches = prefs.savedSearches().get().mapNotNull {
try {
val id = it.substringBefore(':').toLong()
if (id != source.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (t: RuntimeException) {
// Load failed
xLogE("Failed to load saved search!", t)
t.printStackTrace()
null
}
}.toMutableList()
2020-11-30 20:35:31 +01:00
savedSearches += prefs.savedSearches().get().mapNotNull {
try {
val id = it.substringBefore(':').toLong()
if (id != newSource.id) return@mapNotNull null
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (t: RuntimeException) {
// Load failed
xLogE("Failed to load saved search!", t)
t.printStackTrace()
null
}
}.filterNot { newSavedSearch -> savedSearches.any { it.name == newSavedSearch.name } }
2020-11-30 20:35:31 +01:00
val otherSerialized = prefs.savedSearches().get().filter {
!it.startsWith("${newSource.id}:")
}
val newSerialized = savedSearches.map {
"${newSource.id}:" + Json.encodeToString(it)
}
2020-11-30 20:35:31 +01:00
prefs.savedSearches().set((otherSerialized + newSerialized).toSet())
}
2022-03-27 20:11:37 +02:00
}*/
2021-04-15 01:01:41 +02:00
fun fixReaderViewerBackupBug() {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
runBlocking { handler.await { ehQueries.fixReaderViewerBackupBug() } }
}
fun resetReaderViewerForAllManga() {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
runBlocking { handler.await { ehQueries.resetReaderViewerForAllManga() } }
}
2022-11-24 21:18:23 +01:00
fun migrateLangNhentaiToMultiLangSource() {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
val sources = nHentaiSourceIds - NHentai.otherId
runBlocking { handler.await { ehQueries.migrateAllNhentaiToOtherLang(NHentai.otherId, sources) } }
}
2022-06-26 19:52:05 +02:00
fun resetFilteredScanlatorsForAllManga() {
Use SQLDelight for all Manga related queries (#7447) (cherry picked from commit 17951cfd68159d083df54c3e03094d8d66fe02ec) # Conflicts: # app/src/main/java/eu/kanade/domain/DomainModule.kt # app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbExtensions.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbProvider.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/ChapterTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaCategoryTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/mappers/MangaTypeMapping.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/ChapterProgressPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/LibraryMangaGetResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaFlagsPutResolver.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/ChapterTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaCategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-07-03 16:17:41 +02:00
runBlocking { handler.await { ehQueries.resetFilteredScanlatorsForAllManga() } }
2022-06-26 19:52:05 +02:00
}
2022-10-22 23:02:03 +02:00
fun exportProtobufScheme() = ProtoBufSchemaGenerator.generateSchemaText(Backup.serializer().descriptor)
2020-02-10 20:04:16 +01:00
}