Lint fixes

This commit is contained in:
arkon 2020-04-24 23:16:11 -04:00 committed by arkon
parent 5d5c6016ea
commit 5e05175f8c
35 changed files with 516 additions and 451 deletions

View File

@ -1,6 +1,10 @@
package eu.kanade.tachiyomi.extension.en.existentialcomics package eu.kanade.tachiyomi.extension.en.existentialcomics
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
@ -79,5 +83,4 @@ class ExistentialComics : ParsedHttpSource() {
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used") override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
override fun latestUpdatesSelector(): String = throw Exception("Not used") override fun latestUpdatesSelector(): String = throw Exception("Not used")
} }

View File

@ -1,17 +1,21 @@
package eu.kanade.tachiyomi.extension.en.explosm package eu.kanade.tachiyomi.extension.en.explosm
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import rx.Observable
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.util.Locale import rx.Observable
import java.text.SimpleDateFormat
class Explosm : HttpSource() { class Explosm : HttpSource() {

View File

@ -1,7 +1,10 @@
package eu.kanade.tachiyomi.extension.en.gunnerkriggcourt package eu.kanade.tachiyomi.extension.en.gunnerkriggcourt
import android.util.Log import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response

View File

@ -1,26 +1,34 @@
package eu.kanade.tachiyomi.extension.en.guya package eu.kanade.tachiyomi.extension.en.guya
import android.app.Application import android.app.Application
import eu.kanade.tachiyomi.source.model.*
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.ConfigurableSource
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Build import android.os.Build
import android.support.v7.preference.ListPreference import android.support.v7.preference.ListPreference
import android.support.v7.preference.PreferenceScreen import android.support.v7.preference.PreferenceScreen
import eu.kanade.tachiyomi.extension.BuildConfig import eu.kanade.tachiyomi.extension.BuildConfig
import okhttp3.* import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.ConfigurableSource
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 java.io.IOException
import java.util.HashMap
import java.util.concurrent.TimeUnit
import okhttp3.Call
import okhttp3.Callback
import okhttp3.Headers
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import java.io.IOException
import java.util.*
import java.util.concurrent.TimeUnit
import kotlin.collections.ArrayList
open class Guya() : ConfigurableSource, HttpSource() { open class Guya() : ConfigurableSource, HttpSource() {
@ -167,7 +175,6 @@ open class Guya() : ConfigurableSource, HttpSource() {
if (mangaDetails.get("slug") == slug) { if (mangaDetails.get("slug") == slug) {
truncatedJSON.put(mangaTitle, mangaDetails) truncatedJSON.put(mangaTitle, mangaDetails)
} }
} }
return parseManga(truncatedJSON) return parseManga(truncatedJSON)

View File

@ -40,5 +40,4 @@ class GuyaUrlActivity : Activity() {
finish() finish()
exitProcess(0) exitProcess(0)
} }
} }

View File

