diff --git a/.github/ISSUE_TEMPLATE/02_request_source.yml b/.github/ISSUE_TEMPLATE/02_request_source.yml index 4fd702eb..2ba1f3f0 100644 --- a/.github/ISSUE_TEMPLATE/02_request_source.yml +++ b/.github/ISSUE_TEMPLATE/02_request_source.yml @@ -48,7 +48,7 @@ body: required: true - label: I have written a title with source name. required: true - - label: I have checked that the extension does not already exist by searching the [GitHub repository](https://github.com/Kohi-den/extensions-source) and verified it does not appear in the code base. + - label: I have checked that the extension does not already exist by searching the [Repository](https://kohiden.xyz/Kohi-den/extensions-source/src/branch/main/src) and verified it does not appear in the code base. required: true - label: I will fill out all of the requested information in this form. required: true diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index 251290d9..edf31bba 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -13,7 +13,7 @@ concurrency: cancel-in-progress: true env: - CI_CHUNK_SIZE: 65 + CI_CHUNK_SIZE: 288 jobs: prepare: @@ -86,7 +86,7 @@ jobs: build-cache-${{ github.event.pull_request.base.sha }}- build-cache- - - name: Build extensions (chunk ${{ matrix.chunk }}) + - name: Build extensions env: CI_CHUNK_NUM: ${{ matrix.chunk }} run: chmod +x ./gradlew && ./gradlew -p src assembleDebug diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index de69d419..419bc51c 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -195,6 +195,10 @@ jobs: - name: Sync repo run: | rsync -a --delete --exclude .git --exclude .gitignore main/repo/ repo --exclude README.md --exclude repo.json + + - name: Increase buffer size + run: | + git config --global http.postBuffer 157286400 - name: Deploy repo uses: https://github.com/EndBug/add-and-commit@v9 diff --git a/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt b/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt index 1e30fb57..fe017e16 100644 --- a/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt +++ b/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt @@ -18,14 +18,33 @@ class VoeExtractor(private val client: OkHttpClient) { private val playlistUtils by lazy { PlaylistUtils(clientDdos) } - private val linkRegex = "(http|https)://([\\w_-]+(?:\\.[\\w_-]+)+)([\\w.,@?^=%&:/~+#-]*[\\w@?^=%&/~+#-])".toRegex() - - private val base64Regex = Regex("'.*'") - - private val scriptBase64Regex = "(let|var)\\s+\\w+\\s*=\\s*'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)';".toRegex() - @Serializable - data class VideoLinkDTO(val file: String) + data class VideoLinkDTO(val source: String) + + private fun decodeVoeData(data: String): String { + val shifted = data.map { char -> + when (char) { + in 'A'..'Z' -> 'A' + (char - 'A' + 13).mod(26) + in 'a'..'z' -> 'a' + (char - 'a' + 13).mod(26) + else -> char + } + }.joinToString() + + val junk = listOf("@$", "^^", "~@", "%?", "*~", "!!", "#&") + var result = shifted + for (part in junk) { + result = result.replace(part, "_") + } + val clean = result.replace("_", "") + + val transformed = String(Base64.decode(clean, Base64.DEFAULT)).map { + (it.code - 3).toChar() + }.joinToString().reversed() + + val decoded = String(Base64.decode(transformed, Base64.DEFAULT)) + + return json.decodeFromString(decoded).source + } fun videosFromUrl(url: String, prefix: String = ""): List