Remove Reaper, Astra, Vortexfree (#8795)

* Delete reaperscans

* Delete astrascans

* Delete vortexscansfree
This commit is contained in:
Prem Kumar 2025-05-10 19:52:46 +05:30 committed by Draff
parent 3c91f2a834
commit 0b3628f24e
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
22 changed files with 0 additions and 176 deletions

View File

@ -1,10 +0,0 @@
ext {
extName = 'Astra Scans'
extClass = '.AstraScans'
themePkg = 'mangathemesia'
baseUrl = 'https://astrascans.org'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,15 +0,0 @@
package eu.kanade.tachiyomi.extension.en.astrascans
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.interceptor.rateLimit
class AstraScans : MangaThemesia(
"Astra Scans",
"https://astrascans.org",
"en",
"/series",
) {
override val client = super.client.newBuilder()
.rateLimit(3)
.build()
}

View File

@ -1,10 +0,0 @@
ext {
extName = 'Reaper Scans'
extClass = '.ReaperScans'
themePkg = 'heancms'
baseUrl = 'https://reaperscans.com'
overrideVersionCode = 29
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,83 +0,0 @@
package eu.kanade.tachiyomi.extension.en.reaperscans
import eu.kanade.tachiyomi.multisrc.heancms.HeanCms
import eu.kanade.tachiyomi.multisrc.heancms.SortProperty
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request
import okhttp3.Response
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.TimeZone
class ReaperScans : HeanCms("Reaper Scans", "https://reaperscans.com", "en") {
override val versionId = 3
override val client = super.client.newBuilder()
.rateLimit(1)
.build()
override val useNewChapterEndpoint = true
override val useNewQueryEndpoint = true
override val enableLogin = true
override val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US).apply { this.timeZone = TimeZone.getTimeZone("UTC") }
override val cdnUrl = "https://media.reaperscans.com/file/4SRBHm"
override fun latestUpdatesRequest(page: Int): Request {
val url = "$apiUrl/query".toHttpUrl().newBuilder()
.addQueryParameter("query_string", "")
.addQueryParameter(if (useNewQueryEndpoint) "status" else "series_status", "All")
.addQueryParameter("order", "desc")
.addQueryParameter("orderBy", "updated_at")
.addQueryParameter("series_type", "Comic")
.addQueryParameter("page", page.toString())
.addQueryParameter("perPage", "12")
.addQueryParameter("tags_ids", "[]")
.addQueryParameter("adult", "true")
return GET(url.build(), headers)
}
override fun chapterListRequest(manga: SManga): Request = GET(
"$apiUrl/chapters/".toHttpUrl().newBuilder().apply {
val mangaUrl = (baseUrl + manga.url).toHttpUrl()
addPathSegment(mangaUrl.fragment!!)
addQueryParameter("page", "1")
addQueryParameter("perPage", "1000")
fragment(mangaUrl.pathSegments.last())
// not needed. just added to be authentic
addQueryParameter("query", "")
addQueryParameter("order", "desc")
}.build(),
headers,
)
override fun pageListParse(response: Response): List<Page> {
val result = response.parseAs<ReaperPagePayloadDto>()
if (result.isPaywalled() && result.chapter.chapterData == null) {
throw Exception(intl["paid_chapter_error"])
}
return if (useNewChapterEndpoint) {
result.chapter.chapterData?.images().orEmpty().mapIndexed { i, img ->
Page(i, imageUrl = img.toAbsoluteUrl())
}
} else {
result.data.orEmpty().mapIndexed { i, img ->
Page(i, imageUrl = img.toAbsoluteUrl())
}
}
}
override fun getSortProperties(): List<SortProperty> = listOf(
SortProperty(intl["sort_by_title"], "title"),
SortProperty(intl["sort_by_views"], "total_views"),
SortProperty(intl["sort_by_latest"], "updated_at"),
SortProperty(intl["sort_by_created_at"], "created_at"),
)
}

View File

@ -1,39 +0,0 @@
package eu.kanade.tachiyomi.extension.en.reaperscans
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
class ReaperPagePayloadDto(
val chapter: ReaperPageDto,
private val paywall: Boolean = false,
val data: List<String>? = emptyList(),
) {
fun isPaywalled() = paywall
}
@Serializable
class ReaperPageDto(
@SerialName("chapter_data") val chapterData: ReaperPageDataDto?,
)
@Serializable
class ReaperPageDataDto(
private val images: List<String>? = emptyList(),
private val files: List<ReaperPageFileDto>? = emptyList(),
) {
fun images(): List<String> {
return if (images.isNullOrEmpty()) {
files?.map {
it.url
}.orEmpty()
} else {
images
}
}
}
@Serializable
class ReaperPageFileDto(
val url: String,
)

View File

@ -1,10 +0,0 @@
ext {
extName = 'Vortex Scans Free (unoriginal)'
extClass = '.VortexScansFree'
themePkg = 'mangathemesia'
baseUrl = 'https://vortexscansfree.com'
overrideVersionCode = 0
isNsfw = false
}
apply from: "$rootDir/common.gradle"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,9 +0,0 @@
package eu.kanade.tachiyomi.extension.en.vortexscansfree
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
class VortexScansFree : MangaThemesia(
"Vortex Scans Free (unoriginal)",
"https://vortexscansfree.com",
"en",
)