From 29e358953ec1da224a57243c0ae2d7780ad0e631 Mon Sep 17 00:00:00 2001 From: arkon Date: Thu, 14 Sep 2023 22:24:21 -0400 Subject: [PATCH] Misc cleanup --- .github/workflows/build_pull_request.yml | 4 +- .github/workflows/build_push.yml | 4 +- .github/workflows/publish.yml | 4 +- .gitignore | 8 ---- .../xyz/nulldev/ts/config/ConfigManager.kt | 3 +- .../xyz/nulldev/ts/config/ConfigModule.kt | 3 +- .../java/xyz/nulldev/ts/config/Logging.kt | 3 +- .../main/java/android/widget/EditText.java | 3 +- .../src/main/java/android/widget/Toast.java | 3 +- .../preference/CheckBoxPreference.java | 3 +- .../androidx/preference/DialogPreference.java | 3 +- .../preference/EditTextPreference.java | 3 +- .../androidx/preference/ListPreference.java | 3 +- .../preference/MultiSelectListPreference.java | 3 +- .../java/androidx/preference/Preference.java | 3 +- .../androidx/preference/PreferenceScreen.java | 3 +- .../preference/SwitchPreferenceCompat.java | 3 +- .../preference/TwoStatePreference.java | 3 +- .../io/sharedprefs/JavaSharedPreferences.kt | 5 +- .../replace/java/text/NumberFormat.java | 3 +- .../replace/java/text/SimpleDateFormat.java | 3 +- .../replace/java/util/Calendar.java | 3 +- .../replace/java/util/TimeZone.java | 3 +- build.gradle.kts | 10 ++-- {server => inspector}/build.gradle.kts | 22 ++++----- .../main/kotlin/eu/kanade/tachiyomi/App.kt | 3 +- .../kotlin/eu/kanade/tachiyomi/AppInfo.kt | 0 .../kotlin/eu/kanade/tachiyomi/AppModule.kt | 14 +----- .../kotlin/eu/kanade/tachiyomi/BuildConfig.kt | 8 ++++ .../tachiyomi/network/JavaScriptEngine.kt | 0 .../tachiyomi/network/MemoryCookieJar.kt | 3 +- .../kanade/tachiyomi/network/NetworkHelper.kt | 3 +- .../tachiyomi/network/OkHttpExtensions.kt | 0 .../tachiyomi/network/ProgressListener.kt | 0 .../eu/kanade/tachiyomi/network/Requests.kt | 1 + .../interceptor/CloudflareInterceptor.kt | 3 +- .../interceptor/RateLimitInterceptor.kt | 0 .../SpecificHostRateLimitInterceptor.kt | 0 .../tachiyomi/source/CatalogueSource.kt | 0 .../tachiyomi/source/ConfigurableSource.kt | 0 .../eu/kanade/tachiyomi/source/LocalSource.kt | 7 ++- .../eu/kanade/tachiyomi/source/Source.kt | 3 ++ .../kanade/tachiyomi/source/SourceFactory.kt | 0 .../kanade/tachiyomi/source/SourceManager.kt | 0 .../tachiyomi/source/UnmeteredSource.kt | 0 .../kanade/tachiyomi/source/model/Filter.kt | 4 +- .../tachiyomi/source/model/FilterList.kt | 0 .../tachiyomi/source/model/MangasPage.kt | 0 .../eu/kanade/tachiyomi/source/model/Page.kt | 0 .../kanade/tachiyomi/source/model/SChapter.kt | 0 .../tachiyomi/source/model/SChapterImpl.kt | 0 .../kanade/tachiyomi/source/model/SManga.kt | 0 .../tachiyomi/source/model/SMangaImpl.kt | 0 .../tachiyomi/source/model/UpdateStrategy.kt | 0 .../tachiyomi/source/online/HttpSource.kt | 15 ++++-- .../source/online/HttpSourceFetcher.kt | 0 .../source/online/ParsedHttpSource.kt | 0 .../source/online/ResolvableSource.kt | 0 .../kanade/tachiyomi/util/JsoupExtensions.kt | 0 .../util/lang/CoroutinesExtensions.kt | 3 +- .../src/main/kotlin/inspector}/Main.kt | 47 ++++++++++++------- .../main/kotlin/inspector/util}/Extension.kt | 33 ++++++++----- .../kotlin/inspector}/util/PackageTools.kt | 8 ++-- .../src/main/resources/logback.xml | 2 +- .../src/main/resources/server-reference.conf | 0 .../kotlin/eu/kanade/tachiyomi/BuildConfig.kt | 8 ---- .../eu/kanade/tachiyomi/util/RxExtension.kt | 0 .../eu/kanade/tachiyomi/util/lang/Hash.kt | 44 ----------------- .../suwayomi/tachidesk/server/ServerSetup.kt | 33 ------------- .../src/test/resources/server-reference.conf | 13 ----- settings.gradle.kts | 4 +- 71 files changed, 161 insertions(+), 209 deletions(-) rename {server => inspector}/build.gradle.kts (86%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/App.kt (91%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/AppInfo.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt (68%) create mode 100644 inspector/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt (97%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt (93%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt (99%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt (89%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt (90%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt (96%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt (96%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt (97%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt (100%) rename {server => inspector}/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt (82%) rename {server/src/main/kotlin/suwayomi/tachidesk => inspector/src/main/kotlin/inspector}/Main.kt (61%) rename {server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension => inspector/src/main/kotlin/inspector/util}/Extension.kt (65%) rename {server/src/main/kotlin/suwayomi/tachidesk/manga/impl => inspector/src/main/kotlin/inspector}/util/PackageTools.kt (95%) rename {server => inspector}/src/main/resources/logback.xml (87%) rename {server => inspector}/src/main/resources/server-reference.conf (100%) delete mode 100644 server/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt delete mode 100644 server/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt delete mode 100644 server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/Hash.kt delete mode 100644 server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt delete mode 100644 server/src/test/resources/server-reference.conf diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index 781efa8..70883a9 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout pull request - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} @@ -34,4 +34,4 @@ jobs: - name: Build project uses: gradle/gradle-command-action@v2 with: - arguments: :server:shadowJar + arguments: :inspector:shadowJar diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index 02fd9e3..8d1180b 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Clone repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 @@ -34,4 +34,4 @@ jobs: - name: Build project uses: gradle/gradle-command-action@v2 with: - arguments: :server:shadowJar + arguments: :inspector:shadowJar diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ca0b0c2..4d2fbb1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout ${{ github.ref }} - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.ref }} @@ -36,7 +36,7 @@ jobs: - name: Build project uses: gradle/gradle-command-action@v2 with: - arguments: :server:shadowJar + arguments: :inspector:shadowJar - name: Upload Release uses: xresloader/upload-to-github-release@v1 diff --git a/.gitignore b/.gitignore index 80c6a2b..4e6ce4d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,11 +7,3 @@ local.properties # Ignore Gradle build output directory build -server/src/main/resources/webUI -server/tmp/ -server/tachiserver-data/ - -# bundle asset downlaods -OpenJDK*.zip -electron-*.zip -rcedit-* diff --git a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt index 13cba2a..250358f 100644 --- a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt +++ b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigManager.kt @@ -5,7 +5,8 @@ package xyz.nulldev.ts.config * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import ch.qos.logback.classic.Level import com.typesafe.config.Config diff --git a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt index c893c84..bf0223d 100644 --- a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt +++ b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/ConfigModule.kt @@ -5,7 +5,8 @@ package xyz.nulldev.ts.config * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import com.typesafe.config.Config diff --git a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/Logging.kt b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/Logging.kt index 1492500..9cdf675 100644 --- a/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/Logging.kt +++ b/AndroidCompat/Config/src/main/java/xyz/nulldev/ts/config/Logging.kt @@ -5,7 +5,8 @@ package xyz.nulldev.ts.config * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import ch.qos.logback.classic.Level import mu.KotlinLogging diff --git a/AndroidCompat/src/main/java/android/widget/EditText.java b/AndroidCompat/src/main/java/android/widget/EditText.java index 58080ac..3825a53 100644 --- a/AndroidCompat/src/main/java/android/widget/EditText.java +++ b/AndroidCompat/src/main/java/android/widget/EditText.java @@ -5,7 +5,8 @@ package android.widget; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ public class EditText { public EditText(android.content.Context context) { throw new RuntimeException("Stub!"); } diff --git a/AndroidCompat/src/main/java/android/widget/Toast.java b/AndroidCompat/src/main/java/android/widget/Toast.java index 603efb9..111edf8 100644 --- a/AndroidCompat/src/main/java/android/widget/Toast.java +++ b/AndroidCompat/src/main/java/android/widget/Toast.java @@ -5,7 +5,8 @@ package android.widget; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ public class Toast { public static final int LENGTH_LONG = 1; diff --git a/AndroidCompat/src/main/java/androidx/preference/CheckBoxPreference.java b/AndroidCompat/src/main/java/androidx/preference/CheckBoxPreference.java index 7a6af1e..87f8283 100644 --- a/AndroidCompat/src/main/java/androidx/preference/CheckBoxPreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/CheckBoxPreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/androidx/preference/DialogPreference.java b/AndroidCompat/src/main/java/androidx/preference/DialogPreference.java index 70b4509..3938ab1 100644 --- a/AndroidCompat/src/main/java/androidx/preference/DialogPreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/DialogPreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/androidx/preference/EditTextPreference.java b/AndroidCompat/src/main/java/androidx/preference/EditTextPreference.java index fa3f2ae..33cb46e 100644 --- a/AndroidCompat/src/main/java/androidx/preference/EditTextPreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/EditTextPreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.annotation.NonNull; import android.annotation.Nullable; diff --git a/AndroidCompat/src/main/java/androidx/preference/ListPreference.java b/AndroidCompat/src/main/java/androidx/preference/ListPreference.java index d71f191..4adbfc2 100644 --- a/AndroidCompat/src/main/java/androidx/preference/ListPreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/ListPreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; import android.text.TextUtils; diff --git a/AndroidCompat/src/main/java/androidx/preference/MultiSelectListPreference.java b/AndroidCompat/src/main/java/androidx/preference/MultiSelectListPreference.java index 70835a0..0b12289 100644 --- a/AndroidCompat/src/main/java/androidx/preference/MultiSelectListPreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/MultiSelectListPreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/androidx/preference/Preference.java b/AndroidCompat/src/main/java/androidx/preference/Preference.java index 3eae6c7..938a0b8 100644 --- a/AndroidCompat/src/main/java/androidx/preference/Preference.java +++ b/AndroidCompat/src/main/java/androidx/preference/Preference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; import android.content.SharedPreferences; diff --git a/AndroidCompat/src/main/java/androidx/preference/PreferenceScreen.java b/AndroidCompat/src/main/java/androidx/preference/PreferenceScreen.java index 91032b3..a7dc824 100644 --- a/AndroidCompat/src/main/java/androidx/preference/PreferenceScreen.java +++ b/AndroidCompat/src/main/java/androidx/preference/PreferenceScreen.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/androidx/preference/SwitchPreferenceCompat.java b/AndroidCompat/src/main/java/androidx/preference/SwitchPreferenceCompat.java index d536bd0..9f0ab4c 100644 --- a/AndroidCompat/src/main/java/androidx/preference/SwitchPreferenceCompat.java +++ b/AndroidCompat/src/main/java/androidx/preference/SwitchPreferenceCompat.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/androidx/preference/TwoStatePreference.java b/AndroidCompat/src/main/java/androidx/preference/TwoStatePreference.java index fc30296..f42cd7f 100644 --- a/AndroidCompat/src/main/java/androidx/preference/TwoStatePreference.java +++ b/AndroidCompat/src/main/java/androidx/preference/TwoStatePreference.java @@ -5,7 +5,8 @@ package androidx.preference; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context; diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/io/sharedprefs/JavaSharedPreferences.kt b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/io/sharedprefs/JavaSharedPreferences.kt index 97a5f47..cce9826 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/io/sharedprefs/JavaSharedPreferences.kt +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/io/sharedprefs/JavaSharedPreferences.kt @@ -5,7 +5,8 @@ package xyz.nulldev.androidcompat.io.sharedprefs * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.SharedPreferences import com.russhwolf.settings.ExperimentalSettingsApi @@ -23,7 +24,7 @@ import java.util.prefs.Preferences @OptIn(ExperimentalSettingsImplementation::class, ExperimentalSerializationApi::class, ExperimentalSettingsApi::class) class JavaSharedPreferences(key: String) : SharedPreferences { - private val javaPreferences = Preferences.userRoot().node("suwayomi/tachidesk/$key") + private val javaPreferences = Preferences.userRoot().node("inspector/$key") private val preferences = JvmPreferencesSettings(javaPreferences) private val listeners = mutableMapOf() diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/NumberFormat.java b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/NumberFormat.java index d1c79eb..5144b95 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/NumberFormat.java +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/NumberFormat.java @@ -5,7 +5,8 @@ package xyz.nulldev.androidcompat.replace.java.text; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import com.ibm.icu.text.DisplayContext; import com.ibm.icu.util.Currency; diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/SimpleDateFormat.java b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/SimpleDateFormat.java index a129d87..e9120b6 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/SimpleDateFormat.java +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/text/SimpleDateFormat.java @@ -5,7 +5,8 @@ package xyz.nulldev.androidcompat.replace.java.text; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import com.ibm.icu.text.DateFormatSymbols; import com.ibm.icu.text.DisplayContext; diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/Calendar.java b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/Calendar.java index b8384bc..b239414 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/Calendar.java +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/Calendar.java @@ -5,7 +5,8 @@ package xyz.nulldev.androidcompat.replace.java.util; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import com.ibm.icu.text.DateFormat; import com.ibm.icu.util.ULocale; diff --git a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/TimeZone.java b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/TimeZone.java index 0c46d86..54e51c5 100644 --- a/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/TimeZone.java +++ b/AndroidCompat/src/main/java/xyz/nulldev/androidcompat/replace/java/util/TimeZone.java @@ -5,7 +5,8 @@ package xyz.nulldev.androidcompat.replace.java.util; * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import com.ibm.icu.util.ULocale; diff --git a/build.gradle.kts b/build.gradle.kts index c67e30e..339824e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,8 +9,7 @@ plugins { } allprojects { - group = "suwayomi" - + group = "tachiyomi" version = "1.0" repositories { @@ -24,9 +23,9 @@ allprojects { } val projects = listOf( - project(":AndroidCompat"), - project(":AndroidCompat:Config"), - project(":server") + project(":AndroidCompat"), + project(":AndroidCompat:Config"), + project(":inspector") ) configure(projects) { @@ -47,7 +46,6 @@ configure(projects) { // Kotlin implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) - testImplementation(kotlin("test")) // coroutines val coroutinesVersion = "1.6.4" diff --git a/server/build.gradle.kts b/inspector/build.gradle.kts similarity index 86% rename from server/build.gradle.kts rename to inspector/build.gradle.kts index 1b0a77d..11ffa16 100644 --- a/server/build.gradle.kts +++ b/inspector/build.gradle.kts @@ -21,7 +21,6 @@ dependencies { implementation("com.squareup.okhttp3:okhttp-dnsoverhttps:$okhttpVersion") implementation("com.squareup.okio:okio:3.3.0") - // dependencies of Tachiyomi extensions, some are duplicate, keeping it here for reference implementation("com.github.inorichi.injekt:injekt-core:65b0440") implementation("com.squareup.okhttp3:okhttp:$okhttpVersion") @@ -35,12 +34,9 @@ dependencies { // uncomment to test extensions directly // implementation(fileTree("lib/")) - - // Testing - testImplementation(kotlin("test-junit5")) } -val MainClass = "suwayomi.tachidesk.MainKt" +val MainClass = "inspector.MainKt" application { mainClass.set(MainClass) } @@ -75,7 +71,7 @@ val String.wrapped get() = """"$this"""" buildConfig { className("BuildConfig") - packageName("suwayomi.server") + packageName("inspector") useKotlinOutput() @@ -88,13 +84,13 @@ tasks { shadowJar { manifest { attributes( - mapOf( - "Main-Class" to MainClass, - "Implementation-Title" to rootProject.name, - "Implementation-Vendor" to "The Tachiyomi Open Source Project", - "Specification-Version" to inspectorVersion, - "Implementation-Version" to inspectorRevision - ) + mapOf( + "Main-Class" to MainClass, + "Implementation-Title" to rootProject.name, + "Implementation-Vendor" to "The Tachiyomi Open Source Project", + "Specification-Version" to inspectorVersion, + "Implementation-Version" to inspectorRevision + ) ) } archiveBaseName.set(rootProject.name) diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/App.kt similarity index 91% rename from server/src/main/kotlin/eu/kanade/tachiyomi/App.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/App.kt index 882fcc2..1e0579d 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/App.kt @@ -5,7 +5,8 @@ package eu.kanade.tachiyomi * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.app.Application import android.content.Context diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/AppInfo.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/AppInfo.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/AppInfo.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/AppInfo.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt similarity index 68% rename from server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt index a855172..a5b0787 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt @@ -5,36 +5,26 @@ package eu.kanade.tachiyomi * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.app.Application import eu.kanade.tachiyomi.network.JavaScriptEngine import eu.kanade.tachiyomi.network.NetworkHelper import kotlinx.serialization.json.Json -import rx.Observable -import rx.schedulers.Schedulers import uy.kohesive.injekt.api.InjektModule import uy.kohesive.injekt.api.InjektRegistrar import uy.kohesive.injekt.api.addSingleton import uy.kohesive.injekt.api.addSingletonFactory -import uy.kohesive.injekt.api.get class AppModule(val app: Application) : InjektModule { override fun InjektRegistrar.registerInjectables() { - addSingleton(app) addSingletonFactory { NetworkHelper(app) } addSingletonFactory { JavaScriptEngine(app) } addSingletonFactory { Json { ignoreUnknownKeys = true } } - - // Asynchronously init expensive components for a faster cold start - rxAsync { get() } - } - - private fun rxAsync(block: () -> Unit) { - Observable.fromCallable { block() }.subscribeOn(Schedulers.computation()).subscribe() } } diff --git a/inspector/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt new file mode 100644 index 0000000..0555c55 --- /dev/null +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt @@ -0,0 +1,8 @@ +package eu.kanade.tachiyomi + +class BuildConfig { + companion object { + const val VERSION_NAME = inspector.BuildConfig.NAME + val VERSION_CODE = inspector.BuildConfig.REVISION.trimStart('r').toInt() + } +} diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt similarity index 97% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt index 89c402f..ef57e75 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/MemoryCookieJar.kt @@ -5,7 +5,8 @@ package eu.kanade.tachiyomi.network * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import okhttp3.Cookie import okhttp3.CookieJar diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt similarity index 93% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt index 3a0b5b9..2a9e753 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -5,7 +5,8 @@ package eu.kanade.tachiyomi.network * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.Context import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/ProgressListener.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt similarity index 99% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt index 9a5dee9..6a6e312 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/Requests.kt @@ -38,6 +38,7 @@ fun GET( .cacheControl(cache) .build() } + fun POST( url: String, headers: Headers = DEFAULT_HEADERS, diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt similarity index 89% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt index 7696358..4d1f205 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/CloudflareInterceptor.kt @@ -5,7 +5,8 @@ package eu.kanade.tachiyomi.network.interceptor * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import okhttp3.Interceptor import okhttp3.Response diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/RateLimitInterceptor.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/network/interceptor/SpecificHostRateLimitInterceptor.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/CatalogueSource.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt similarity index 90% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt index 153b26e..bf47b2f 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/LocalSource.kt @@ -29,11 +29,16 @@ class LocalSource(private val context: Context) : CatalogueSource { override fun fetchPageList(chapter: SChapter): Observable> { TODO("Not yet implemented") } + override fun fetchPopularManga(page: Int): Observable { TODO("Not yet implemented") } - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + override fun fetchSearchManga( + page: Int, + query: String, + filters: FilterList + ): Observable { TODO("Not yet implemented") } diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt similarity index 96% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt index 93a8a80..b735632 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt @@ -20,6 +20,9 @@ interface Source { */ val name: String + val lang: String + get() = "" + /** * Returns an observable with the updated details for a manga. * diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/SourceFactory.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/UnmeteredSource.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt similarity index 96% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt index f30b2f5..14955db 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/Filter.kt @@ -3,7 +3,9 @@ package eu.kanade.tachiyomi.source.model sealed class Filter(val name: String, var state: T) { open class Header(name: String) : Filter(name, 0) open class Separator(name: String = "") : Filter(name, 0) - abstract class Select(name: String, val values: Array, state: Int = 0) : Filter(name, state) + abstract class Select(name: String, val values: Array, state: Int = 0) : + Filter(name, state) + abstract class Text(name: String, state: String = "") : Filter(name, state) abstract class CheckBox(name: String, state: Boolean = false) : Filter(name, state) abstract class TriState(name: String, state: Int = STATE_IGNORE) : Filter(name, state) { diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/FilterList.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/MangasPage.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapterImpl.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SManga.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/SMangaImpl.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/model/UpdateStrategy.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt similarity index 97% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt index 213b717..a6aa55e 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -56,7 +56,8 @@ abstract class HttpSource : CatalogueSource { override val id by lazy { val key = "${name.lowercase()}/$lang/$versionId" val bytes = MessageDigest.getInstance("MD5").digest(key.toByteArray()) - (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) }.reduce(Long::or) and Long.MAX_VALUE + (0..7).map { bytes[it].toLong() and 0xff shl 8 * (7 - it) } + .reduce(Long::or) and Long.MAX_VALUE } /** @@ -118,7 +119,11 @@ abstract class HttpSource : CatalogueSource { * @param query the search query. * @param filters the list of filters to apply. */ - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + override fun fetchSearchManga( + page: Int, + query: String, + filters: FilterList + ): Observable { return client.newCall(searchMangaRequest(page, query, filters)) .asObservableSuccess() .map { response -> @@ -133,7 +138,11 @@ abstract class HttpSource : CatalogueSource { * @param query the search query. * @param filters the list of filters to apply. */ - protected abstract fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request + protected abstract fun searchMangaRequest( + page: Int, + query: String, + filters: FilterList + ): Request /** * Parses the response from the site and returns a [MangasPage] object. diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/ParsedHttpSource.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/source/online/ResolvableSource.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt similarity index 100% rename from server/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/util/JsoupExtensions.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt b/inspector/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt similarity index 82% rename from server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt rename to inspector/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt index f0827e3..79c9f3f 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt +++ b/inspector/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt @@ -4,4 +4,5 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -suspend fun withIOContext(block: suspend CoroutineScope.() -> T) = withContext(Dispatchers.IO, block) +suspend fun withIOContext(block: suspend CoroutineScope.() -> T) = + withContext(Dispatchers.IO, block) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/Main.kt b/inspector/src/main/kotlin/inspector/Main.kt similarity index 61% rename from server/src/main/kotlin/suwayomi/tachidesk/Main.kt rename to inspector/src/main/kotlin/inspector/Main.kt index 9a45969..0dff644 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/Main.kt +++ b/inspector/src/main/kotlin/inspector/Main.kt @@ -1,4 +1,4 @@ -package suwayomi.tachidesk +package inspector /* * Copyright (C) Contributors to the Suwayomi project @@ -8,14 +8,18 @@ package suwayomi.tachidesk * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor +import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.source.online.HttpSource +import inspector.util.Extension import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import mu.KotlinLogging -import suwayomi.tachidesk.manga.impl.extension.Extension -import suwayomi.tachidesk.server.applicationSetup +import org.kodein.di.DI +import org.kodein.di.conf.global +import xyz.nulldev.androidcompat.AndroidCompat +import xyz.nulldev.androidcompat.AndroidCompatInitializer +import xyz.nulldev.ts.config.ConfigKodeinModule import java.io.File import java.nio.file.Files import java.nio.file.Paths @@ -23,41 +27,53 @@ import kotlin.io.path.extension import kotlin.streams.asSequence private val logger = KotlinLogging.logger {} +private val androidCompat by lazy { AndroidCompat() } suspend fun main(args: Array) { if (args.size < 3) { throw RuntimeException("Inspector must be given the path of apks directory, output json, and a tmp dir") } - applicationSetup() - val (apksPath, outputPath, tmpDirPath) = args + initApplication() + val tmpDir = File(tmpDirPath, "tmp").also { it.mkdir() } - val extensions = Files.find(Paths.get(apksPath), 2, { _, fileAttributes -> fileAttributes.isRegularFile }) - .asSequence() - .filter { it.extension == "apk" } - .toList() + val extensions = + Files.find(Paths.get(apksPath), 2, { _, fileAttributes -> fileAttributes.isRegularFile }) + .asSequence() + .filter { it.extension == "apk" } + .toList() logger.info("Found ${extensions.size} extensions") val extensionsInfo = extensions.associate { logger.debug("Installing $it") - val (pkgName, sources) = Extension.installAPK(tmpDir) { it.toFile() } + val (pkgName, sources) = Extension.installApk(tmpDir) { it.toFile() } pkgName to sources.map { source -> SourceJson(source) } } File(outputPath).writeText(Json.encodeToString(extensionsInfo)) } +private fun initApplication() { + logger.info("Running Inspector ${BuildConfig.VERSION} revision ${BuildConfig.REVISION}") + + // Load config API + DI.global.addImport(ConfigKodeinModule().create()) + // Load Android compatibility dependencies + AndroidCompatInitializer().init() + // start app + androidCompat.startApp(App()) +} + @Serializable -data class SourceJson( +private data class SourceJson( val name: String, val lang: String, val id: String, val baseUrl: String, val versionId: Int, - val hasCloudflare: Short ) { constructor(source: HttpSource) : this( @@ -66,10 +82,5 @@ data class SourceJson( source.id.toString(), source.baseUrl, source.versionId, - source.client.interceptors - .any { it is CloudflareInterceptor } - .toShort() ) } - -private fun Boolean.toShort(): Short = if (this) 1 else 0 diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt b/inspector/src/main/kotlin/inspector/util/Extension.kt similarity index 65% rename from server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt rename to inspector/src/main/kotlin/inspector/util/Extension.kt index 106a62d..7b8cdd3 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt +++ b/inspector/src/main/kotlin/inspector/util/Extension.kt @@ -1,29 +1,33 @@ -package suwayomi.tachidesk.manga.impl.extension +package inspector.util /* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory import eu.kanade.tachiyomi.source.online.HttpSource +import inspector.util.PackageTools.EXTENSION_FEATURE +import inspector.util.PackageTools.LIB_VERSION_MAX +import inspector.util.PackageTools.LIB_VERSION_MIN +import inspector.util.PackageTools.METADATA_SOURCE_CLASS +import inspector.util.PackageTools.dex2jar +import inspector.util.PackageTools.getPackageInfo +import inspector.util.PackageTools.loadExtensionSources import mu.KotlinLogging -import suwayomi.tachidesk.manga.impl.util.PackageTools.EXTENSION_FEATURE -import suwayomi.tachidesk.manga.impl.util.PackageTools.LIB_VERSION_MAX -import suwayomi.tachidesk.manga.impl.util.PackageTools.LIB_VERSION_MIN -import suwayomi.tachidesk.manga.impl.util.PackageTools.METADATA_SOURCE_CLASS -import suwayomi.tachidesk.manga.impl.util.PackageTools.dex2jar -import suwayomi.tachidesk.manga.impl.util.PackageTools.getPackageInfo -import suwayomi.tachidesk.manga.impl.util.PackageTools.loadExtensionSources import java.io.File object Extension { private val logger = KotlinLogging.logger {} - suspend fun installAPK(tmpDir: File, fetcher: suspend () -> File): Pair> { + suspend fun installApk( + tmpDir: File, + fetcher: suspend () -> File + ): Pair> { val apkFile = fetcher() val jarFile = File(tmpDir, "${apkFile.nameWithoutExtension}.jar") @@ -43,14 +47,19 @@ object Extension { ) } - val className = packageInfo.packageName + packageInfo.applicationInfo.metaData.getString(METADATA_SOURCE_CLASS) + val className = packageInfo.packageName + packageInfo.applicationInfo.metaData.getString( + METADATA_SOURCE_CLASS + ) logger.trace("Main class for extension is $className") dex2jar(apkFile, jarFile) // collect sources from the extension - return packageInfo.packageName to when (val instance = loadExtensionSources(jarFile.absolutePath, className)) { + return packageInfo.packageName to when ( + val instance = + loadExtensionSources(jarFile.absolutePath, className) + ) { is Source -> listOf(instance).filterIsInstance() is SourceFactory -> instance.createSources().filterIsInstance() else -> throw RuntimeException("Unknown source class type! ${instance.javaClass}") diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/PackageTools.kt b/inspector/src/main/kotlin/inspector/util/PackageTools.kt similarity index 95% rename from server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/PackageTools.kt rename to inspector/src/main/kotlin/inspector/util/PackageTools.kt index 1c36651..57f3f76 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/PackageTools.kt +++ b/inspector/src/main/kotlin/inspector/util/PackageTools.kt @@ -1,11 +1,12 @@ -package suwayomi.tachidesk.manga.impl.util +package inspector.util /* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ import android.content.pm.PackageInfo import android.content.pm.Signature @@ -57,7 +58,8 @@ object PackageTools { .skipExceptions(false) .to(jarFilePath) if (handler.hasException()) { - val errorFile: Path = jarFilePath.parent.resolve("${dexFile.nameWithoutExtension}-error.txt") + val errorFile: Path = + jarFilePath.parent.resolve("${dexFile.nameWithoutExtension}-error.txt") logger.error( """ Detail Error Information in File $errorFile diff --git a/server/src/main/resources/logback.xml b/inspector/src/main/resources/logback.xml similarity index 87% rename from server/src/main/resources/logback.xml rename to inspector/src/main/resources/logback.xml index 1d27933..5bb220c 100644 --- a/server/src/main/resources/logback.xml +++ b/inspector/src/main/resources/logback.xml @@ -8,7 +8,7 @@ - + diff --git a/server/src/main/resources/server-reference.conf b/inspector/src/main/resources/server-reference.conf similarity index 100% rename from server/src/main/resources/server-reference.conf rename to inspector/src/main/resources/server-reference.conf diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt deleted file mode 100644 index c8da357..0000000 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/BuildConfig.kt +++ /dev/null @@ -1,8 +0,0 @@ -package eu.kanade.tachiyomi - -class BuildConfig { - companion object { - const val VERSION_NAME = suwayomi.server.BuildConfig.NAME - val VERSION_CODE = suwayomi.server.BuildConfig.REVISION.trimStart('r').toInt() - } -} diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/util/RxExtension.kt deleted file mode 100644 index e69de29..0000000 diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/Hash.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/Hash.kt deleted file mode 100644 index a890632..0000000 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/util/lang/Hash.kt +++ /dev/null @@ -1,44 +0,0 @@ -package eu.kanade.tachiyomi.util.lang - -import java.security.MessageDigest - -object Hash { - - private val chars = charArrayOf( - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f' - ) - - private val MD5 get() = MessageDigest.getInstance("MD5") - - private val SHA256 get() = MessageDigest.getInstance("SHA-256") - - fun sha256(bytes: ByteArray): String { - return encodeHex(SHA256.digest(bytes)) - } - - fun sha256(string: String): String { - return sha256(string.toByteArray()) - } - - fun md5(bytes: ByteArray): String { - return encodeHex(MD5.digest(bytes)) - } - - fun md5(string: String): String { - return md5(string.toByteArray()) - } - - private fun encodeHex(data: ByteArray): String { - val l = data.size - val out = CharArray(l shl 1) - var i = 0 - var j = 0 - while (i < l) { - out[j++] = chars[(240 and data[i].toInt()).ushr(4)] - out[j++] = chars[15 and data[i].toInt()] - i++ - } - return String(out) - } -} diff --git a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt b/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt deleted file mode 100644 index 12a05c4..0000000 --- a/server/src/main/kotlin/suwayomi/tachidesk/server/ServerSetup.kt +++ /dev/null @@ -1,33 +0,0 @@ -package suwayomi.tachidesk.server - -/* - * Copyright (C) Contributors to the Suwayomi project - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at https://mozilla.org/MPL/2.0/. - */ - -import eu.kanade.tachiyomi.App -import mu.KotlinLogging -import org.kodein.di.DI -import org.kodein.di.conf.global -import suwayomi.server.BuildConfig -import xyz.nulldev.androidcompat.AndroidCompat -import xyz.nulldev.androidcompat.AndroidCompatInitializer -import xyz.nulldev.ts.config.ConfigKodeinModule - -private val logger = KotlinLogging.logger {} - -val androidCompat by lazy { AndroidCompat() } - -fun applicationSetup() { - logger.info("Running Inspector ${BuildConfig.VERSION} revision ${BuildConfig.REVISION}") - - // Load config API - DI.global.addImport(ConfigKodeinModule().create()) - // Load Android compatibility dependencies - AndroidCompatInitializer().init() - // start app - androidCompat.startApp(App()) -} diff --git a/server/src/test/resources/server-reference.conf b/server/src/test/resources/server-reference.conf deleted file mode 100644 index 9e49ccd..0000000 --- a/server/src/test/resources/server-reference.conf +++ /dev/null @@ -1,13 +0,0 @@ -# Server ip and port bindings -server.ip = "0.0.0.0" -server.port = 4567 - -# Socks5 proxy -server.socksProxy = false -server.socksProxyHost = "" -server.socksProxyPort = "" - -# misc -server.debugLogsEnabled = true -server.systemTrayEnabled = false -server.initialOpenInBrowserEnabled = true diff --git a/settings.gradle.kts b/settings.gradle.kts index b63917d..c0fce37 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,5 @@ rootProject.name = "Tachiyomi Extensions Inspector" -include("server") include("AndroidCompat") -include("AndroidCompat:Config") \ No newline at end of file +include("AndroidCompat:Config") +include("inspector")