diff --git a/.github/scripts/create-repo.sh b/.github/scripts/create-repo.sh index c84762544..ca905c2ff 100755 --- a/.github/scripts/create-repo.sh +++ b/.github/scripts/create-repo.sh @@ -21,6 +21,8 @@ for APK in ${APKS[@]}; do VCODE=$(echo $PACKAGE | grep -Po "versionCode='\K[^']+") VNAME=$(echo $PACKAGE | grep -Po "versionName='\K[^']+") NSFW=$(echo $BADGING | grep -Po "tachiyomi.extension.nsfw' value='\K[^']+") + HASREADME=$(echo $BADGING | grep -Po "tachiyomi.extension.hasReadme' value='\K[^']+") + HASCHANGELOG=$(echo $BADGING | grep -Po "tachiyomi.extension.hasChangelog' value='\K[^']+") APPLICATION=$(echo "$BADGING" | grep application:) LABEL=$(echo $APPLICATION | grep -Po "label='\K[^']+") @@ -51,8 +53,10 @@ for APK in ${APKS[@]}; do --argjson code $VCODE \ --arg version "$VNAME" \ --argjson nsfw $NSFW \ + --argjson hasReadme $HASREADME \ + --argjson hasChangelog $HASCHANGELOG \ --argjson sources "$SOURCE_INFO" \ - '{name:$name, pkg:$pkg, apk:$apk, lang:$lang, code:$code, version:$version, nsfw:$nsfw, sources:$sources}' + '{name:$name, pkg:$pkg, apk:$apk, lang:$lang, code:$code, version:$version, nsfw:$nsfw, hasReadme:$hasReadme, hasChangelog:$hasChangelog, sources:$sources}' done | jq -sr '[.[]]' > index.json diff --git a/common.gradle b/common.gradle index 022ebff73..87d95583a 100644 --- a/common.gradle +++ b/common.gradle @@ -24,11 +24,23 @@ android { versionCode extVersionCode versionName project.ext.properties.getOrDefault("libVersion", "1.2") + ".$extVersionCode" setProperty("archivesBaseName", "tachiyomi-$pkgNameSuffix-v$versionName") + def readmes = project.projectDir.listFiles({ File file -> + file.name.equals("README.md") || + file.name.equals("CHANGELOG.md") + } as FileFilter) + def hasReadme = readmes != null && readmes.any { File file -> + file.name.startsWith("README") + } + def hasChangelog = readmes != null && readmes.any { File file -> + file.name.startsWith("CHANGELOG") + } manifestPlaceholders = [ appName : "Tachiyomi: $extName", extClass: extClass, extFactory: project.ext.properties.getOrDefault("extFactory", ""), nsfw: project.ext.properties.getOrDefault("isNsfw", false) ? 1 : 0, + hasReadme: hasReadme ? 1 : 0, + hasChangelog: hasChangelog ? 1 : 0, ] } diff --git a/core/AndroidManifest.xml b/core/AndroidManifest.xml index 42882ce0e..77ee6b239 100644 --- a/core/AndroidManifest.xml +++ b/core/AndroidManifest.xml @@ -9,6 +9,8 @@ + + diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/MangaBoxGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/MangaBoxGenerator.kt index d4d886f4f..c1050d590 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/MangaBoxGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/MangaBoxGenerator.kt @@ -9,7 +9,7 @@ class MangaBoxGenerator : ThemeSourceGenerator { override val themeClass = "MangaBox" - override val baseVersionCode: Int = 4 + override val baseVersionCode: Int = 5 override val sources = listOf( SingleLang("Mangakakalot", "https://mangakakalot.com", "en", overrideVersionCode = 3), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/README.md b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/README.md new file mode 100644 index 000000000..2e3f59e28 --- /dev/null +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangabox/README.md @@ -0,0 +1,15 @@ +# MangaBox + +Table of Content +- [FAQ](#FAQ) + +[Uncomment this if needed; and replace ( and ) with ( and )]: <> (- [Guides](#Guides)) + +Don't find the question you are look for go check out our general FAQs and Guides over at [Extension FAQ](https://tachiyomi.org/help/faq/#extensions) or [Getting Started](https://tachiyomi.org/help/guides/getting-started/#installation) + +## FAQ + +#### What do `Page list is empty` and `Source URL has changed` mean? +The former **Mangabox** extensions have created new entries for many of the manga on their websites. The old entries are obsolete and will not work. To resolve this, [migrate](/help/guides/source-migration/) the manga from the source to itself to get the new entry, or better yet, to a different source entirely to avoid similar errors in the future. + +[Uncomment this if needed]: <> (## Guides) \ No newline at end of file diff --git a/multisrc/src/main/java/generator/ThemeSourceGenerator.kt b/multisrc/src/main/java/generator/ThemeSourceGenerator.kt index 7cb4e2504..a12ae39ef 100644 --- a/multisrc/src/main/java/generator/ThemeSourceGenerator.kt +++ b/multisrc/src/main/java/generator/ThemeSourceGenerator.kt @@ -131,12 +131,33 @@ ${placeholders.map { "${" ".repeat(28)}${it.key}: \"${it.value}\""}.joinToString writeAndroidManifest(projectAndroidManifestFile, manifestOverridePath, defaultAndroidManifestPath) writeSourceClasses(projectSrcPath, srcOverridePath, source, themePkg, themeClass) + copyThemeReadmes(userDir, themePkg, projectRootPath) + copyThemeClasses(userDir, themePkg, projectRootPath) copyResFiles(resOverridePath, defaultResPath, source, projectRootPath) } } + private fun copyThemeReadmes(userDir: String, themePkg: String, projectRootPath: String) { + val sourcePath = "$userDir/multisrc/src/main/java/${themeSuffix(themePkg, "/")}" + val sourceFile = File(sourcePath) + val destinationPath = "$projectRootPath" + + val destinationFile = File(destinationPath) + destinationFile.mkdirs() + + sourceFile.list()!! + .filter { it.endsWith("README.md") || it.endsWith("CHANGELOG.md") } + .forEach { + Files.copy( + File("$sourcePath/$it").toPath(), + File("$destinationPath/$it").toPath(), + StandardCopyOption.REPLACE_EXISTING + ) + } + } + private fun copyThemeClasses(userDir: String, themePkg: String, projectRootPath: String) { val themeSrcPath = "$userDir/multisrc/src/main/java/${themeSuffix(themePkg, "/")}" val themeSrcFile = File(themeSrcPath) diff --git a/src/all/komga/build.gradle b/src/all/komga/build.gradle index daa7a6d50..2b5af671c 100644 --- a/src/all/komga/build.gradle +++ b/src/all/komga/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Komga' pkgNameSuffix = 'all.komga' extClass = '.KomgaFactory' - extVersionCode = 36 + extVersionCode = 37 } dependencies { diff --git a/src/all/mangadex/README.md b/src/all/mangadex/README.md new file mode 100644 index 000000000..1117a66c9 --- /dev/null +++ b/src/all/mangadex/README.md @@ -0,0 +1,54 @@ +# MangaDex + +Table of Content +- [FAQ](#FAQ) + - [Version 5 API Rewrite](#Version 5 API Rewrite) +- [Guides](#Guides) + - [How can I block particular Scanlator Groups?](#How can I block particular Scanlator Groups?) + +Don't find the question you are look for go check out our general FAQs and Guides over at [Extension FAQ](https://tachiyomi.org/help/faq/#extensions) or [Getting Started](https://tachiyomi.org/help/guides/getting-started/#installation) + +## FAQ + +### Version 5 API Rewrite + +#### Why are all my manga saying "Manga ID format has changed, migrate from MangaDex to MangaDex to continue reading"? +You need to [migrate](https://tachiyomi.org/help/guides/source-migration/) all your MangaDex manga from MangaDex to MangaDex as MangaDex has changed their manga ID system from IDs to UUIDs. + +#### Why can I not restore from a JSON backup? +JSON backups are now unusable due to the ID change. You will have to manually re-add your manga. + +## Guides + +### How can I block particular Scanlator Groups? + +The **MangaDex** extension allows blocking **Scanlator Groups**. Chapters uploaded by a **Blocked Scanlator Group** will not show up in **Latest** or in **Manga feed** (chapters list). For now, you can only block Groups by entering their UUIDs manually. + +Follow the following steps to easily block a group from the Tachiyomi MangaDex extension: + +A. Finding the **UUIDs**: +- Go to [https://mangadex.org](https://mangadex.org) and for the Scanlation Group that you wish to block and view their Group Details +- Using the URL of this page, get the 16-digit alphanumeric string which will be the UUID for that scanlation group +- For Example: + * The Group *Tristan's test scans* has the URL + - [https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans](https://mangadex.org/group/6410209a-0f39-4f51-a139-bc559ad61a4f/tristan-s-test-scans) + - Therefore, their UUID will be `6410209a-0f39-4f51-a139-bc559ad61a4f` + * Other Examples include: + + Azuki Manga | `5fed0576-8b94-4f9a-b6a7-08eecd69800d` + + Bilibili Comics | `06a9fecb-b608-4f19-b93c-7caab06b7f44` + + Comikey | `8d8ecf83-8d42-4f8c-add8-60963f9f28d9` + + MangaPlus | `4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb` + +B. Blocking a group using their UUID in Tachiyomi MangaDex extension `v1.2.150+`: +1. Go to . +1. Click on **MangaDex** extension and then under your Language of choice. +1. Tap on the option **Block Groups by UUID** and enter the UUIDs. + - By Default, the following groups are blocked: + ``` + Azuki Manga, Bilibili Comics, Comikey & MangaPlus + ``` + - Which are entered as: + ``` + 5fed0576-8b94-4f9a-b6a7-08eecd69800d, 06a9fecb-b608-4f19-b93c-7caab06b7f44, + 8d8ecf83-8d42-4f8c-add8-60963f9f28d9, 4f1de6a2-f0c5-4ac5-bce5-02c7dbb67deb + ``` \ No newline at end of file diff --git a/src/all/mangadex/build.gradle b/src/all/mangadex/build.gradle index 265424192..cff45aa13 100644 --- a/src/all/mangadex/build.gradle +++ b/src/all/mangadex/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'MangaDex' pkgNameSuffix = 'all.mangadex' extClass = '.MangaDexFactory' - extVersionCode = 153 + extVersionCode = 154 isNsfw = true } diff --git a/src/en/mangapark/README.md b/src/en/mangapark/README.md new file mode 100644 index 000000000..d39c6dad0 --- /dev/null +++ b/src/en/mangapark/README.md @@ -0,0 +1,20 @@ +# MangaPark + +Table of Content +- [FAQ](#FAQ) + +[Uncomment this if needed; and replace ( and ) with ( and )]: <> (- [Guides](#Guides)) + +Don't find the question you are look for go check out our general FAQs and Guides over at [Extension FAQ](https://tachiyomi.org/help/faq/#extensions) or [Getting Started](https://tachiyomi.org/help/guides/getting-started/#installation) + +## FAQ + +### How do I deal with duplicate chapters? +To solve this issue, follow the below steps. + +1. Go to . +1. Click on **MangaPark** extension and then **Chapter List Source**. +1. Choose an option like **Smart list** or **Prioritize source**. +1. Go back to **MangaPark**'s chapter list and refresh it. + +[Uncomment this if needed]: <> (## Guides) \ No newline at end of file diff --git a/src/en/mangapark/build.gradle b/src/en/mangapark/build.gradle index e50ca041f..91d433365 100644 --- a/src/en/mangapark/build.gradle +++ b/src/en/mangapark/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'MangaPark' pkgNameSuffix = 'en.mangapark' extClass = '.MangaPark' - extVersionCode = 22 + extVersionCode = 23 } apply from: "$rootDir/common.gradle" diff --git a/template/README-REMOVED-TEMPLATE.md b/template/README-REMOVED-TEMPLATE.md new file mode 100644 index 000000000..16150c7a7 --- /dev/null +++ b/template/README-REMOVED-TEMPLATE.md @@ -0,0 +1,11 @@ +# Extension name + +## Why + +Link to the related issue where it is explained why it was removed. +Or a short description to why it was removed. +Or both the related issue link and short description to why + +--- + +Don't find the question you are look for go check out our general FAQs and Guides over at [Extension FAQ](https://tachiyomi.org/help/faq/#extensions) or [Getting Started](https://tachiyomi.org/help/guides/getting-started/#installation) diff --git a/template/README-TEMPLATE.md b/template/README-TEMPLATE.md new file mode 100644 index 000000000..aa964a37d --- /dev/null +++ b/template/README-TEMPLATE.md @@ -0,0 +1,12 @@ +# Extension name + +Table of Content +- [FAQ](#FAQ) + +[Uncomment this if needed; and replace ( and ) with ( and )]: <> (- [Guides](#Guides)) + +Don't find the question you are look for go check out our general FAQs and Guides over at [Extension FAQ](https://tachiyomi.org/help/faq/#extensions) or [Getting Started](https://tachiyomi.org/help/guides/getting-started/#installation) + +## FAQ + +[Uncomment this if needed]: <> (## Guides) \ No newline at end of file