Add DarkLegacyComics extension (#9348)
This commit is contained in:
parent
6212a7bba0
commit
001ff9e7d7
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest package="eu.kanade.tachiyomi.extension" />
|
|
@ -0,0 +1,11 @@
|
|||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
ext {
|
||||
extName = 'Dark Legacy Comics'
|
||||
pkgNameSuffix = 'en.darklegacycomics'
|
||||
extClass = '.DarkLegacyComics'
|
||||
extVersionCode = 1
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
|
@ -0,0 +1,130 @@
|
|||
package eu.kanade.tachiyomi.extension.en.darklegacycomics
|
||||
|
||||
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.online.HttpSource
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Response
|
||||
import rx.Observable
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
class DarkLegacyComics : HttpSource() {
|
||||
override val lang = "en"
|
||||
|
||||
override val name = "Dark Legacy Comics"
|
||||
|
||||
override val baseUrl = "https://www.darklegacycomics.com"
|
||||
|
||||
override val supportsLatest = false
|
||||
|
||||
override fun chapterListParse(response: Response) =
|
||||
response.asJsoup().select(".archive_link").map {
|
||||
val index = it.selectFirst(".index").text()
|
||||
val date = it.selectFirst(".date").ownText()
|
||||
val title = it.selectFirst(".name").text()
|
||||
val characters = it.select(".characters").text()
|
||||
SChapter.create().apply {
|
||||
url = "/$index"
|
||||
name = "#$index: $title"
|
||||
chapter_number = index.toFloat()
|
||||
// Not actually scanlators but whatever
|
||||
scanlator = characters.replace(" ", ", ")
|
||||
// One of the dates is missing the year
|
||||
date_upload = when (date) {
|
||||
"Sep 20" -> 1442696400000L // Sep 20, 2015
|
||||
else -> dateFormat.parse(date)?.time ?: 0L
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun pageListParse(response: Response) =
|
||||
response.asJsoup().select(".comic > img").mapIndexed { idx, img ->
|
||||
Page(idx, "", img.absUrl("src"))
|
||||
}
|
||||
|
||||
override fun fetchPopularManga(page: Int) =
|
||||
listOf(
|
||||
SManga.create().apply {
|
||||
url = "/archive"
|
||||
title = "Dark Legacy Comics"
|
||||
thumbnail_url = THUMB_URL
|
||||
status = SManga.ONGOING
|
||||
author = AUTHOR_NAME
|
||||
artist = AUTHOR_NAME
|
||||
},
|
||||
SManga.create().apply {
|
||||
url = "/specials/1.php"
|
||||
title = "Dark Legacy Comics Specials"
|
||||
thumbnail_url = THUMB_URL
|
||||
status = SManga.COMPLETED
|
||||
author = AUTHOR_NAME
|
||||
artist = AUTHOR_NAME
|
||||
}
|
||||
).let { Observable.just(MangasPage(it, false))!! }
|
||||
|
||||
override fun fetchSearchManga(page: Int, query: String, filters: FilterList) =
|
||||
fetchPopularManga(page)
|
||||
|
||||
override fun fetchMangaDetails(manga: SManga) =
|
||||
Observable.just(manga.apply { initialized = true })!!
|
||||
|
||||
override fun fetchChapterList(manga: SManga) =
|
||||
if (manga.url == "/archive") {
|
||||
super.fetchChapterList(manga)
|
||||
} else {
|
||||
specials.map {
|
||||
SChapter.create().apply {
|
||||
name = it.value
|
||||
url = "/specials/${it.key}"
|
||||
chapter_number = it.key.toFloat()
|
||||
date_upload = SPECIALS_DATE
|
||||
}
|
||||
}.let { Observable.just(it)!! }
|
||||
}
|
||||
|
||||
override fun latestUpdatesRequest(page: Int) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun popularMangaRequest(page: Int) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun latestUpdatesParse(response: Response) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun popularMangaParse(response: Response) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun searchMangaParse(response: Response) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun mangaDetailsParse(response: Response) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
override fun imageUrlParse(response: Response) =
|
||||
throw UnsupportedOperationException("Not used!")
|
||||
|
||||
companion object {
|
||||
private const val THUMB_URL = "https://images2.imgbox.com/5d/d8/BVxRdljH_o.png"
|
||||
|
||||
private const val AUTHOR_NAME = "Arad Kedar (Keydar)"
|
||||
|
||||
private const val SPECIALS_DATE = 1399926480000L // 2014-05-12 23:28
|
||||
|
||||
private val specials = mapOf(
|
||||
1 to "Looking For Group",
|
||||
2 to "Rover",
|
||||
3 to "Fan Comic"
|
||||
)
|
||||
|
||||
private val dateFormat by lazy {
|
||||
SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue