Compare commits

...

56 Commits

Author SHA1 Message Date
AwkwardPeak7
9602aa5dd5 Comick: fix new chapters delay and small refactor (#1354)
Some checks failed
CI / Prepare job (push) Successful in 5s
CI / Build individual modules (push) Failing after 0s
CI / Publish repo (push) Has been skipped
* remove chapter pagination

page parameter seems to trigger some cache issue in their api

* update baseUrl

* data class -> class

micro optimization

* small refactor

* remove useless interceptor

* oops

* mutable not needed
2024-02-18 20:25:13 +00:00
AwkwardPeak7
9fa6b8cb51 move CookieInterceptor to shared lib (#1356)
* CookieInterceptor lib

* accept list of cookies
2024-02-18 20:25:13 +00:00
AwkwardPeak7
8e7bba9d87 RC: fix chapters (#1359)
* fix rizz chapters

Co-authored-by: Anshuman Sarkar <77231921+Ryujin1108@users.noreply.github.com>

* remove unused dto

* lint

* lint x2

---------

Co-authored-by: Anshuman Sarkar <77231921+Ryujin1108@users.noreply.github.com>
2024-02-18 20:25:13 +00:00
Chopper
42d15fed81 Remove PrismaHentais (#1349)
Remove PrismaHentai
2024-02-18 20:25:13 +00:00
Chopper
913ceb3017 Add LiManga (#1346)
* Add LiManga

* Add isNsfw
2024-02-18 20:25:13 +00:00
Vetle Ledaal
2de6f14215 Manhwa Freak: remove spinner image (#1343) 2024-02-18 20:25:13 +00:00
Cuong M. Tran
9ab07589ad NetTruyen/NhatTruyen: avoid return un-relevant searching results (#1338)
* NetTruyen/NhatTruyen: avoid return catalog page when searching return empty

They redirect back to catalog page if searching query is not found.
That makes both sites always return un-relevant results when searching should have returned empty.

* fix overrideVersion
2024-02-18 20:25:13 +00:00
Tef
bf1fc04a2e Add MangaSaki (#1273)
* Added Mangasaki

* Added MangaSaki

* Added MangaSaki

* Removed page number check

Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>

* Applied requested changes

* Add recommended change

* Add requested changes

* Applied requested changes

---------

Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>
2024-02-18 20:25:13 +00:00
bapeey
d97962de20 LectorTMO: Use cloudflareClient (#1340)
Use cloudflareClient
2024-02-18 20:25:13 +00:00
Vetle Ledaal
63c57ec13e Elarc Toon: update mangaUrlDirectory (#1341) 2024-02-18 20:25:13 +00:00
bapeey
0d2056cabf SlimeRead: Update API url (#1334)
Update apiurl
2024-02-18 20:25:13 +00:00
Secozzi
ca8faa3a7e Add todaymanga (#1289)
* add todaymanga

* small changes to filters

* apply recommended changes

* Small touch-up to date parsing
2024-02-18 20:25:13 +00:00
bapeey
3ce4e729f9 MMRCMS: Fix search and add Spanish translations (#1333)
Fix search and add (es) translations
2024-02-18 20:25:13 +00:00
beerpsi
ea913b5957 ComicGamma: Use SpeedBinb reader (#1317)
* ComicGamma: Use SpeedBinb reader

* Update lib-multisrc/comicgamma/build.gradle.kts

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2024-02-18 20:25:13 +00:00
beerpsi
27c4ed1430 ColaManga: Fix search next page selector (#1326) 2024-02-18 20:25:13 +00:00
beerpsi
e95e761833 Add Weekly Young Magazine (Yanmaga) (#1318) 2024-02-18 20:25:13 +00:00
beerpsi
bf53943984 Add Manga Planet (#1319) 2024-02-18 20:25:13 +00:00
beerpsi
42ad2a5859 Add Comic Meteor (#1320) 2024-02-18 20:25:13 +00:00
beerpsi
a5e314f149 Add Gaugau Monster Plus (#1321) 2024-02-18 20:25:13 +00:00
beerpsi
fac4fa1278 Add Ohta Web Comic (#1322) 2024-02-18 20:25:13 +00:00
beerpsi
3e9c022f6a Komga: Don't apply library filter if default libraries are not set (#1323) 2024-02-18 20:25:13 +00:00
beerpsi
a799bf8a5c Add SpeedBinb reader library (#1316)
* Add SpeedBinb reader library

* Make TextInterceptor generic
2024-02-18 20:25:13 +00:00
beerpsi
93c5dbc650 MMRCMS: Dynamic filter rework (#1315)
* MMRCMS: Dynamic filter rework, remove Last updated sort in Mangas.in

* Formatting

* Show the reset message when filters are fetching

* Linting

* Dynamically fetch sort options

* Add i18n support

* Remove unused import
2024-02-18 20:25:13 +00:00
beerpsi
5acf24daa9 Komga: README, chapter timestamp shenanigans, refactor (#1313)
* Komga: README, chapter timestamp shenanigans, refactor

* Repeating by password length is probably fine

* Reuse the CoroutineScope
2024-02-18 20:25:13 +00:00
beerpsi
da8c562990 MangaPlus: Update web API versions and clean up stuff (#1305)
* MangaPlus: Update API versions

* Add more stuff to the titleCache
2024-02-18 20:25:08 +00:00
bapeey
41b6762f16 OlympusScanlation: Update domain and minor refactor (#1300)
* Update domain and other things

* Change popular endpoint

* fetchFilters in getFilterList

* Make SManga and SChapter in DTO

* I just want to update the domain

* Move attempts to finally block

* idk

* update

---------

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
2024-02-18 20:17:19 +00:00
bapeey
fd7c47329b MNS: Fix popular and latest tabs (#1314)
Fix popular and latest
2024-02-18 20:17:19 +00:00
Chopper
71e3830576 Remove Dead Sources (#1312)
* Remove Drop Scan

* Remove Turktoon
2024-02-18 20:17:19 +00:00
stevenyomi
0edd4a94c0 Clean up date format code in docs (#1299) 2024-02-18 20:17:19 +00:00
beerpsi
beb88a4d60 MangaHub: Update API URL (#1294) 2024-02-18 20:17:19 +00:00
AwkwardPeak7
489729f52b expose lib-multisrc dependencies to the extensions (#1293)
* expose `lib-multsrc` deps to the extensions

change `implementation` to `api`

* remove those libs from extensions
2024-02-18 20:17:19 +00:00
Secozzi
df9983f9b0 MagusManga: update mangaUrlDirectory (#1291)
update mangaUrlDirectory
2024-02-18 20:17:19 +00:00
Tef
6ac91bca39 Add RawMangas (#1276)
* Added RawMangas

* Update src/ja/rawmangas/build.gradle

Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>

* Added ending newline in build.gradle

* remove extra newline

---------

Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>
Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2024-02-18 20:17:19 +00:00
Secozzi
c24753e7e7 Templescan: update apiUrl (#1290)
update apiUrl
2024-02-18 20:17:19 +00:00
Secozzi
fa74b489b2 Add mangahot (#1229)
* add mangahot

* add getChapterUrl

* apply recommended changes

* simplify apiheaders
2024-02-18 20:17:19 +00:00
beerpsi
943516d451 Komga: Filter out EPUB books, fix chapter timestamps, allow setting default libraries, rename None sort to Relevance (#1282)
* Komga: Filter out EPUB books, fix chapter timestamps

* Add default library setting

* Make some settings not require a restart

* Don't use fixed enums

* Rename None sort to Relevance (#1284)

* make popular default to alphabetical sort
2024-02-18 20:17:19 +00:00
beerpsi
d91b683ee2 Add Ưng Tỷ Comics (#1286) 2024-02-18 20:17:19 +00:00
BrutuZ
95caddf343 Add Deep Link Support to Anchira (#1283)
Add Deep Link Support
2024-02-18 20:17:19 +00:00
bapeey
791d48fce1 Legends no Fansub: Update domain (#1280)
Update domain
2024-02-18 20:17:19 +00:00
everfio
746dcba08b Naver Comic: fix page list for mobile user agent (#1272) 2024-02-18 20:17:19 +00:00
mohamedotaku
03b9df50ff change URL and override mangaSubString (#1281) 2024-02-18 20:17:19 +00:00
mohamedotaku
dc3bddb317 Add source LilyumFansub "tr" (#1253)
* Add source LilyumFansub "tr"

* Update LilyumFansub.kt
2024-02-18 20:17:19 +00:00
bapeey
f20236ab94 Add EsMi2Manga (#1274)
* Add EsMi2Manga

* Is Nsfw
2024-02-18 20:17:19 +00:00
bapeey
75558ac6da Add Legends No Fansub (#1275)
Add LegendsNoFansub
2024-02-18 20:17:19 +00:00
Secozzi
ee254eaebd New multisrc theme: Keyoapp (#1259)
* move rudra to keyoapp multisrc

* add genres + small fixes

* add rate limit

* fix name + remove rate limit

* add wickedscans

* fix indentation
2024-02-18 20:17:19 +00:00
beerpsi
1debb5fd1f Add Dưa Leo Truyện (#1257)
* Add Dua Leo Truyen

* Add filters
2024-02-18 20:17:19 +00:00
mohamedotaku
42caf828c1 URL change CopyPasteScan (#1250) 2024-02-18 20:13:38 +00:00
stevenyomi
988be5901b Rename projects to path names (#1240) 2024-02-18 20:13:33 +00:00
stevenyomi
d7e1e2a448 Coco Rip: fix launcher icons (#1239) 2024-02-18 20:10:41 +00:00
stevenyomi
205d95cc07 Migrate to lib-multisrc (#1237)
* adjustments

* Run generator

* Remove multisrc project

* add lib dependencies

* Remove multisrc from build scripts

* Remove build condition
2024-02-18 20:10:37 +00:00
stevenyomi
d9f7e58f01 Don't format code in CI (#1236)
* Don't format code in CI

* format individual extensions
2024-02-18 19:57:02 +00:00
Cuong M. Tran
93d1700373 Update WPComics multisrc (#1146)
* NetTruyen/NhatTruyen: add filter, fix searching, update genres

* Add Filter to Nhattruyen by moving FilterList to WPComics
* Fix searching Nettruyen/Nhattruyen with filter Genre on
* Fix searching Nhattruyen when filter status=Completed
* Update Nettruyen/Nhattruyen genres list

* XoxoComics: support fillter by genre & status

* XoxoComics: add Filter header

* XoxoComics: fix URL query when filtering

* tweak replace search path method

---------

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
2024-02-18 19:57:02 +00:00
KirinRaikage
b3668dfe11 Add Scan Hentai FR to Madara (#1232) 2024-02-18 19:57:02 +00:00
stevenyomi
812c064b27 [skip ci] Copy useful comments from generators (#1233) 2024-02-18 19:57:02 +00:00
stevenyomi
a723109122 Add build files for lib-multisrc migration (#1228) 2024-02-18 19:55:37 +00:00
beerpsi
07fc9a086a ColaManga: Fix search (#1226) 2024-02-18 19:51:00 +00:00
6237 changed files with 15295 additions and 4696 deletions

View File

@ -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:

View File

@ -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>

View File

@ -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>

View File

@ -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
View File

@ -1,2 +0,0 @@
.gradle/
build/

View File

@ -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)
} }

View File

@ -0,0 +1,7 @@
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}

View 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)

View 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)
}
}
}

View File

@ -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)
}

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 3

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 6

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 9

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 1

View File

@ -0,0 +1,9 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 3
dependencies {
api(project(":lib:synchrony"))
}

View File

@ -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

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 1

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,9 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 7
dependencies {
api(project(":lib:speedbinb"))
}

View File

@ -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"))!!

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 1

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1006 B

After

Width:  |  Height:  |  Size: 1006 B

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 4

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 5

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 9

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 3

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 5

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 5

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 913 B

After

Width:  |  Height:  |  Size: 913 B

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 1

View File

@ -0,0 +1,5 @@
plugins {
id("lib-multisrc")
}
baseVersionCode = 22

Some files were not shown because too many files have changed in this diff Show More