Replace DummyParser with TestMangaRepository
parent
71a2de5358
commit
8f38b4fe30
@ -0,0 +1,57 @@
|
|||||||
|
package org.koitharu.kotatsu.core.parser
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.core.cache.MemoryContentCache
|
||||||
|
import org.koitharu.kotatsu.core.model.TestMangaSource
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
|
import org.koitharu.kotatsu.parsers.model.Manga
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaListFilter
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaListFilterCapabilities
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaListFilterOptions
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaPage
|
||||||
|
import org.koitharu.kotatsu.parsers.model.SortOrder
|
||||||
|
import java.util.EnumSet
|
||||||
|
|
||||||
|
/*
|
||||||
|
This class is for parser development and testing purposes
|
||||||
|
You can open it in the app via Settings -> Debug
|
||||||
|
*/
|
||||||
|
class TestMangaRepository(
|
||||||
|
@Suppress("unused") private val loaderContext: MangaLoaderContext,
|
||||||
|
cache: MemoryContentCache
|
||||||
|
) : CachingMangaRepository(cache) {
|
||||||
|
|
||||||
|
override val source = TestMangaSource
|
||||||
|
|
||||||
|
override val sortOrders: Set<SortOrder> = EnumSet.allOf(SortOrder::class.java)
|
||||||
|
|
||||||
|
override var defaultSortOrder: SortOrder
|
||||||
|
get() = sortOrders.first()
|
||||||
|
set(value) = Unit
|
||||||
|
|
||||||
|
override val filterCapabilities = MangaListFilterCapabilities()
|
||||||
|
|
||||||
|
override suspend fun getFilterOptions() = MangaListFilterOptions()
|
||||||
|
|
||||||
|
override suspend fun getList(
|
||||||
|
offset: Int,
|
||||||
|
order: SortOrder?,
|
||||||
|
filter: MangaListFilter?
|
||||||
|
): List<Manga> = TODO("Get manga list by filter")
|
||||||
|
|
||||||
|
override suspend fun getDetailsImpl(
|
||||||
|
manga: Manga
|
||||||
|
): Manga = TODO("Fetch manga details")
|
||||||
|
|
||||||
|
override suspend fun getPagesImpl(
|
||||||
|
chapter: MangaChapter
|
||||||
|
): List<MangaPage> = TODO("Get pages for specific chapter")
|
||||||
|
|
||||||
|
override suspend fun getPageUrl(
|
||||||
|
page: MangaPage
|
||||||
|
): String = TODO("Return direct url of page image or page.url if it is already a direct url")
|
||||||
|
|
||||||
|
override suspend fun getRelatedMangaImpl(
|
||||||
|
seed: Manga
|
||||||
|
): List<Manga> = TODO("Get list of related manga. This method is optional and parser library has a default implementation")
|
||||||
|
}
|
||||||
@ -1,17 +1,23 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.preference.PreferenceScreen
|
<androidx.preference.PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
<org.koitharu.kotatsu.settings.utils.SplitSwitchPreference
|
<org.koitharu.kotatsu.settings.utils.SplitSwitchPreference
|
||||||
android:id="@+id/action_leakcanary"
|
|
||||||
android:key="leak_canary"
|
android:key="leak_canary"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="LeakCanary" />
|
android:title="LeakCanary" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:id="@+id/action_works"
|
|
||||||
android:key="work_inspector"
|
android:key="work_inspector"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
android:title="@string/wi_lib_name" />
|
android:title="@string/wi_lib_name" />
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:key="test_parser"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/test_parser"
|
||||||
|
app:allowDividerAbove="true" />
|
||||||
|
|
||||||
|
|
||||||
</androidx.preference.PreferenceScreen>
|
</androidx.preference.PreferenceScreen>
|
||||||
|
|||||||
@ -1,46 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.core.parser
|
|
||||||
|
|
||||||
import org.koitharu.kotatsu.core.exceptions.UnsupportedSourceException
|
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
|
||||||
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
|
||||||
import org.koitharu.kotatsu.parsers.core.AbstractMangaParser
|
|
||||||
import org.koitharu.kotatsu.parsers.model.Manga
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaChapter
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaListFilter
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaListFilterCapabilities
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaListFilterOptions
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaPage
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|
||||||
import org.koitharu.kotatsu.parsers.model.SortOrder
|
|
||||||
import java.util.EnumSet
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This parser is just for parser development, it should not be used in releases
|
|
||||||
*/
|
|
||||||
class DummyParser(context: MangaLoaderContext) : AbstractMangaParser(context, MangaParserSource.DUMMY) {
|
|
||||||
|
|
||||||
override val configKeyDomain: ConfigKey.Domain
|
|
||||||
get() = ConfigKey.Domain("localhost")
|
|
||||||
|
|
||||||
override val availableSortOrders: Set<SortOrder>
|
|
||||||
get() = EnumSet.allOf(SortOrder::class.java)
|
|
||||||
|
|
||||||
override val filterCapabilities: MangaListFilterCapabilities
|
|
||||||
get() = MangaListFilterCapabilities()
|
|
||||||
|
|
||||||
override suspend fun getDetails(manga: Manga): Manga = stub(manga)
|
|
||||||
|
|
||||||
override suspend fun getFilterOptions(): MangaListFilterOptions = stub(null)
|
|
||||||
|
|
||||||
override suspend fun getList(
|
|
||||||
offset: Int,
|
|
||||||
order: SortOrder,
|
|
||||||
filter: MangaListFilter
|
|
||||||
): List<Manga> = stub(null)
|
|
||||||
|
|
||||||
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> = stub(null)
|
|
||||||
|
|
||||||
private fun stub(manga: Manga?): Nothing {
|
|
||||||
throw UnsupportedSourceException("Usage of Dummy parser", manga)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
package org.koitharu.kotatsu.core.parser
|
|
||||||
|
|
||||||
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
|
||||||
import org.koitharu.kotatsu.parsers.MangaParser
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|
||||||
|
|
||||||
fun MangaParser(source: MangaParserSource, loaderContext: MangaLoaderContext): MangaParser {
|
|
||||||
return when (source) {
|
|
||||||
MangaParserSource.DUMMY -> DummyParser(loaderContext)
|
|
||||||
else -> loaderContext.newParserInstance(source)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package org.koitharu.kotatsu.core.parser
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.core.cache.MemoryContentCache
|
||||||
|
import org.koitharu.kotatsu.core.model.TestMangaSource
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
|
class TestMangaRepository(
|
||||||
|
private val loaderContext: MangaLoaderContext,
|
||||||
|
cache: MemoryContentCache
|
||||||
|
) : EmptyMangaRepository(TestMangaSource)
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package org.koitharu.kotatsu.core.parser
|
||||||
|
|
||||||
|
import org.koitharu.kotatsu.core.cache.MemoryContentCache
|
||||||
|
import org.koitharu.kotatsu.core.model.TestMangaSource
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
|
class TestMangaRepository(
|
||||||
|
private val loaderContext: MangaLoaderContext,
|
||||||
|
cache: MemoryContentCache
|
||||||
|
) : EmptyMangaRepository(TestMangaSource)
|
||||||
Loading…
Reference in New Issue