From 2d8061a6776587e17b78ad56817072d2700b8b58 Mon Sep 17 00:00:00 2001 From: arkon Date: Mon, 17 Feb 2020 10:10:59 -0500 Subject: [PATCH] MangaDex: remove R18 setting in favor of following account setting --- src/all/mangadex/build.gradle | 2 +- .../extension/all/mangadex/Mangadex.kt | 113 +----------------- 2 files changed, 7 insertions(+), 108 deletions(-) diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index 96f71d111..09e21c07d 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: MangaDex' pkgNameSuffix = 'all.mangadex' extClass = '.MangadexFactory' - extVersionCode = 80 + extVersionCode = 81 libVersion = '1.2' } diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt index 62ede99d4..707d5b3e7 100644 --- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt +++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/Mangadex.kt @@ -23,10 +23,8 @@ import org.jsoup.parser.Parser import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import java.net.URLEncoder -import java.util.* +import java.util.Date import java.util.concurrent.TimeUnit -import kotlin.collections.set abstract class Mangadex( override val lang: String, @@ -49,39 +47,15 @@ abstract class Mangadex( private val rateLimitInterceptor = RateLimitInterceptor(4) override val client: OkHttpClient = network.client.newBuilder() + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS) .addNetworkInterceptor(rateLimitInterceptor) .build() - private fun clientBuilder(): OkHttpClient = clientBuilder(getShowR18()) - - private fun clientBuilder(r18Toggle: Int): OkHttpClient = client.newBuilder() - .connectTimeout(10, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .addNetworkInterceptor { chain -> - val originalCookies = chain.request().header("Cookie") ?: "" - val newReq = chain - .request() - .newBuilder() - .header("Cookie", "$originalCookies; ${cookiesHeader(r18Toggle, langCode)}") - .build() - chain.proceed(newReq) - }.build()!! - override fun headersBuilder() = Headers.Builder().apply { add("User-Agent", "Tachiyomi " + System.getProperty("http.agent")) } - private fun cookiesHeader(r18Toggle: Int, langCode: Int): String { - val cookies = mutableMapOf() - cookies["mangadex_h_toggle"] = r18Toggle.toString() - cookies["mangadex_filter_langs"] = langCode.toString() - return buildCookies(cookies) - } - - private fun buildCookies(cookies: Map) = cookies.entries.joinToString(separator = "; ", postfix = ";") { - "${URLEncoder.encode(it.key, "UTF-8")}=${URLEncoder.encode(it.value, "UTF-8")}" - } - override fun popularMangaSelector() = "div.manga-entry" override fun latestUpdatesSelector() = "tr a.manga_title" @@ -136,22 +110,6 @@ abstract class Mangadex( override fun searchMangaNextPageSelector() = ".pagination li:not(.disabled) span[title*=last page]:not(disabled)" - override fun fetchPopularManga(page: Int): Observable { - return clientBuilder().newCall(popularMangaRequest(page)) - .asObservableSuccess() - .map { response -> - popularMangaParse(response) - } - } - - override fun fetchLatestUpdates(page: Int): Observable { - return clientBuilder().newCall(latestUpdatesRequest(page)) - .asObservableSuccess() - .map { response -> - latestUpdatesParse(response) - } - } - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { return if (query.startsWith(PREFIX_ID_SEARCH)) { val realQuery = query.removePrefix(PREFIX_ID_SEARCH) @@ -163,7 +121,7 @@ abstract class Mangadex( MangasPage(listOf(details), false) } } else { - getSearchClient(filters).newCall(searchMangaRequest(page, query, filters)) + client.newCall(searchMangaRequest(page, query, filters)) .asObservableSuccess() .map { response -> searchMangaParse(response) @@ -171,22 +129,6 @@ abstract class Mangadex( } } - private fun getSearchClient(filters: FilterList): OkHttpClient { - filters.forEach { filter -> - when (filter) { - is R18 -> { - return when (filter.state) { - 1 -> clientBuilder(ALL) - 2 -> clientBuilder(ONLY_R18) - 3 -> clientBuilder(NO_R18) - else -> clientBuilder() - } - } - } - } - return clientBuilder() - } - private var groupSearch = "" override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { @@ -338,7 +280,7 @@ abstract class Mangadex( } override fun fetchMangaDetails(manga: SManga): Observable { - return clientBuilder().newCall(apiRequest(manga)) + return client.newCall(apiRequest(manga)) .asObservableSuccess() .map { response -> mangaDetailsParse(response).apply { initialized = true } @@ -410,7 +352,7 @@ abstract class Mangadex( override fun chapterListSelector() = "" override fun fetchChapterList(manga: SManga): Observable> { - return clientBuilder().newCall(apiRequest(manga)) + return client.newCall(apiRequest(manga)) .asObservableSuccess() .map { response -> chapterListParse(response) @@ -580,21 +522,6 @@ abstract class Mangadex( } override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { - val myPref = androidx.preference.ListPreference(screen.context).apply { - key = SHOW_R18_PREF_Title - title = SHOW_R18_PREF_Title - - title = SHOW_R18_PREF_Title - entries = arrayOf("Show No R18+", "Show All", "Show Only R18+") - entryValues = arrayOf("0", "1", "2") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - preferences.edit().putInt(SHOW_R18_PREF, index).commit() - } - } val thumbsPref = androidx.preference.ListPreference(screen.context).apply { key = SHOW_THUMBNAIL_PREF_Title title = SHOW_THUMBNAIL_PREF_Title @@ -623,27 +550,11 @@ abstract class Mangadex( } } - screen.addPreference(myPref) screen.addPreference(thumbsPref) screen.addPreference(serverPref) } override fun setupPreferenceScreen(screen: PreferenceScreen) { - val myPref = ListPreference(screen.context).apply { - key = SHOW_R18_PREF_Title - title = SHOW_R18_PREF_Title - - title = SHOW_R18_PREF_Title - entries = arrayOf("Show No R18+", "Show All", "Show Only R18+") - entryValues = arrayOf("0", "1", "2") - summary = "%s" - - setOnPreferenceChangeListener { _, newValue -> - val selected = newValue as String - val index = this.findIndexOfValue(selected) - preferences.edit().putInt(SHOW_R18_PREF, index).commit() - } - } val thumbsPref = ListPreference(screen.context).apply { key = SHOW_THUMBNAIL_PREF_Title title = SHOW_THUMBNAIL_PREF_Title @@ -672,12 +583,10 @@ abstract class Mangadex( } } - screen.addPreference(myPref) screen.addPreference(thumbsPref) screen.addPreference(serverPref) } - private fun getShowR18(): Int = preferences.getInt(SHOW_R18_PREF, 0) private fun getShowThumbnail(): Int = preferences.getInt(SHOW_THUMBNAIL_PREF, 0) private fun getServer(): String { val default = SERVER_PREF_ENTRY_VALUES.first() @@ -692,7 +601,6 @@ abstract class Mangadex( private class ContentList(contents: List) : Filter.Group("Content", contents) private class FormatList(formats: List) : Filter.Group("Format", formats) private class GenreList(genres: List) : Filter.Group("Genres", genres) - private class R18 : Filter.Select("R18+", arrayOf("Default", "Show all", "Show only", "Show none")) private class ScanGroup(name: String) : Filter.Text(name) private fun getDemographic() = listOf( @@ -723,7 +631,6 @@ abstract class Mangadex( override fun getFilterList() = FilterList( TextField("Author", "author"), TextField("Artist", "artist"), - R18(), SortFilter(), Demographic(getDemographic()), PublicationStatus(getPublicationStatus()), @@ -834,14 +741,6 @@ abstract class Mangadex( companion object { private val WHITESPACE_REGEX = "\\s".toRegex() - // This number matches to the cookie - private const val NO_R18 = 0 - private const val ALL = 1 - private const val ONLY_R18 = 2 - - private const val SHOW_R18_PREF_Title = "Default R18 Setting" - private const val SHOW_R18_PREF = "showR18Default" - private const val LOW_QUALITY = 1 private const val SHOW_THUMBNAIL_PREF_Title = "Default thumbnail quality"