Add methods to get manga and chapter url (#8114)

* Add methods to get manga and chapter url

Some fork supports directly opening chapters with webview hence `getChapterUrl`

* Review Changes

* Add since to javadoc
This commit is contained in:
AntsyLich 2022-10-01 21:31:07 +06:00 committed by GitHub
parent ea8383978b
commit de23226591
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 4 deletions

View file

@ -17,7 +17,6 @@ import androidx.core.os.bundleOf
import com.bluelinelabs.conductor.ControllerChangeHandler import com.bluelinelabs.conductor.ControllerChangeHandler
import com.bluelinelabs.conductor.ControllerChangeType import com.bluelinelabs.conductor.ControllerChangeType
import eu.kanade.data.chapter.NoChaptersException import eu.kanade.data.chapter.NoChaptersException
import eu.kanade.domain.manga.model.toDbManga
import eu.kanade.presentation.components.ChangeCategoryDialog import eu.kanade.presentation.components.ChangeCategoryDialog
import eu.kanade.presentation.components.ChapterDownloadAction import eu.kanade.presentation.components.ChapterDownloadAction
import eu.kanade.presentation.components.DuplicateMangaDialog import eu.kanade.presentation.components.DuplicateMangaDialog
@ -216,7 +215,7 @@ class MangaController : FullComposeController<MangaPresenter> {
val source = presenter.source as? HttpSource ?: return val source = presenter.source as? HttpSource ?: return
val url = try { val url = try {
source.mangaDetailsRequest(manga.toDbManga()).url.toString() source.getMangaUrl(manga.toSManga())
} catch (e: Exception) { } catch (e: Exception) {
return return
} }
@ -226,12 +225,12 @@ class MangaController : FullComposeController<MangaPresenter> {
startActivity(intent) startActivity(intent)
} }
fun shareManga() { private fun shareManga() {
val context = view?.context ?: return val context = view?.context ?: return
val manga = presenter.manga ?: return val manga = presenter.manga ?: return
val source = presenter.source as? HttpSource ?: return val source = presenter.source as? HttpSource ?: return
try { try {
val url = source.mangaDetailsRequest(manga.toDbManga()).url.toString() val url = source.getMangaUrl(manga.toSManga())
val intent = Intent(Intent.ACTION_SEND).apply { val intent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain" type = "text/plain"
putExtra(Intent.EXTRA_TEXT, url) putExtra(Intent.EXTRA_TEXT, url)

View file

@ -356,6 +356,28 @@ abstract class HttpSource : CatalogueSource {
} }
} }
/**
* Returns the url of the provided manga
*
* @since extensions-lib 1.4
* @param manga the manga
* @return url of the manga
*/
open fun getMangaUrl(manga: SManga): String {
return mangaDetailsRequest(manga).url.toString()
}
/**
* Returns the url of the provided chapter
*
* @since extensions-lib 1.4
* @param chapter the chapter
* @return url of the chapter
*/
open fun getChapterUrl(chapter: SChapter): String {
return pageListRequest(chapter).url.toString()
}
/** /**
* Called before inserting a new chapter into database. Use it if you need to override chapter * Called before inserting a new chapter into database. Use it if you need to override chapter
* fields, like the title or the chapter number. Do not change anything to [manga]. * fields, like the title or the chapter number. Do not change anything to [manga].