package eu.kanade.tachiyomi.source 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.util.awaitSingle import rx.Observable /** * A basic interface for creating a source. It could be an online source, a local source, etc. */ interface Source { /** * ID for the source. Must be unique. */ val id: Long /** * Name of the source. */ val name: String val lang: String get() = "" /** * Get the updated details for a manga. * * @param manga the manga to update. */ @Suppress("DEPRECATION") suspend fun getMangaDetails(manga: SManga): SManga { return fetchMangaDetails(manga).awaitSingle() } /** * Get all the available chapters for a manga. * * @param manga the manga to update. */ @Suppress("DEPRECATION") suspend fun getChapterList(manga: SManga): List { return fetchChapterList(manga).awaitSingle() } /** * Get the list of pages a chapter has. Pages should be returned * in the expected order; the index is ignored. * * @param chapter the chapter. */ @Suppress("DEPRECATION") suspend fun getPageList(chapter: SChapter): List { return fetchPageList(chapter).awaitSingle() } /** * Returns an observable with the updated details for a manga. * * @param manga the manga to update. */ @Deprecated( "Use the non-RxJava API instead", ReplaceWith("getMangaDetails"), ) fun fetchMangaDetails(manga: SManga): Observable = throw IllegalStateException( "Not used", ) /** * Returns an observable with all the available chapters for a manga. * * @param manga the manga to update. */ @Deprecated( "Use the non-RxJava API instead", ReplaceWith("getChapterList"), ) fun fetchChapterList(manga: SManga): Observable> = throw IllegalStateException( "Not used", ) /** * Returns an observable with the list of pages a chapter has. Pages should be returned * in the expected order; the index is ignored. * * @param chapter the chapter. */ @Deprecated( "Use the non-RxJava API instead", ReplaceWith("getPageList"), ) fun fetchPageList(chapter: SChapter): Observable> = Observable.empty() }