Compare commits
56 Commits
c5c6d77479
...
9602aa5dd5
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9602aa5dd5 | ||
![]() |
9fa6b8cb51 | ||
![]() |
8e7bba9d87 | ||
![]() |
42d15fed81 | ||
![]() |
913ceb3017 | ||
![]() |
2de6f14215 | ||
![]() |
9ab07589ad | ||
![]() |
bf1fc04a2e | ||
![]() |
d97962de20 | ||
![]() |
63c57ec13e | ||
![]() |
0d2056cabf | ||
![]() |
ca8faa3a7e | ||
![]() |
3ce4e729f9 | ||
![]() |
ea913b5957 | ||
![]() |
27c4ed1430 | ||
![]() |
e95e761833 | ||
![]() |
bf53943984 | ||
![]() |
42ad2a5859 | ||
![]() |
a5e314f149 | ||
![]() |
fac4fa1278 | ||
![]() |
3e9c022f6a | ||
![]() |
a799bf8a5c | ||
![]() |
93c5dbc650 | ||
![]() |
5acf24daa9 | ||
![]() |
da8c562990 | ||
![]() |
41b6762f16 | ||
![]() |
fd7c47329b | ||
![]() |
71e3830576 | ||
![]() |
0edd4a94c0 | ||
![]() |
beb88a4d60 | ||
![]() |
489729f52b | ||
![]() |
df9983f9b0 | ||
![]() |
6ac91bca39 | ||
![]() |
c24753e7e7 | ||
![]() |
fa74b489b2 | ||
![]() |
943516d451 | ||
![]() |
d91b683ee2 | ||
![]() |
95caddf343 | ||
![]() |
791d48fce1 | ||
![]() |
746dcba08b | ||
![]() |
03b9df50ff | ||
![]() |
dc3bddb317 | ||
![]() |
f20236ab94 | ||
![]() |
75558ac6da | ||
![]() |
ee254eaebd | ||
![]() |
1debb5fd1f | ||
![]() |
42caf828c1 | ||
![]() |
988be5901b | ||
![]() |
d7e1e2a448 | ||
![]() |
205d95cc07 | ||
![]() |
d9f7e58f01 | ||
![]() |
93d1700373 | ||
![]() |
b3668dfe11 | ||
![]() |
812c064b27 | ||
![]() |
a723109122 | ||
![]() |
07fc9a086a |
50
.github/workflows/build_push.yml
vendored
@ -25,51 +25,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Clone repo
|
- name: Clone repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
build_multisrc:
|
|
||||||
name: Build multisrc modules
|
|
||||||
needs: prepare
|
|
||||||
runs-on: arch
|
|
||||||
steps:
|
|
||||||
- name: Checkout master branch
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up JDK
|
|
||||||
uses: actions/setup-java@v3
|
|
||||||
with:
|
|
||||||
java-version: 17
|
|
||||||
distribution: temurin
|
|
||||||
|
|
||||||
- name: Prepare signing key
|
|
||||||
run: |
|
|
||||||
echo ${{ secrets.SIGNING_KEY }} | base64 -d > signingkey.jks
|
|
||||||
|
|
||||||
- name: Generate sources from the multi-source library
|
|
||||||
uses: gradle/gradle-build-action@v2
|
|
||||||
env:
|
|
||||||
CI_MODULE_GEN: "true"
|
|
||||||
with:
|
|
||||||
arguments: :multisrc:generateExtensions
|
|
||||||
|
|
||||||
- name: Build extensions
|
|
||||||
uses: gradle/gradle-build-action@v2
|
|
||||||
env:
|
|
||||||
CI_MULTISRC: "true"
|
|
||||||
ALIAS: ${{ secrets.ALIAS }}
|
|
||||||
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
||||||
KEY_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
||||||
with:
|
|
||||||
arguments: assembleRelease
|
|
||||||
|
|
||||||
- name: Upload APKs
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: "multisrc-apks"
|
|
||||||
path: "**/*.apk"
|
|
||||||
retention-days: 1
|
|
||||||
|
|
||||||
- name: Clean up CI files
|
|
||||||
run: rm signingkey.jks
|
|
||||||
|
|
||||||
build_individual:
|
build_individual:
|
||||||
name: Build individual modules
|
name: Build individual modules
|
||||||
@ -92,12 +47,10 @@ jobs:
|
|||||||
- name: Build extensions
|
- name: Build extensions
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
env:
|
env:
|
||||||
CI_MULTISRC: "false"
|
|
||||||
ALIAS: ${{ secrets.ALIAS }}
|
ALIAS: ${{ secrets.ALIAS }}
|
||||||
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||||
KEY_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
KEY_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||||
with:
|
run: ./gradlew -p src assembleRelease
|
||||||
arguments: assembleRelease
|
|
||||||
|
|
||||||
- name: Upload APKs
|
- name: Upload APKs
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@ -112,7 +65,6 @@ jobs:
|
|||||||
publish_repo:
|
publish_repo:
|
||||||
name: Publish repo
|
name: Publish repo
|
||||||
needs:
|
needs:
|
||||||
- build_multisrc
|
|
||||||
- build_individual
|
- build_individual
|
||||||
runs-on: arch
|
runs-on: arch
|
||||||
steps:
|
steps:
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="MadaraGenerator" type="JetRunConfigurationType" nameIsGenerated="true">
|
|
||||||
<module name="tachiyomi-extensions.multisrc.main" />
|
|
||||||
<option name="MAIN_CLASS_NAME" value="eu.kanade.tachiyomi.multisrc.madara.MadaraGenerator" />
|
|
||||||
<method v="2">
|
|
||||||
<option name="Make" enabled="true" />
|
|
||||||
<option name="Gradle.BeforeRunTask" enabled="true" tasks="ktFormat" externalProjectPath="$PROJECT_DIR$/multisrc" vmOptions="" scriptParameters="-Ptheme=madara" />
|
|
||||||
<option name="Gradle.BeforeRunTask" enabled="true" tasks="ktLint" externalProjectPath="$PROJECT_DIR$/multisrc" vmOptions="" scriptParameters="-Ptheme=madara" />
|
|
||||||
</method>
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -1,11 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="MangaThemesiaGenerator" type="JetRunConfigurationType" nameIsGenerated="true">
|
|
||||||
<module name="tachiyomi-extensions.multisrc.main" />
|
|
||||||
<option name="MAIN_CLASS_NAME" value="eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesiaGenerator" />
|
|
||||||
<method v="2">
|
|
||||||
<option name="Make" enabled="true" />
|
|
||||||
<option name="Gradle.BeforeRunTask" enabled="true" tasks="ktFormat" externalProjectPath="$PROJECT_DIR$/multisrc" vmOptions="" scriptParameters="-Ptheme=mangathemesia" />
|
|
||||||
<option name="Gradle.BeforeRunTask" enabled="true" tasks="ktLint" externalProjectPath="$PROJECT_DIR$/multisrc" vmOptions="" scriptParameters="-Ptheme=mangathemesia" />
|
|
||||||
</method>
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -423,14 +423,15 @@ will be cached.
|
|||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
private fun parseDate(dateStr: String): Long {
|
private fun parseDate(dateStr: String): Long {
|
||||||
return runCatching { DATE_FORMATTER.parse(dateStr)?.time }
|
return try {
|
||||||
.getOrNull() ?: 0L
|
dateFormat.parse(dateStr)!!.time
|
||||||
|
} catch (_: ParseException) {
|
||||||
|
0L
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
private val dateFormat by lazy {
|
||||||
private val DATE_FORMATTER by lazy {
|
SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH)
|
||||||
SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
2
buildSrc/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
.gradle/
|
|
||||||
build/
|
|
@ -3,5 +3,14 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
gradlePluginPortal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
google()
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(libs.gradle.agp)
|
||||||
|
implementation(libs.gradle.kotlin)
|
||||||
|
implementation(libs.gradle.serialization)
|
||||||
|
implementation(libs.gradle.kotlinter)
|
||||||
}
|
}
|
||||||
|
7
buildSrc/settings.gradle.kts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
dependencyResolutionManagement {
|
||||||
|
versionCatalogs {
|
||||||
|
create("libs") {
|
||||||
|
from(files("../gradle/libs.versions.toml"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
6
buildSrc/src/main/kotlin/Extensions.kt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import org.gradle.api.plugins.ExtensionAware
|
||||||
|
import org.gradle.kotlin.dsl.extra
|
||||||
|
|
||||||
|
var ExtensionAware.baseVersionCode: Int
|
||||||
|
get() = extra.get("baseVersionCode") as Int
|
||||||
|
set(value) = extra.set("baseVersionCode", value)
|
64
buildSrc/src/main/kotlin/lib-multisrc.gradle.kts
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
plugins {
|
||||||
|
id("com.android.library")
|
||||||
|
kotlin("android")
|
||||||
|
id("kotlinx-serialization")
|
||||||
|
id("org.jmailen.kotlinter")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdk = AndroidConfig.compileSdk
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdk = AndroidConfig.minSdk
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace = "eu.kanade.tachiyomi.multisrc.${project.name}"
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
named("main") {
|
||||||
|
manifest.srcFile("AndroidManifest.xml")
|
||||||
|
java.setSrcDirs(listOf("src"))
|
||||||
|
res.setSrcDirs(listOf("res"))
|
||||||
|
assets.setSrcDirs(listOf("assets"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildFeatures {
|
||||||
|
resValues = false
|
||||||
|
shaders = false
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
freeCompilerArgs += "-opt-in=kotlinx.serialization.ExperimentalSerializationApi"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinter {
|
||||||
|
experimentalRules = true
|
||||||
|
disabledRules = arrayOf(
|
||||||
|
"experimental:argument-list-wrapping", // Doesn't play well with Android Studio
|
||||||
|
"experimental:comment-wrapping",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: use versionCatalogs.named("libs") in Gradle 8.5
|
||||||
|
val libs = project.extensions.getByType<VersionCatalogsExtension>().named("libs")
|
||||||
|
dependencies {
|
||||||
|
compileOnly(libs.findBundle("common").get())
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
preBuild {
|
||||||
|
dependsOn(lintKotlin)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (System.getenv("CI") != "true") {
|
||||||
|
lintKotlin {
|
||||||
|
dependsOn(formatKotlin)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,8 @@ assert !ext.has("libVersion")
|
|||||||
|
|
||||||
assert extName.chars().max().asInt < 0x180 : "Extension name should be romanized"
|
assert extName.chars().max().asInt < 0x180 : "Extension name should be romanized"
|
||||||
|
|
||||||
|
Project theme = ext.has("themePkg") ? project(":lib-multisrc:$themePkg") : null
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdk AndroidConfig.compileSdk
|
compileSdk AndroidConfig.compileSdk
|
||||||
|
|
||||||
@ -25,7 +27,7 @@ android {
|
|||||||
minSdk AndroidConfig.minSdk
|
minSdk AndroidConfig.minSdk
|
||||||
targetSdk AndroidConfig.targetSdk
|
targetSdk AndroidConfig.targetSdk
|
||||||
applicationIdSuffix project.parent.name + "." + project.name
|
applicationIdSuffix project.parent.name + "." + project.name
|
||||||
versionCode extVersionCode
|
versionCode theme == null ? extVersionCode : theme.baseVersionCode + overrideVersionCode
|
||||||
versionName "1.4.$versionCode"
|
versionName "1.4.$versionCode"
|
||||||
base {
|
base {
|
||||||
archivesName = "tachiyomi-$applicationIdSuffix-v$versionName"
|
archivesName = "tachiyomi-$applicationIdSuffix-v$versionName"
|
||||||
@ -34,8 +36,18 @@ android {
|
|||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
appName : "Tachiyomi: $extName",
|
appName : "Tachiyomi: $extName",
|
||||||
extClass: extClass,
|
extClass: extClass,
|
||||||
nsfw: project.ext.find("isNsfw") ? 1 : 0,
|
nsfw : project.ext.find("isNsfw") ? 1 : 0,
|
||||||
]
|
]
|
||||||
|
String baseUrl = project.ext.find("baseUrl") ?: ""
|
||||||
|
if (theme != null && !baseUrl.isEmpty()) {
|
||||||
|
def split = baseUrl.split("://")
|
||||||
|
assert split.length == 2
|
||||||
|
def path = split[1].split("/")
|
||||||
|
manifestPlaceholders += [
|
||||||
|
SOURCEHOST : path[0],
|
||||||
|
SOURCESCHEME: split[0],
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
@ -88,6 +100,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
if (theme != null) implementation(theme) // Overrides core launcher icons
|
||||||
implementation(project(":core"))
|
implementation(project(":core"))
|
||||||
compileOnly(libs.bundles.common)
|
compileOnly(libs.bundles.common)
|
||||||
}
|
}
|
||||||
@ -108,4 +121,6 @@ tasks.register("writeManifestFile") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
preBuild.dependsOn(writeManifestFile, lintKotlin)
|
preBuild.dependsOn(writeManifestFile, lintKotlin)
|
||||||
lintKotlin.dependsOn(formatKotlin)
|
if (System.getenv("CI") != "true") {
|
||||||
|
lintKotlin.dependsOn(formatKotlin)
|
||||||
|
}
|
||||||
|
5
lib-multisrc/a3manga/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 3
|
5
lib-multisrc/bakkin/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 6
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.4 KiB |
5
lib-multisrc/bilibili/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 9
|
5
lib-multisrc/blogtruyen/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 1
|
9
lib-multisrc/colamanga/build.gradle.kts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 3
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api(project(":lib:synchrony"))
|
||||||
|
}
|
@ -126,7 +126,7 @@ abstract class ColaManga(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun searchMangaSelector() = "dl.fed-data-info, ${popularMangaSelector()}"
|
override fun searchMangaSelector() = "dl.fed-deta-info, ${popularMangaSelector()}"
|
||||||
|
|
||||||
override fun searchMangaFromElement(element: Element): SManga {
|
override fun searchMangaFromElement(element: Element): SManga {
|
||||||
if (element.tagName() == "li") {
|
if (element.tagName() == "li") {
|
||||||
@ -143,7 +143,7 @@ abstract class ColaManga(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun searchMangaNextPageSelector() = popularMangaSelector()
|
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
|
||||||
|
|
||||||
protected abstract val statusTitle: String
|
protected abstract val statusTitle: String
|
||||||
protected abstract val authorTitle: String
|
protected abstract val authorTitle: String
|
5
lib-multisrc/colorlibanime/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 1
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
9
lib-multisrc/comicgamma/build.gradle.kts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 7
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api(project(":lib:speedbinb"))
|
||||||
|
}
|
@ -1,16 +1,20 @@
|
|||||||
package eu.kanade.tachiyomi.multisrc.comicgamma
|
package eu.kanade.tachiyomi.multisrc.comicgamma
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.lib.speedbinb.SpeedBinbInterceptor
|
||||||
|
import eu.kanade.tachiyomi.lib.speedbinb.SpeedBinbReader
|
||||||
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.MangasPage
|
||||||
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 kotlinx.serialization.json.Json
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
import org.jsoup.select.Evaluator
|
import org.jsoup.select.Evaluator
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
|
import uy.kohesive.injekt.Injekt
|
||||||
|
import uy.kohesive.injekt.api.get
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.TimeZone
|
import java.util.TimeZone
|
||||||
@ -22,7 +26,11 @@ open class ComicGamma(
|
|||||||
) : ParsedHttpSource() {
|
) : ParsedHttpSource() {
|
||||||
override val supportsLatest = false
|
override val supportsLatest = false
|
||||||
|
|
||||||
override val client = network.client.newBuilder().addInterceptor(PtImgInterceptor).build()
|
private val json = Injekt.get<Json>()
|
||||||
|
|
||||||
|
override val client = network.client.newBuilder()
|
||||||
|
.addInterceptor(SpeedBinbInterceptor(json))
|
||||||
|
.build()
|
||||||
|
|
||||||
override fun popularMangaRequest(page: Int) = GET("$baseUrl/manga/", headers)
|
override fun popularMangaRequest(page: Int) = GET("$baseUrl/manga/", headers)
|
||||||
override fun popularMangaNextPageSelector(): String? = null
|
override fun popularMangaNextPageSelector(): String? = null
|
||||||
@ -54,10 +62,9 @@ open class ComicGamma(
|
|||||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
|
||||||
throw UnsupportedOperationException()
|
throw UnsupportedOperationException()
|
||||||
|
|
||||||
override fun pageListParse(document: Document) =
|
private val reader by lazy { SpeedBinbReader(client, headers, json) }
|
||||||
document.select("#content > div[data-ptimg]").mapIndexed { i, e ->
|
|
||||||
Page(i, imageUrl = e.attr("abs:data-ptimg"))
|
override fun pageListParse(document: Document) = reader.pageListParse(document)
|
||||||
}
|
|
||||||
|
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
val titleElement = document.selectFirst(Evaluator.Class("manga__title"))!!
|
val titleElement = document.selectFirst(Evaluator.Class("manga__title"))!!
|
5
lib-multisrc/eromuse/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 1
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 1006 B |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
5
lib-multisrc/fansubscat/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 4
|
5
lib-multisrc/flixscans/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 5
|
5
lib-multisrc/fmreader/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 9
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
5
lib-multisrc/foolslide/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 3
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
5
lib-multisrc/gattsu/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 5
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
5
lib-multisrc/gigaviewer/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 5
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 913 B After Width: | Height: | Size: 913 B |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
5
lib-multisrc/gravureblogger/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 1
|
5
lib-multisrc/grouple/build.gradle.kts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
id("lib-multisrc")
|
||||||
|
}
|
||||||
|
|
||||||
|
baseVersionCode = 22
|