From 4193a3e304c8deeaf6ae80c3e944991d05ce023f Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Sat, 18 Jan 2025 15:32:52 -0300 Subject: [PATCH] Remove VapoScans (#7218) --- src/pt/vaposcans/AndroidManifest.xml | 22 -- src/pt/vaposcans/build.gradle | 7 - .../vaposcans/res/mipmap-hdpi/ic_launcher.png | Bin 4364 -> 0 bytes .../vaposcans/res/mipmap-mdpi/ic_launcher.png | Bin 2377 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 6303 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 11626 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 16590 -> 0 bytes .../extension/pt/vaposcans/VapoScans.kt | 198 ------------------ .../extension/pt/vaposcans/VapoScansDto.kt | 47 ----- .../pt/vaposcans/VapoScansUrlActivity.kt | 37 ---- 10 files changed, 311 deletions(-) delete mode 100644 src/pt/vaposcans/AndroidManifest.xml delete mode 100644 src/pt/vaposcans/build.gradle delete mode 100644 src/pt/vaposcans/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/pt/vaposcans/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/pt/vaposcans/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/pt/vaposcans/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/pt/vaposcans/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScans.kt delete mode 100644 src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansDto.kt delete mode 100644 src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansUrlActivity.kt diff --git a/src/pt/vaposcans/AndroidManifest.xml b/src/pt/vaposcans/AndroidManifest.xml deleted file mode 100644 index 1ddafe173..000000000 --- a/src/pt/vaposcans/AndroidManifest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/pt/vaposcans/build.gradle b/src/pt/vaposcans/build.gradle deleted file mode 100644 index 5f7a55b5f..000000000 --- a/src/pt/vaposcans/build.gradle +++ /dev/null @@ -1,7 +0,0 @@ -ext { - extName = 'Vapo Scans' - extClass = '.VapoScans' - extVersionCode = 1 -} - -apply from: "$rootDir/common.gradle" diff --git a/src/pt/vaposcans/res/mipmap-hdpi/ic_launcher.png b/src/pt/vaposcans/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index cb11887569a0a895c58158109869385fb97e890a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4364 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 diff --git a/src/pt/vaposcans/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/vaposcans/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index cf3315e3ec95f9883866d3b109fa54378df93ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11626 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

>2S78{x@U`N<@XgdVmEvW5v&vpfEEs*0Bt_M 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 B9VGw& diff --git a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScans.kt b/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScans.kt deleted file mode 100644 index d6561254a..000000000 --- a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScans.kt +++ /dev/null @@ -1,198 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.vaposcans - -import eu.kanade.tachiyomi.network.POST -import eu.kanade.tachiyomi.network.interceptor.rateLimit -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 kotlinx.serialization.decodeFromString -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.Request -import okhttp3.RequestBody -import okhttp3.RequestBody.Companion.toRequestBody -import okhttp3.Response -import rx.Observable -import uy.kohesive.injekt.injectLazy -import java.text.SimpleDateFormat -import java.util.Calendar -import java.util.Locale - -class VapoScans : HttpSource() { - override val name = "Vapo Scans" - - override val baseUrl = "https://vaposcans.site" - - override val lang = "pt-BR" - - override val supportsLatest = true - - override val client = network.cloudflareClient.newBuilder() - .rateLimit(2) - .build() - - private val json: Json by injectLazy() - - // Keeps the behavior of the web page - private val emptyPayload = "{}".toRequestBody() - - private var popularMangaCache: List = mutableListOf() - - override fun headersBuilder() = super.headersBuilder() - .set("Origin", baseUrl) - .set("Referer", "$baseUrl/") - - override fun popularMangaRequest(page: Int) = - POST("$apiUrl/api/series/", headers, emptyPayload) - - override fun popularMangaParse(response: Response) = - MangasPage( - response.parseAs>() - .map(::sMangaParse) - .also { - popularMangaCache = it - }, - false, - ) - - override fun latestUpdatesRequest(page: Int) = - POST("$apiUrl/api/recent-chapters/", headers, emptyPayload) - - override fun latestUpdatesParse(response: Response) = - MangasPage( - response.parseAs>() - .map { sMangaParse(it.mangaDto) }, - false, - ) - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - if (query.startsWith(URL_SEARCH_PREFIX)) { - val manga = SManga.create().apply { - url = query.substringAfter(URL_SEARCH_PREFIX) - } - - return fetchMangaDetails(manga).map { - MangasPage(listOf(it), false) - } - } - - if (popularMangaCache.isNotEmpty()) { - return Observable.just(findMangaByTitle(query)) - } - - return super.fetchSearchManga(page, query, filters) - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = - POST("$apiUrl/api/series/#$query", headers, emptyPayload) - - override fun searchMangaParse(response: Response): MangasPage { - val mangas = popularMangaParse(response).mangas - val query = response.request.url.toString().substringAfter("#") - return findMangaByTitle(query, mangas) - } - - override fun getMangaUrl(manga: SManga): String = "$baseUrl/series/${manga.url}" - - override fun mangaDetailsRequest(manga: SManga): Request { - val payload = MangaCode(manga.url).toRequestBody() - return POST("$apiUrl/api/serie/", headers, payload) - } - - override fun mangaDetailsParse(response: Response) = SManga.create().apply { - response.parseAs().let { - title = it.title - description = it.synopsis - url = it.code - genre = it.genres.joinToString() - artist = it.artist - author = it.author - thumbnail_url = it.cover - status = when (it.status) { - "completed" -> SManga.COMPLETED - "ongoing" -> SManga.ONGOING - else -> SManga.UNKNOWN - } - } - } - - override fun getChapterUrl(chapter: SChapter) = "$baseUrl/reader/${chapter.url}" - - override fun chapterListRequest(manga: SManga): Request { - val payload = MangaCode(manga.url).toRequestBody() - return POST("$apiUrl/api/serie/chapters/", headers, payload) - } - - override fun chapterListParse(response: Response): List { - return response.parseAs>().map { - SChapter.create().apply { - name = it.number - url = it.code - date_upload = parseDate(it.upload_date) - chapter_number = it.number.toFloat() - } - }.sortedBy { it.chapter_number }.reversed() - } - - override fun pageListRequest(chapter: SChapter): Request { - val payload = MangaCode(chapter.url).toRequestBody() - return POST("$apiUrl/api/chapter_details/", headers, payload) - } - - override fun pageListParse(response: Response): List { - val dto = response.parseAs() - val chapterUrl = "$baseUrl/reader/${dto.chapter_code}" - return dto.images.mapIndexed { index, image -> - Page(index, chapterUrl, "$apiUrl/$image") - } - } - - override fun imageUrlParse(response: Response) = "" - - private fun findMangaByTitle(query: String, collection: List = popularMangaCache): MangasPage { - val mangas = collection - .filter { it.title.contains(query, ignoreCase = true) } - - return MangasPage(mangas, false) - } - - private inline fun Response.parseAs(): T = - json.decodeFromString(body.string()) - - private inline fun T.toRequestBody(): RequestBody = - json.encodeToString(this) - .toRequestBody(JSON_MEDIA_TYPE) - - private fun sMangaParse(dto: MangaDto) = SManga.create().apply { - title = dto.title - thumbnail_url = "$apiUrl/${dto.cover}" - url = dto.code - } - - private fun parseDate(date: String): Long = - try { dateFormat.parse(date)!!.time } catch (_: Exception) { parseRelativeDate(date) } - - private fun parseRelativeDate(date: String): Long { - val number = RELATIVE_DATE_REGEX.find(date)?.value?.toIntOrNull() ?: return 0 - val cal = Calendar.getInstance() - return when { - date.contains("dia", ignoreCase = true) -> cal.apply { add(Calendar.DATE, -number) }.timeInMillis - date.contains("mes", ignoreCase = true) -> cal.apply { add(Calendar.MONTH, -number) }.timeInMillis - date.contains("ano", ignoreCase = true) -> cal.apply { add(Calendar.YEAR, -number) }.timeInMillis - else -> 0 - } - } - - companion object { - const val apiUrl = "https://api.vaposcans.site" - const val URL_SEARCH_PREFIX = "slug:" - val JSON_MEDIA_TYPE = "application/json".toMediaTypeOrNull() - val RELATIVE_DATE_REGEX = """(\d+)""".toRegex() - - val dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")) - } -} diff --git a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansDto.kt b/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansDto.kt deleted file mode 100644 index fc14621c0..000000000 --- a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansDto.kt +++ /dev/null @@ -1,47 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.vaposcans - -import kotlinx.serialization.Serializable - -@Serializable -class MangaDto( - val code: String, - val cover: String, - val title: String, -) - -@Serializable -class LatestMangaDto( - val serie_code: String, - val serie_cover: String, - val serie_title: String, -) { - val mangaDto get() = MangaDto(serie_code, serie_cover, serie_title) -} - -@Serializable -class MangaCode(val code: String) - -@Serializable -class MangaDetailsDto( - val artist: String, - val author: String, - val code: String, - val cover: String, - val genres: List, - val status: String, - val synopsis: String, - val title: String, -) - -@Serializable -class ChapterDto( - val number: String, - val code: String, - val upload_date: String, -) - -@Serializable -class PagesDto( - val chapter_code: String, - val images: List, -) diff --git a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansUrlActivity.kt b/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansUrlActivity.kt deleted file mode 100644 index f1754bbd6..000000000 --- a/src/pt/vaposcans/src/eu/kanade/tachiyomi/extension/pt/vaposcans/VapoScansUrlActivity.kt +++ /dev/null @@ -1,37 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.vaposcans - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Intent -import android.os.Bundle -import android.util.Log -import kotlin.system.exitProcess - -class VapoScansUrlActivity : Activity() { - - private val tag = javaClass.simpleName - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val pathSegments = intent?.data?.pathSegments - if (pathSegments != null && pathSegments.size > 1) { - val item = pathSegments[1] - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", "${VapoScans.URL_SEARCH_PREFIX}$item") - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e(tag, e.toString()) - } - } else { - Log.e(tag, "could not parse uri from intent $intent") - } - - finish() - exitProcess(0) - } -}