@ -2,17 +2,22 @@ package eu.kanade.tachiyomi.extension.en.hentai2read
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.source.model.Filter
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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.util.Calendar
import java.util.regex.Pattern
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.util.Calendar
import java.util.regex.Pattern
class Hentai2Read : ParsedHttpSource() { class Hentai2Read : ParsedHttpSource() {
@ -44,11 +49,11 @@ class Hentai2Read : ParsedHttpSource() {
override fun latestUpdatesSelector() = popularMangaSelector() override fun latestUpdatesSelector() = popularMangaSelector()
override fun popularMangaRequest(page: Int) override fun popularMangaRequest(page: Int) =
= GET("$baseUrl/hentai-list/all/any/all/most-popular/$page/", headers) GET("$baseUrl/hentai-list/all/any/all/most-popular/$page/", headers)
override fun latestUpdatesRequest(page: Int) override fun latestUpdatesRequest(page: Int) =
= GET("$baseUrl/hentai-list/all/any/all/last-updated/$page/", headers) GET("$baseUrl/hentai-list/all/any/all/last-updated/$page/", headers)
override fun popularMangaFromElement(element: Element): SManga { override fun popularMangaFromElement(element: Element): SManga {
return SManga.create().apply { return SManga.create().apply {
@ -99,7 +104,7 @@ class Hentai2Read : ParsedHttpSource() {
} }
POST(searchUrl, headers, form.build()) POST(searchUrl, headers, form.build())
} else { } else {
GET("$searchUrl/${base64String}", headers) GET("$searchUrl/$base64String", headers)
} }
} }

View File

@ -1,7 +1,12 @@
package eu.kanade.tachiyomi.extension.en.hentaifox package eu.kanade.tachiyomi.extension.en.hentaifox
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.source.model.Filter
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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -197,5 +202,4 @@ class HentaiFox : ParsedHttpSource() {
Filter.Select<String>(displayName, vals.map { it.first }.toTypedArray()) { Filter.Select<String>(displayName, vals.map { it.first }.toTypedArray()) {
fun toUriPart() = vals[state].second fun toUriPart() = vals[state].second
} }
} }

View File

@ -1,14 +1,17 @@
package eu.kanade.tachiyomi.extension.en.hentainexus package eu.kanade.tachiyomi.extension.en.hentainexus
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 java.net.URLEncoder
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request 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.lang.StringBuilder
import java.net.URLEncoder
class HentaiNexus : ParsedHttpSource() { class HentaiNexus : ParsedHttpSource() {

View File

@ -11,6 +11,10 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.Call import okhttp3.Call
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
@ -18,10 +22,6 @@ import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
import java.util.concurrent.TimeUnit
class Hiveworks : ParsedHttpSource() { class Hiveworks : ParsedHttpSource() {
@ -76,7 +76,6 @@ class Hiveworks : ParsedHttpSource() {
override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element) override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element)
override fun latestUpdatesParse(response: Response): MangasPage = popularMangaParse(response) override fun latestUpdatesParse(response: Response): MangasPage = popularMangaParse(response)
// Search // Search
// Source's website doesn't appear to have a search function; so searching locally // Source's website doesn't appear to have a search function; so searching locally
@ -168,7 +167,6 @@ class Hiveworks : ParsedHttpSource() {
?.let { mangaFromElement(it) } ?: SManga.create() ?.let { mangaFromElement(it) } ?: SManga.create()
} }
// Chapters // Chapters
// Included to call custom error codes // Included to call custom error codes
@ -269,10 +267,13 @@ class Hiveworks : ParsedHttpSource() {
private class KidsFilter : Filter.CheckBox("Kids Comics") private class KidsFilter : Filter.CheckBox("Kids Comics")
private class CompletedFilter : Filter.CheckBox("Completed Comics") private class CompletedFilter : Filter.CheckBox("Completed Comics")
private open class UriSelectFilter(
private open class UriSelectFilter(displayName: String, val uriParam: String, val vals: Array<Pair<String, String>>, displayName: String,
val uriParam: String,
val vals: Array<Pair<String, String>>,
val firstIsUnspecified: Boolean = true, val firstIsUnspecified: Boolean = true,
defaultValue: Int = 0) : defaultValue: Int = 0
) :
Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter { Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter {
override fun addToUri(uri: Uri.Builder) { override fun addToUri(uri: Uri.Builder) {
if (state != 0 || !firstIsUnspecified) if (state != 0 || !firstIsUnspecified)
@ -412,7 +413,4 @@ class Hiveworks : ParsedHttpSource() {
} }
} }
} }
} }

View File

@ -1,16 +1,20 @@
package eu.kanade.tachiyomi.extension.en.holymanga package eu.kanade.tachiyomi.extension.en.holymanga
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.*
abstract class HManga( abstract class HManga(
override val name: String, override val name: String,

View File

@ -12,4 +12,3 @@ class HMangaFactory : SourceFactory {
class HolyManga : HManga("HolyManga", "http://w12.holymanga.net") class HolyManga : HManga("HolyManga", "http://w12.holymanga.net")
class HeavenManga : HManga("HeavenManga", "http://ww8.heavenmanga.org") class HeavenManga : HManga("HeavenManga", "http://ww8.heavenmanga.org")

View File

@ -13,13 +13,13 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.TimeUnit
class Honkaiimpact : ParsedHttpSource() { class Honkaiimpact : ParsedHttpSource() {
@ -43,7 +43,6 @@ class Honkaiimpact : ParsedHttpSource() {
override fun popularMangaRequest(page: Int) = GET("$baseUrl/book", headers) override fun popularMangaRequest(page: Int) = GET("$baseUrl/book", headers)
override fun popularMangaFromElement(element: Element) = mangaFromElement(element) override fun popularMangaFromElement(element: Element) = mangaFromElement(element)
// Latest // Latest
override fun latestUpdatesSelector() = throw Exception("Not Used") override fun latestUpdatesSelector() = throw Exception("Not Used")
@ -51,7 +50,6 @@ class Honkaiimpact : ParsedHttpSource() {
override fun latestUpdatesRequest(page: Int) = throw Exception("Not Used") override fun latestUpdatesRequest(page: Int) = throw Exception("Not Used")
override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element) override fun latestUpdatesFromElement(element: Element) = mangaFromElement(element)
// Search // Search
override fun searchMangaSelector() = throw Exception("Not Used") override fun searchMangaSelector() = throw Exception("Not Used")
@ -112,6 +110,4 @@ class Honkaiimpact : ParsedHttpSource() {
override fun pageListParse(document: Document) = throw Exception("Not Used") override fun pageListParse(document: Document) = throw Exception("Not Used")
override fun imageUrlParse(document: Document) = throw Exception("Not Used") override fun imageUrlParse(document: Document) = throw Exception("Not Used")
} }

View File

@ -10,6 +10,8 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import java.text.SimpleDateFormat
import java.util.regex.Pattern
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.Headers import okhttp3.Headers
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -18,8 +20,6 @@ import okhttp3.Response
import org.jsoup.Jsoup import org.jsoup.Jsoup
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.regex.Pattern
class Kissmanga : ParsedHttpSource() { class Kissmanga : ParsedHttpSource() {

View File

@ -2,7 +2,11 @@ package eu.kanade.tachiyomi.extension.en.latisbooks
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.* 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.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient import okhttp3.OkHttpClient

View File

@ -1,18 +1,21 @@
package eu.kanade.tachiyomi.extension.en.mangacruzers package eu.kanade.tachiyomi.extension.en.mangacruzers
import android.net.Uri
import android.util.Log
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.* import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.TimeUnit
class mangacruzers : ParsedHttpSource() { class mangacruzers : ParsedHttpSource() {
@ -40,7 +43,6 @@ class mangacruzers : ParsedHttpSource() {
override fun latestUpdatesRequest(page: Int) = throw Exception("Not Used") override fun latestUpdatesRequest(page: Int) = throw Exception("Not Used")
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = throw Exception("Not Used") override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = throw Exception("Not Used")
override fun popularMangaParse(response: Response): MangasPage { override fun popularMangaParse(response: Response): MangasPage {
val document = response.asJsoup() val document = response.asJsoup()
val mangas = mutableListOf<SManga>() val mangas = mutableListOf<SManga>()
@ -49,7 +51,6 @@ class mangacruzers : ParsedHttpSource() {
mangas.add(mangaFromElement(element[i])) mangas.add(mangaFromElement(element[i]))
} }
return MangasPage(mangas, false) return MangasPage(mangas, false)
} }
override fun mangaDetailsRequest(manga: SManga) = chapterListRequest(manga) override fun mangaDetailsRequest(manga: SManga) = chapterListRequest(manga)
@ -114,5 +115,3 @@ class mangacruzers : ParsedHttpSource() {
override fun imageUrlRequest(page: Page) = throw Exception("Not used") override fun imageUrlRequest(page: Page) = throw Exception("Not used")
override fun imageUrlParse(document: Document) = throw Exception("Not used") override fun imageUrlParse(document: Document) = throw Exception("Not used")
} }

View File

@ -6,14 +6,18 @@ import com.github.salomonbrys.kotson.string
import com.google.gson.JsonElement import com.google.gson.JsonElement
import com.google.gson.JsonParser import com.google.gson.JsonParser
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import java.text.SimpleDateFormat
import java.util.*
class Mangadog : HttpSource() { class Mangadog : HttpSource() {
@ -90,7 +94,6 @@ class Mangadog : HttpSource() {
return manga return manga
} }
override fun chapterListRequest(manga: SManga): Request { override fun chapterListRequest(manga: SManga): Request {
val id = manga.url.substringAfterLast("/").substringBefore(".html") val id = manga.url.substringAfterLast("/").substringBefore(".html")
return GET("$baseUrl/index/detail/getChapterList?comic_id=$id&page=1", headers) return GET("$baseUrl/index/detail/getChapterList?comic_id=$id&page=1", headers)

View File

@ -1,15 +1,20 @@
package eu.kanade.tachiyomi.extension.en.mangaeden package eu.kanade.tachiyomi.extension.en.mangaeden
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.Request 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.SimpleDateFormat
import java.util.*
class Mangaeden : ParsedHttpSource() { class Mangaeden : ParsedHttpSource() {

View File

@ -1,17 +1,21 @@
package eu.kanade.tachiyomi.extension.en.mangafreak package eu.kanade.tachiyomi.extension.en.mangafreak
import android.net.Uri import android.net.Uri
import android.util.Log
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.* import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.TimeUnit
class Mangafreak : ParsedHttpSource() { class Mangafreak : ParsedHttpSource() {
override val name: String = "Mangafreak" override val name: String = "Mangafreak"
@ -101,7 +105,6 @@ class Mangafreak : ParsedHttpSource() {
val glist = document.select("div.series_sub_genre_list a").map { it.text() } val glist = document.select("div.series_sub_genre_list a").map { it.text() }
genre = glist.joinToString(", ") genre = glist.joinToString(", ")
description = document.select("div.manga_series_description p").text() description = document.select("div.manga_series_description p").text()
} }
// Chapter // Chapter
@ -180,8 +183,4 @@ class Mangafreak : ParsedHttpSource() {
Genre("Yaoi"), Genre("Yaoi"),
Genre("Yuri") Genre("Yuri")
) )
} }

View File

@ -12,13 +12,13 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.Headers import okhttp3.Headers
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request 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.SimpleDateFormat
import java.util.Locale
class Mangahasu : ParsedHttpSource() { class Mangahasu : ParsedHttpSource() {

View File

@ -2,18 +2,24 @@ package eu.kanade.tachiyomi.extension.en.mangahere
import com.squareup.duktape.Duktape import com.squareup.duktape.Duktape
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.*
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.lang.NumberFormatException
import java.lang.UnsupportedOperationException
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.Calendar
import kotlin.collections.ArrayList import java.util.Locale
import okhttp3.Cookie
import okhttp3.CookieJar
import okhttp3.HttpUrl
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class Mangahere : ParsedHttpSource() { class Mangahere : ParsedHttpSource() {
@ -39,7 +45,6 @@ class Mangahere : ParsedHttpSource() {
.value("1") .value("1")
.build()) } .build()) }
} }
}) })
.build() .build()
@ -100,7 +105,6 @@ class Mangahere : ParsedHttpSource() {
url.addEncodedQueryParameter("genres", includeGenres.joinToString(",")) url.addEncodedQueryParameter("genres", includeGenres.joinToString(","))
.addEncodedQueryParameter("nogenres", excludeGenres.joinToString(",")) .addEncodedQueryParameter("nogenres", excludeGenres.joinToString(","))
} }
} }
} }
@ -243,7 +247,7 @@ class Mangahere : ParsedHttpSource() {
IntRange(1, pagesNumber).map { i -> IntRange(1, pagesNumber).map { i ->
val pageLink = "${pageBase}/chapterfun.ashx?cid=$chapterId&page=$i&key=$secretKey" val pageLink = "$pageBase/chapterfun.ashx?cid=$chapterId&page=$i&key=$secretKey"
var responseText = "" var responseText = ""
@ -267,7 +271,6 @@ class Mangahere : ParsedHttpSource() {
break break
else else
secretKey = "" secretKey = ""
} }
val deobfuscatedScript = duktape.evaluate(responseText.removePrefix("eval")).toString() val deobfuscatedScript = duktape.evaluate(responseText.removePrefix("eval")).toString()
@ -281,7 +284,6 @@ class Mangahere : ParsedHttpSource() {
val imageLink = deobfuscatedScript.substring(imageLinkStartPos, imageLinkEndPos) val imageLink = deobfuscatedScript.substring(imageLinkStartPos, imageLinkEndPos)
Page(i - 1, "", "https:$baseLink$imageLink") Page(i - 1, "", "https:$baseLink$imageLink")
} }
} }
.dropLastIfBroken() .dropLastIfBroken()
@ -303,7 +305,6 @@ class Mangahere : ParsedHttpSource() {
secretKeyStartLoc, secretKeyEndLoc) secretKeyStartLoc, secretKeyEndLoc)
return duktape.evaluate(secretKeyResultScript).toString() return duktape.evaluate(secretKeyResultScript).toString()
} }
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
@ -367,5 +368,4 @@ class Mangahere : ParsedHttpSource() {
Genre("Shotacon", 35), Genre("Shotacon", 35),
Genre("Lolicon", 36) Genre("Lolicon", 36)
) )
} }

