diff --git a/src/en/nightscans/build.gradle b/src/en/nightscans/build.gradle deleted file mode 100644 index 60d9b259c..000000000 --- a/src/en/nightscans/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'NIGHT SCANS' - extClass = '.NightScans' - themePkg = 'mangathemesia' - baseUrl = 'https://nightsup.net' - overrideVersionCode = 12 - isNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/nightscans/res/mipmap-hdpi/ic_launcher.png b/src/en/nightscans/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index d632f10d6..000000000 Binary files a/src/en/nightscans/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/nightscans/res/mipmap-mdpi/ic_launcher.png b/src/en/nightscans/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index a14abd1c3..000000000 Binary files a/src/en/nightscans/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/nightscans/res/mipmap-xhdpi/ic_launcher.png b/src/en/nightscans/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 5bb92025e..000000000 Binary files a/src/en/nightscans/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/nightscans/res/mipmap-xxhdpi/ic_launcher.png b/src/en/nightscans/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 2b36f8837..000000000 Binary files a/src/en/nightscans/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/nightscans/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/nightscans/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 1b326e1f0..000000000 Binary files a/src/en/nightscans/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/nightscans/src/eu/kanade/tachiyomi/extension/en/nightscans/NightScans.kt b/src/en/nightscans/src/eu/kanade/tachiyomi/extension/en/nightscans/NightScans.kt deleted file mode 100644 index 2aafa6a6a..000000000 --- a/src/en/nightscans/src/eu/kanade/tachiyomi/extension/en/nightscans/NightScans.kt +++ /dev/null @@ -1,38 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.nightscans - -import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesiaAlt -import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesiaPaidChapterHelper -import eu.kanade.tachiyomi.network.interceptor.rateLimit -import eu.kanade.tachiyomi.source.model.Page -import okhttp3.OkHttpClient -import org.jsoup.nodes.Document -import java.util.concurrent.TimeUnit - -class NightScans : MangaThemesiaAlt("NIGHT SCANS", "https://nightsup.net", "en", "/series") { - - override val listUrl = "/manga/list-mode" - override val slugRegex = Regex("""^(\d+(st)?-)""") - - override val client: OkHttpClient = super.client.newBuilder() - .rateLimit(20, 4, TimeUnit.SECONDS) - .build() - - private val paidChapterHelper = MangaThemesiaPaidChapterHelper() - - override fun setupPreferenceScreen(screen: PreferenceScreen) { - super.setupPreferenceScreen(screen) - paidChapterHelper.addHidePaidChaptersPreferenceToScreen(screen, intl) - } - - override fun chapterListSelector(): String { - return paidChapterHelper.getChapterListSelectorBasedOnHidePaidChaptersPref( - super.chapterListSelector(), - preferences, - ) - } - - override fun pageListParse(document: Document): List { - return super.pageListParse(document).distinctBy { it.imageUrl } - } -} diff --git a/src/en/quantumscans/build.gradle b/src/en/quantumscans/build.gradle deleted file mode 100644 index 9e8367514..000000000 --- a/src/en/quantumscans/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -ext { - extName = 'Quantum Toon' - extClass = '.QuantumScans' - themePkg = 'iken' - baseUrl = 'https://quantumtoon.com' - overrideVersionCode = 29 - isNsfw = false -} - -apply from: "$rootDir/common.gradle" diff --git a/src/en/quantumscans/res/mipmap-hdpi/ic_launcher.png b/src/en/quantumscans/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 5b49b5d64..000000000 Binary files a/src/en/quantumscans/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/quantumscans/res/mipmap-mdpi/ic_launcher.png b/src/en/quantumscans/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c395fe182..000000000 Binary files a/src/en/quantumscans/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/quantumscans/res/mipmap-xhdpi/ic_launcher.png b/src/en/quantumscans/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 59ac35c3f..000000000 Binary files a/src/en/quantumscans/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/quantumscans/res/mipmap-xxhdpi/ic_launcher.png b/src/en/quantumscans/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index cd4556e7f..000000000 Binary files a/src/en/quantumscans/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/quantumscans/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/quantumscans/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index c05a1490a..000000000 Binary files a/src/en/quantumscans/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/GenreDto.kt b/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/GenreDto.kt deleted file mode 100644 index d1ede18d4..000000000 --- a/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/GenreDto.kt +++ /dev/null @@ -1,9 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.quantumscans - -import kotlinx.serialization.Serializable - -@Serializable -class GenreDto(val id: Int, val name: String) - -@Serializable -class PageDto(val url: String, val order: Int) diff --git a/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/QuantumScans.kt b/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/QuantumScans.kt deleted file mode 100644 index a766bde90..000000000 --- a/src/en/quantumscans/src/eu/kanade/tachiyomi/extension/en/quantumscans/QuantumScans.kt +++ /dev/null @@ -1,127 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.quantumscans - -import eu.kanade.tachiyomi.multisrc.iken.GenreFilter -import eu.kanade.tachiyomi.multisrc.iken.Iken -import eu.kanade.tachiyomi.multisrc.iken.SelectFilter -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.network.interceptor.rateLimit -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 keiyoushi.utils.parseAs -import okhttp3.HttpUrl.Companion.toHttpUrl -import okhttp3.Request -import okhttp3.Response -import rx.Observable -import java.util.concurrent.TimeUnit - -// Moved from HeanCms to Iken -class QuantumScans : Iken( - "Quantum Toon", - "en", - "https://quantumtoon.com", - "https://vapi.quantumtoon.com", -) { - override val versionId = 4 - - override val client = super.client.newBuilder() - .rateLimit(3, 1, TimeUnit.SECONDS) - .build() - - override fun popularMangaRequest(page: Int): Request { - val url = "$apiUrl/api/query".toHttpUrl().newBuilder().apply { - addQueryParameter("page", page.toString()) - addQueryParameter("perPage", "18") - addQueryParameter("orderBy", "totalViews") - }.build() - return GET(url, headers) - } - - override fun popularMangaParse(response: Response): MangasPage { - return searchMangaParse(response) - } - - override fun latestUpdatesRequest(page: Int): Request { - val url = "$apiUrl/api/query".toHttpUrl().newBuilder().apply { // 'query' instead of 'posts' - addQueryParameter("page", page.toString()) - addQueryParameter("perPage", "18") - addQueryParameter("orderBy", "updatedAt") - }.build() - return GET(url, headers) - } - - override fun pageListRequest(chapter: SChapter): Request { - return GET(baseUrl + chapter.url, headersBuilder().add("rsc", "1").build()) - } - - override fun pageListParse(response: Response): List { - return response.body.string().lines() - .mapNotNull { line -> - val jsonStartIndex = line.indexOf('{').takeIf { it != -1 } ?: return@mapNotNull null - val jsonString = line.substring(jsonStartIndex) - try { - jsonString.parseAs().takeIf { it.url.isNotEmpty() } - } catch (e: Exception) { - null - } - } - .sortedBy { it.order } - .mapIndexed { i, p -> Page(i, imageUrl = p.url) } - } - - private var genresList: List> = emptyList() - private var fetchGenresAttempts = 0 - - private fun fetchGenres() { - try { - val response = client.newCall(GET("$apiUrl/api/genres", headers)).execute() - genresList = response.parseAs>() - .map { Pair(it.name, it.id.toString()) } - } catch (e: Throwable) {} finally { - fetchGenresAttempts++ - } - } - - override fun getFilterList(): FilterList { - if (genresList.isEmpty() && fetchGenresAttempts < 3) { - Observable.fromCallable { fetchGenres() } - .subscribeOn(rx.schedulers.Schedulers.io()) - .subscribe() - } - - val filters = mutableListOf>( - SortFilter(), - StatusFilter(), - ) - - if (genresList.isNotEmpty()) { - filters.add(GenreFilter(genresList)) - } else { - filters.add(Filter.Header("Press 'Reset' to attempt to load genres")) - } - return FilterList(filters) - } - - private class SortFilter : SelectFilter( - "Sort", - "orderBy", - listOf( - Pair("Popularity", "totalViews"), - Pair("Latest", "updatedAt"), - ), - ) - - private class StatusFilter : SelectFilter( - "Status", - "seriesStatus", - listOf( - Pair("All", ""), - Pair("Ongoing", "ONGOING"), - Pair("Hiatus", "HIATUS"), - Pair("Completed", "COMPLETED"), - Pair("Dropped", "DROPPED"), - ), - ) -}