NineManga: use SourceFactory

This commit is contained in:
Eugene 2019-10-27 18:14:44 -04:00
parent b81d7ad2aa
commit c547da3714
No known key found for this signature in database
GPG Key ID: E1FD745328866B0A
3 changed files with 717 additions and 716 deletions

View File

@ -4,8 +4,8 @@ apply plugin: 'kotlin-android'
ext { ext {
appName = 'Tachiyomi: NineManga' appName = 'Tachiyomi: NineManga'
pkgNameSuffix = "all.ninemanga" pkgNameSuffix = "all.ninemanga"
extClass = '.NineMangaEs; .NineMangaBr; .NineMangaEn; .NineMangaRu; .NineMangaDe; .NineMangaIt; .NineMangaFr' extClass = '.NineMangaFactory'
extVersionCode = 6 extVersionCode = 7
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -1,15 +1,20 @@
package eu.kanade.tachiyomi.extension.all.ninemanga package eu.kanade.tachiyomi.extension.all.ninemanga
import eu.kanade.tachiyomi.source.model.*
import okhttp3.Request
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.Request
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.Calendar
import java.util.Locale
open class NineManga(override val name: String, override val baseUrl: String, override val lang: String) : ParsedHttpSource() { open class NineManga(override val name: String, override val baseUrl: String, override val lang: String) : ParsedHttpSource() {
@ -80,13 +85,13 @@ open class NineManga(override val name: String, override val baseUrl: String, ov
val dateWords = date.split(" ") val dateWords = date.split(" ")
if (dateWords.size == 3) { if (dateWords.size == 3) {
if(dateWords[1].contains(",")){ if (dateWords[1].contains(",")) {
try { return try {
return SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH).parse(date).time SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH).parse(date).time
} catch (e: ParseException) { } catch (e: ParseException) {
return 0L 0L
} }
}else { } else {
val timeAgo = Integer.parseInt(dateWords[0]) val timeAgo = Integer.parseInt(dateWords[0])
return Calendar.getInstance().apply { return Calendar.getInstance().apply {
when (dateWords[1]) { when (dateWords[1]) {
@ -150,73 +155,73 @@ open class NineManga(override val name: String, override val baseUrl: String, ov
GenreList(getGenreList()) GenreList(getGenreList())
) )
// $(document.querySelectorAll('.optionbox .typelist:nth-child(3) ul li.cate_list')).map((i, el)=>`Genre("${$(el).first().text().trim()}","${$(el).attr("cate_id")}")`).get().sort().join(",\n") // $(document.querySelectorAll('.optionbox .typelist:nth-child(3) ul li.cate_list')).map((i, el)=>`Genre("${$(el).first().text().trim()}", "${$(el).attr("cate_id")}")`).get().sort().join(",\n")
// http://en.ninemanga.com/search/?type=high // http://en.ninemanga.com/search/?type=high
open fun getGenreList() = listOf( open fun getGenreList() = listOf(
Genre("4-Koma","56"), Genre("4-Koma", "56"),
Genre("Action","1"), Genre("Action", "1"),
Genre("Adventure","2"), Genre("Adventure", "2"),
Genre("Anime","3"), Genre("Anime", "3"),
Genre("Award Winning","59"), Genre("Award Winning", "59"),
Genre("Bara","84"), Genre("Bara", "84"),
Genre("Comedy","4"), Genre("Comedy", "4"),
Genre("Cooking","5"), Genre("Cooking", "5"),
Genre("Crime","132"), Genre("Crime", "132"),
Genre("Demons","49"), Genre("Demons", "49"),
Genre("Doujinshi","45"), Genre("Doujinshi", "45"),
Genre("Drama","6"), Genre("Drama", "6"),
Genre("Fantasy","8"), Genre("Fantasy", "8"),
Genre("Game","126"), Genre("Game", "126"),
Genre("Gender Bender","9"), Genre("Gender Bender", "9"),
Genre("Historical","11"), Genre("Historical", "11"),
Genre("Horror","12"), Genre("Horror", "12"),
Genre("Isekai","127"), Genre("Isekai", "127"),
Genre("Josei","13"), Genre("Josei", "13"),
Genre("Live Action","14"), Genre("Live Action", "14"),
Genre("Magic","47"), Genre("Magic", "47"),
Genre("Magical Girls","130"), Genre("Magical Girls", "130"),
Genre("Manhua","15"), Genre("Manhua", "15"),
Genre("Manhwa","16"), Genre("Manhwa", "16"),
Genre("Martial Arts","17"), Genre("Martial Arts", "17"),
Genre("Matsumoto Tomokicomedy","37"), Genre("Matsumoto Tomokicomedy", "37"),
Genre("Mecha","18"), Genre("Mecha", "18"),
Genre("Medical","19"), Genre("Medical", "19"),
Genre("Military","51"), Genre("Military", "51"),
Genre("Music","20"), Genre("Music", "20"),
Genre("Mystery","21"), Genre("Mystery", "21"),
Genre("N/A","54"), Genre("N/A", "54"),
Genre("None","64"), Genre("None", "64"),
Genre("One Shot","22"), Genre("One Shot", "22"),
Genre("Oneshot","57"), Genre("Oneshot", "57"),
Genre("Philosophical","133"), Genre("Philosophical", "133"),
Genre("Psychological","23"), Genre("Psychological", "23"),
Genre("Reverse Harem","55"), Genre("Reverse Harem", "55"),
Genre("Romance Shoujo","38"), Genre("Romance Shoujo", "38"),
Genre("Romance","24"), Genre("Romance", "24"),
Genre("School Life","25"), Genre("School Life", "25"),
Genre("Sci-Fi","26"), Genre("Sci-Fi", "26"),
Genre("Seinen","27"), Genre("Seinen", "27"),
Genre("Shoujo Ai","44"), Genre("Shoujo Ai", "44"),
Genre("Shoujo","28"), Genre("Shoujo", "28"),
Genre("Shoujo-Ai","29"), Genre("Shoujo-Ai", "29"),
Genre("Shoujoai","48"), Genre("Shoujoai", "48"),
Genre("Shounen Ai","42"), Genre("Shounen Ai", "42"),
Genre("Shounen","30"), Genre("Shounen", "30"),
Genre("Shounen-Ai","31"), Genre("Shounen-Ai", "31"),
Genre("Shounenai","46"), Genre("Shounenai", "46"),
Genre("Slice Of Life","32"), Genre("Slice Of Life", "32"),
Genre("Sports","33"), Genre("Sports", "33"),
Genre("Staff Pick","60"), Genre("Staff Pick", "60"),
Genre("Super Power","62"), Genre("Super Power", "62"),
Genre("Superhero","131"), Genre("Superhero", "131"),
Genre("Supernatural","34"), Genre("Supernatural", "34"),
Genre("Suspense","53"), Genre("Suspense", "53"),
Genre("Thriller","129"), Genre("Thriller", "129"),
Genre("Tragedy","35"), Genre("Tragedy", "35"),
Genre("Vampire","52"), Genre("Vampire", "52"),
Genre("Webtoon","58"), Genre("Webtoon", "58"),
Genre("Webtoons","50"), Genre("Webtoons", "50"),
Genre("Wuxia","128"), Genre("Wuxia", "128"),
Genre("[No Chapters]","61") Genre("[No Chapters]", "61")
) )
} }