From 14038a6096fdf5ae50b5cd90b8c608b639af3f14 Mon Sep 17 00:00:00 2001 From: appujet Date: Wed, 1 May 2024 21:36:57 +0530 Subject: [PATCH] update for test --- .github/workflows/release-beta.yml | 31 ++++++++++++++++ build.gradle.kts | 5 ++- .../com/github/appujet/jiosaavn/Utils.java | 35 +++++++++++++++++++ .../source/JioSaavnAudioSourceManager.java | 17 ++++++++- plugin/build.gradle.kts | 2 ++ 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release-beta.yml diff --git a/.github/workflows/release-beta.yml b/.github/workflows/release-beta.yml new file mode 100644 index 0000000..2dac313 --- /dev/null +++ b/.github/workflows/release-beta.yml @@ -0,0 +1,31 @@ +name: Release Beta + +on: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + path: './' + fetch-depth: 0 + - name: Set up java + uses: actions/setup-java@v2 + with: + distribution: 'zulu' + java-version: '17' + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: dependencies + run: ./gradlew --no-daemon dependencies + - name: Release to github + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + RELEASE_TARGET: ${{ github.sha }} + PRERELEASE: true + run: ./gradlew --no-daemon build githubRelease \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 6e94bba..0e7fafc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,10 @@ plugins { id("com.github.johnrengelman.shadow") version "8.1.1" apply false id("com.github.breadmoirai.github-release") version "2.4.1" apply false } - +java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 +} java { toolchain { languageVersion = JavaLanguageVersion.of(17) diff --git a/main/src/main/java/com/github/appujet/jiosaavn/Utils.java b/main/src/main/java/com/github/appujet/jiosaavn/Utils.java index 8b868ef..0e41e9b 100644 --- a/main/src/main/java/com/github/appujet/jiosaavn/Utils.java +++ b/main/src/main/java/com/github/appujet/jiosaavn/Utils.java @@ -7,6 +7,8 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.Iterator; public class Utils { @@ -19,4 +21,37 @@ public static JsonBrowser fetchJson(String pageURl, ExtendedAudioSourceManager s throw new RuntimeException(e); } } + private static Iterable cycle(String i) { + return () -> new Iterator<>() { + private int index = -1; + + @Override + public boolean hasNext() { + return true; + } + + @Override + public Character next() { + index = (index + 1) % i.length(); + return i.charAt(index); + } + }; + } + + private static String decryptXor(String key, String cipher) { + StringBuilder decrypted = new StringBuilder(); + Iterator keyIterator = cycle(key).iterator(); + for (char ch : cipher.toCharArray()) { + if (!keyIterator.hasNext()) + keyIterator = cycle(key).iterator(); // restart key iterator if it reaches the end + char k = keyIterator.next(); + decrypted.append((char) (ch ^ k)); + } + return decrypted.toString(); + } + + public static String decryptUrl(String key, String url) { + String xorUrl = new String(Base64.getDecoder().decode(url)); + return decryptXor(key, xorUrl); + } } \ No newline at end of file diff --git a/main/src/main/java/com/github/appujet/jiosaavn/source/JioSaavnAudioSourceManager.java b/main/src/main/java/com/github/appujet/jiosaavn/source/JioSaavnAudioSourceManager.java index 483f3d6..a5b8df9 100644 --- a/main/src/main/java/com/github/appujet/jiosaavn/source/JioSaavnAudioSourceManager.java +++ b/main/src/main/java/com/github/appujet/jiosaavn/source/JioSaavnAudioSourceManager.java @@ -78,7 +78,22 @@ public boolean isTrackEncodable(AudioTrack audioTrack) { @Override public void encodeTrack(AudioTrack audioTrack, DataOutput dataOutput) { - +// No need for encoding, just pass the track info without serialization + JioSaavnAudioTrack jioSaavnAudioTrack = (JioSaavnAudioTrack) audioTrack; + AudioTrackInfo trackInfo = jioSaavnAudioTrack.getInfo(); + try { + // Write track info properties individually + dataOutput.writeUTF(trackInfo.title); + dataOutput.writeUTF(trackInfo.author); + dataOutput.writeLong(trackInfo.length); + dataOutput.writeUTF(trackInfo.identifier); + dataOutput.writeBoolean(trackInfo.isStream); + dataOutput.writeUTF(trackInfo.uri); + dataOutput.writeUTF(trackInfo.artworkUrl); + // If there are additional properties, write them here + } catch (IOException e) { + throw new RuntimeException("Error encoding track", e); + } } @Override diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 274284d..7b282aa 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -14,6 +14,7 @@ val archivesBaseName = "jiosaavn-plugin" val preRelease = System.getenv("PRERELEASE") == "true" val verName = "${if (preRelease) "PRE_" else ""}$pluginVersion${if(preRelease) "_${System.getenv("GITHUB_RUN_NUMBER")}" else ""}" + lavalinkPlugin { name = "jiosaavn-plugin" path = "$group.plugin" @@ -23,6 +24,7 @@ lavalinkPlugin { serverVersion = libs.versions.lavalink.server } + dependencies { implementation(projects.main) }