49 lines
1.6 KiB
Kotlin
49 lines
1.6 KiB
Kotlin
package tachiyomi.domain.source.model
|
|
|
|
import eu.kanade.tachiyomi.source.Source
|
|
import eu.kanade.tachiyomi.source.model.FilterList
|
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
|
import eu.kanade.tachiyomi.source.model.Page
|
|
import eu.kanade.tachiyomi.source.model.SChapter
|
|
import eu.kanade.tachiyomi.source.model.SManga
|
|
import eu.kanade.tachiyomi.source.model.SMangaUpdate
|
|
|
|
class StubSource(
|
|
override val id: Long,
|
|
override val lang: String,
|
|
override val name: String,
|
|
) : Source {
|
|
|
|
private val isInvalid: Boolean = name.isBlank() || lang.isBlank()
|
|
|
|
override val supportsLatest: Boolean = false
|
|
|
|
override suspend fun getPopularManga(page: Int): MangasPage = throw SourceNotInstalledException()
|
|
|
|
override suspend fun getLatestUpdates(page: Int): MangasPage = throw SourceNotInstalledException()
|
|
|
|
override suspend fun getSearchManga(page: Int, query: String, filters: FilterList): MangasPage =
|
|
throw SourceNotInstalledException()
|
|
|
|
override suspend fun getMangaUpdate(
|
|
manga: SManga,
|
|
chapters: List<SChapter>,
|
|
fetchDetails: Boolean,
|
|
fetchChapters: Boolean,
|
|
): SMangaUpdate = throw SourceNotInstalledException()
|
|
|
|
override suspend fun getPageList(chapter: SChapter): List<Page> =
|
|
throw SourceNotInstalledException()
|
|
|
|
override fun toString(): String =
|
|
if (!isInvalid) "$name (${lang.uppercase()})" else id.toString()
|
|
|
|
companion object {
|
|
fun from(source: Source): StubSource {
|
|
return StubSource(id = source.id, lang = source.lang, name = source.name)
|
|
}
|
|
}
|
|
}
|
|
|
|
class SourceNotInstalledException : Exception()
|