View File

@ -2,25 +2,29 @@ package eu.kanade.tachiyomi.extension.en.mangahub
import com.github.salomonbrys.kotson.fromJson import com.github.salomonbrys.kotson.fromJson
import com.github.salomonbrys.kotson.get import com.github.salomonbrys.kotson.get
import com.github.salomonbrys.kotson.string
import com.github.salomonbrys.kotson.keys import com.github.salomonbrys.kotson.keys
import com.github.salomonbrys.kotson.string
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.JsonObject import com.google.gson.JsonObject
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.source.model.* 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.Request
import okhttp3.HttpUrl
import okhttp3.RequestBody
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.net.URL import java.net.URL
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Calendar import java.util.Calendar
import java.util.Locale import java.util.Locale
import okhttp3.HttpUrl
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class Mangahub : ParsedHttpSource() { class Mangahub : ParsedHttpSource() {

View File

@ -2,21 +2,17 @@ package eu.kanade.tachiyomi.extension.en.mangajar
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.FilterList 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.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import org.jsoup.select.Elements
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Calendar import java.util.Calendar
import java.util.Locale import java.util.Locale
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class MangaJar : ParsedHttpSource() { class MangaJar : ParsedHttpSource() {
@ -96,7 +92,6 @@ class MangaJar: ParsedHttpSource() {
} }
} }
private fun parseChapterDate(string: String): Long? { private fun parseChapterDate(string: String): Long? {
return if ("ago" in string) { return if ("ago" in string) {
parseRelativeDate(string) ?: 0 parseRelativeDate(string) ?: 0

View File

@ -1,22 +1,26 @@
package eu.kanade.tachiyomi.extension.en.mangakisa package eu.kanade.tachiyomi.extension.en.mangakisa
import android.net.Uri
import android.app.Application import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri
import android.support.v7.preference.ListPreference import android.support.v7.preference.ListPreference
import android.support.v7.preference.PreferenceScreen import android.support.v7.preference.PreferenceScreen
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.* 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.* import java.util.Calendar
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import java.util.*
import java.util.concurrent.TimeUnit
class MangaKisa : ConfigurableSource, ParsedHttpSource() { class MangaKisa : ConfigurableSource, ParsedHttpSource() {
@ -48,7 +52,6 @@ class MangaKisa : ConfigurableSource, ParsedHttpSource() {
val page0 = page - 1 val page0 = page - 1
val popselect = getpoppref() val popselect = getpoppref()
return GET("$baseUrl/$popselect/$page0", headers) return GET("$baseUrl/$popselect/$page0", headers)
} }
override fun latestUpdatesRequest(page: Int): Request { override fun latestUpdatesRequest(page: Int): Request {
val page0 = page - 1 val page0 = page - 1
@ -152,9 +155,13 @@ class MangaKisa : ConfigurableSource, ParsedHttpSource() {
GenreFilter() GenreFilter()
) )
private open class UriSelectFilter(displayName: String, val uriParam: String, val vals: Array<Pair<String, String>>, private open class UriSelectFilter(
displayName: String,
val uriParam: String,
val vals: Array<Pair<String, String>>,
val firstIsUnspecified: Boolean = true, val firstIsUnspecified: Boolean = true,
defaultValue: Int = 0) : defaultValue: Int = 0
) :
Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter { Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter {
override fun addToUri(uri: Uri.Builder) { override fun addToUri(uri: Uri.Builder) {
if (state != 0 || !firstIsUnspecified) if (state != 0 || !firstIsUnspecified)
@ -281,14 +288,10 @@ class MangaKisa : ConfigurableSource, ParsedHttpSource() {
private fun getpoppref() = preferences.getString(BROWSE_PREF, "popular") private fun getpoppref() = preferences.getString(BROWSE_PREF, "popular")
private fun getlastestpref() = preferences.getString(LATEST_PREF, "latest") private fun getlastestpref() = preferences.getString(LATEST_PREF, "latest")
companion object { companion object {
private const val LATEST_PREF_Title = "Latest Manga Selector" private const val LATEST_PREF_Title = "Latest Manga Selector"
private const val LATEST_PREF = "latestmangaurl" private const val LATEST_PREF = "latestmangaurl"
private const val BROWSE_PREF_Title = "Popular Manga Selector" private const val BROWSE_PREF_Title = "Popular Manga Selector"
private const val BROWSE_PREF = "popularmangaurl" private const val BROWSE_PREF = "popularmangaurl"
} }
} }

View File

@ -8,23 +8,27 @@ import com.google.gson.JsonArray
import com.google.gson.JsonElement import com.google.gson.JsonElement
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.source.model.Filter
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.source.online.HttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.Headers import okhttp3.Headers
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import rx.Observable import rx.Observable
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
/** /**
* Source responds to requests with their full database as a JsonArray, then sorts/filters it client-side * Source responds to requests with their full database as a JsonArray, then sorts/filters it client-side
* We'll take the database on first requests, then do what we want with it * We'll take the database on first requests, then do what we want with it
*/ */
class MangaLife : HttpSource() { class MangaLife : HttpSource() {
override val name = "MangaLife" override val name = "MangaLife"
@ -324,5 +328,4 @@ class MangaLife : HttpSource() {
Genre("Yaoi"), Genre("Yaoi"),
Genre("Yuri") Genre("Yuri")
) )
} }

View File

@ -6,16 +6,18 @@ import com.github.salomonbrys.kotson.string
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.JsonObject import com.google.gson.JsonObject
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request 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.lang.Exception
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
class MangaLinkz : ParsedHttpSource() { class MangaLinkz : ParsedHttpSource() {
@ -147,5 +149,4 @@ class MangaLinkz : ParsedHttpSource() {
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()
} }

View File

@ -1,13 +1,17 @@
package eu.kanade.tachiyomi.extension.en.mangamainac package eu.kanade.tachiyomi.extension.en.mangamainac
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import java.util.Calendar
import okhttp3.Request import okhttp3.Request
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
import java.util.*
// MangaManiac is a network of sites built by Animemaniac.co. // MangaManiac is a network of sites built by Animemaniac.co.
@ -31,7 +35,6 @@ class MangaMainac : ParsedHttpSource() {
Pair("Shingeki no Kyojin", "https://readshingekinokyojin.com"), Pair("Shingeki no Kyojin", "https://readshingekinokyojin.com"),
Pair("Nanatsu no Taizai", "https://w1.readnanatsutaizai.net") Pair("Nanatsu no Taizai", "https://w1.readnanatsutaizai.net")
).sortedBy { it.first }.distinctBy { it.second } ).sortedBy { it.first }.distinctBy { it.second }
} }
// Info // Info
@ -55,7 +58,6 @@ class MangaMainac : ParsedHttpSource() {
override fun popularMangaSelector(): String = throw Exception("Not used") override fun popularMangaSelector(): String = throw Exception("Not used")
override fun popularMangaFromElement(element: Element) = throw Exception("Not used") override fun popularMangaFromElement(element: Element) = throw Exception("Not used")
// Latest // Latest
override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used") override fun latestUpdatesRequest(page: Int): Request = throw Exception("Not used")
override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used") override fun latestUpdatesNextPageSelector(): String? = throw Exception("Not used")
@ -137,7 +139,4 @@ class MangaMainac : ParsedHttpSource() {
} }
override fun imageUrlParse(document: Document): String = throw Exception("Not Used") override fun imageUrlParse(document: Document): String = throw Exception("Not Used")
} }

View File

@ -1,15 +1,18 @@
package eu.kanade.tachiyomi.extension.en.mangaowl package eu.kanade.tachiyomi.extension.en.mangaowl
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 java.text.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request 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.SimpleDateFormat
import java.util.Locale
import java.util.concurrent.TimeUnit
class MangaOwl : ParsedHttpSource() { class MangaOwl : ParsedHttpSource() {
@ -134,5 +137,4 @@ class MangaOwl : ParsedHttpSource() {
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()
} }

View File

@ -3,9 +3,9 @@ package eu.kanade.tachiyomi.extension.en.mangapark
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Application import android.app.Application
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri
import android.support.v7.preference.ListPreference import android.support.v7.preference.ListPreference
import android.support.v7.preference.PreferenceScreen import android.support.v7.preference.PreferenceScreen
import android.net.Uri
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
@ -15,6 +15,10 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import kotlin.math.absoluteValue
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.json.JSONArray import org.json.JSONArray
@ -22,11 +26,6 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import kotlin.math.absoluteValue
class MangaPark : ConfigurableSource, ParsedHttpSource() { class MangaPark : ConfigurableSource, ParsedHttpSource() {
@ -51,7 +50,6 @@ class MangaPark : ConfigurableSource, ParsedHttpSource() {
override fun popularMangaNextPageSelector() = directoryNextPageSelector override fun popularMangaNextPageSelector() = directoryNextPageSelector
override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/latest") override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/latest")
override fun latestUpdatesSelector() = directorySelector override fun latestUpdatesSelector() = directorySelector
@ -60,7 +58,6 @@ class MangaPark : ConfigurableSource, ParsedHttpSource() {
override fun latestUpdatesNextPageSelector() = directoryNextPageSelector override fun latestUpdatesNextPageSelector() = directoryNextPageSelector
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val uri = Uri.parse("$baseUrl/search").buildUpon() val uri = Uri.parse("$baseUrl/search").buildUpon()
uri.appendQueryParameter("q", query) uri.appendQueryParameter("q", query)
@ -446,9 +443,13 @@ class MangaPark : ConfigurableSource, ParsedHttpSource() {
* If `firstIsUnspecified` is set to true, if the first entry is selected, nothing will be appended on the the URI. * If `firstIsUnspecified` is set to true, if the first entry is selected, nothing will be appended on the the URI.
*/ */
// vals: <name, display> // vals: <name, display>
private open class UriSelectFilter(displayName: String, val uriParam: String, val vals: Array<Pair<String, String>>, private open class UriSelectFilter(
displayName: String,
val uriParam: String,
val vals: Array<Pair<String, String>>,
val firstIsUnspecified: Boolean = true, val firstIsUnspecified: Boolean = true,
defaultValue: Int = 0) : defaultValue: Int = 0
) :
Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter { Filter.Select<String>(displayName, vals.map { it.second }.toTypedArray(), defaultValue), UriFilter {
override fun addToUri(uri: Uri.Builder) { override fun addToUri(uri: Uri.Builder) {
if (state != 0 || !firstIsUnspecified) if (state != 0 || !firstIsUnspecified)
@ -520,5 +521,4 @@ class MangaPark : ConfigurableSource, ParsedHttpSource() {
Pair("Prioritize source: Panda", "panda") Pair("Prioritize source: Panda", "panda")
) )
} }
} }

View File

@ -1,16 +1,20 @@
package eu.kanade.tachiyomi.extension.en.mangareader package eu.kanade.tachiyomi.extension.en.mangareader
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup
import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Response
import java.text.SimpleDateFormat
import java.util.*
abstract class MRP( abstract class MRP(
override val name: String, override val name: String,
@ -173,5 +177,4 @@ abstract class MRP(
} }
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()
} }

View File

@ -1,18 +1,23 @@
package eu.kanade.tachiyomi.extension.en.mangasail package eu.kanade.tachiyomi.extension.en.mangasail
import com.github.salomonbrys.kotson.fromJson
import com.github.salomonbrys.kotson.get
import com.google.gson.Gson
import com.google.gson.JsonObject
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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 eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.* import java.text.SimpleDateFormat
import java.util.Locale
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.Jsoup.parse import org.jsoup.Jsoup.parse
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat
import java.util.*
import com.github.salomonbrys.kotson.*
import com.google.gson.Gson
import com.google.gson.JsonObject
class Mangasail : ParsedHttpSource() { class Mangasail : ParsedHttpSource() {
@ -38,7 +43,6 @@ class Mangasail : ParsedHttpSource() {
return GET("$baseUrl/directory/hot") return GET("$baseUrl/directory/hot")
} else { } else {
return GET("$baseUrl/directory/hot?page=" + (page - 1)) return GET("$baseUrl/directory/hot?page=" + (page - 1))
} }
} }
@ -177,5 +181,4 @@ class Mangasail : ParsedHttpSource() {
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()
} }

View File

@ -7,14 +7,14 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.regex.Pattern
import okhttp3.FormBody import okhttp3.FormBody
import okhttp3.HttpUrl import okhttp3.HttpUrl
import okhttp3.Request 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.SimpleDateFormat
import java.util.regex.Pattern
import java.util.Locale
class Mangasee : ParsedHttpSource() { class Mangasee : ParsedHttpSource() {
@ -250,5 +250,4 @@ class Mangasee : ParsedHttpSource() {
Genre("Yaoi"), Genre("Yaoi"),
Genre("Yuri") Genre("Yuri")
) )
} }

View File

@ -2,18 +2,20 @@ package eu.kanade.tachiyomi.extension.en.mangatown
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.source.model.* 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.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Response
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Calendar import java.util.Calendar
import java.util.Locale import java.util.Locale
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class Mangatown : ParsedHttpSource() { class Mangatown : ParsedHttpSource() {
@ -133,5 +135,4 @@ class Mangatown : ParsedHttpSource() {
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used") override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()
} }

View File

@ -1,17 +1,20 @@
package eu.kanade.tachiyomi.extension.en.manmanga package eu.kanade.tachiyomi.extension.en.manmanga
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.network.asObservableSuccess
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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import eu.kanade.tachiyomi.network.asObservableSuccess import java.text.SimpleDateFormat
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import rx.Observable
import okhttp3.Response import okhttp3.Response
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 rx.Observable
import java.text.SimpleDateFormat
class ManManga : ParsedHttpSource() { class ManManga : ParsedHttpSource() {
override val name = "Man Manga" override val name = "Man Manga"
@ -30,21 +33,20 @@ class ManManga : ParsedHttpSource() {
} }
} }
override fun popularMangaSelector() = "#scrollBox > #scrollContent > li > a" override fun popularMangaSelector() = "#scrollBox > #scrollContent > li > a"
override fun latestUpdatesSelector() = popularMangaSelector() override fun latestUpdatesSelector() = popularMangaSelector()
override fun searchMangaSelector() = popularMangaSelector() override fun searchMangaSelector() = popularMangaSelector()
override fun popularMangaRequest(page: Int) override fun popularMangaRequest(page: Int) =
= GET("$baseUrl/category?sort=hot&page=$page", headers) GET("$baseUrl/category?sort=hot&page=$page", headers)
override fun latestUpdatesRequest(page: Int) override fun latestUpdatesRequest(page: Int) =
= GET("$baseUrl/category?sort=new&page=$page", headers) GET("$baseUrl/category?sort=new&page=$page", headers)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
= GET("$baseUrl/search?keyword=$query&page=$page", headers) GET("$baseUrl/search?keyword=$query&page=$page", headers)
override fun popularMangaFromElement(element: Element) = SManga.create().apply { override fun popularMangaFromElement(element: Element) = SManga.create().apply {
setUrlWithoutDomain(element.attr("href")) setUrlWithoutDomain(element.attr("href"))

View File

@ -1,18 +1,22 @@
package eu.kanade.tachiyomi.extension.en.merakiscans package eu.kanade.tachiyomi.extension.en.merakiscans
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* import eu.kanade.tachiyomi.network.asObservableSuccess
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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import eu.kanade.tachiyomi.network.asObservableSuccess
import okhttp3.OkHttpClient
import rx.Observable
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
import okhttp3.OkHttpClient
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
class MerakiScans : ParsedHttpSource() { class MerakiScans : ParsedHttpSource() {
override val name = "MerakiScans" override val name = "MerakiScans"
@ -35,11 +39,11 @@ class MerakiScans : ParsedHttpSource() {
override fun latestUpdatesSelector() = "#mangalisthome > #mangalistitem > #mangaitem > #manganame > a" override fun latestUpdatesSelector() = "#mangalisthome > #mangalistitem > #mangaitem > #manganame > a"
override fun popularMangaRequest(page: Int) override fun popularMangaRequest(page: Int) =
= GET("$baseUrl/manga", headers) GET("$baseUrl/manga", headers)
override fun latestUpdatesRequest(page: Int) override fun latestUpdatesRequest(page: Int) =
= GET(baseUrl, headers) GET(baseUrl, headers)
override fun popularMangaFromElement(element: Element) = SManga.create().apply { override fun popularMangaFromElement(element: Element) = SManga.create().apply {
setUrlWithoutDomain(element.attr("href")) setUrlWithoutDomain(element.attr("href"))
@ -55,8 +59,8 @@ class MerakiScans : ParsedHttpSource() {
override fun latestUpdatesNextPageSelector(): String? = null override fun latestUpdatesNextPageSelector(): String? = null
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
= GET("$baseUrl/manga", headers) GET("$baseUrl/manga", headers)
override fun searchMangaSelector() = popularMangaSelector() override fun searchMangaSelector() = popularMangaSelector()

View File

@ -6,9 +6,20 @@ import com.github.salomonbrys.kotson.obj
import com.github.salomonbrys.kotson.string import com.github.salomonbrys.kotson.string
import com.google.gson.JsonParser import com.google.gson.JsonParser
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.* 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.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import okhttp3.* import okhttp3.CacheControl
import okhttp3.Headers
import okhttp3.Interceptor
import okhttp3.MediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import okhttp3.ResponseBody
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import rx.Observable import rx.Observable
@ -55,8 +66,8 @@ class MyAnimeList : ParsedHttpSource() {
override fun searchMangaParse(response: Response): MangasPage = popularMangaParse(response) override fun searchMangaParse(response: Response): MangasPage = popularMangaParse(response)
override fun mangaDetailsRequest(manga: SManga): Request override fun mangaDetailsRequest(manga: SManga): Request =
= GET(baseUrl + manga.url, headers, CacheControl.FORCE_NETWORK) GET(baseUrl + manga.url, headers, CacheControl.FORCE_NETWORK)
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
val infoElement = document.select("div#content div.membership-manager table[width='100%'] tr").first() val infoElement = document.select("div#content div.membership-manager table[width='100%'] tr").first()