Skip to content
This repository was archived by the owner on Nov 26, 2023. It is now read-only.

Commit ba012ae

Browse files
committed
It compiles now
1 parent d1aa852 commit ba012ae

15 files changed

+44
-1071
lines changed

build.gradle.kts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,19 @@ version = "1.0-SNAPSHOT"
2828
repositories {
2929
jcenter()
3030

31-
maven {
32-
url = uri("https://maven.notfab.net/Hosted")
33-
}
34-
3531
maven {
3632
url = uri("https://jitpack.io")
3733
}
3834
}
3935

4036
dependencies {
4137
api(group = "com.github.duncte123", name = "lavaplayer", version = "1dff250")
42-
api(group = "net.notfab.cache", name = "cache-client", version = "2.2")
4338
api(group = "io.sentry", name = "sentry-logback", version = "1.7.17")
44-
api(group = "com.google.apis", name = "google-api-services-youtube", version = "v3-rev212-1.25.0")
4539
api(group = "me.duncte123", name = "botCommons", version = "1.0.65")
46-
47-
48-
implementation(group = "se.michaelthelin.spotify", name = "spotify-web-api-java", version = "4.2.1")
4940
}
5041

5142
configure<JavaPluginConvention> {
52-
sourceCompatibility = JavaVersion.VERSION_1_8
43+
sourceCompatibility = JavaVersion.VERSION_11
5344
}
5445

5546
tasks.withType<Wrapper> {

src/main/java/com/dunctebot/sourcemanagers/DuncteBotSources.java

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,38 +20,23 @@
2020
import com.dunctebot.sourcemanagers.extra.YoutubeContextFilterOverride;
2121
import com.dunctebot.sourcemanagers.pornhub.PornHubAudioSourceManager;
2222
import com.dunctebot.sourcemanagers.speech.SpeechAudioSourceManager;
23-
import com.dunctebot.sourcemanagers.spotify.SpotifyAudioSourceManager;
24-
import com.dunctebot.sourcemanagers.youtube.YoutubeAudioSourceManagerOverride;
2523
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
26-
import net.notfab.caching.client.CacheClient;
24+
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager;
2725

2826
public class DuncteBotSources {
2927
public static void registerCustom(AudioPlayerManager playerManager, String speechLanguage,
30-
int playlistPageCount, boolean updateYoutubeData,
31-
String youtubeApiKey, CacheClient cacheClient,
32-
String spotifyClientId, String spotifyClientSecret, int playlistLimit) {
28+
int playlistPageCount, boolean updateYoutubeData) {
3329

34-
final YoutubeAudioSourceManagerOverride youtubeAudioSourceManager = new YoutubeAudioSourceManagerOverride(
35-
cacheClient,
36-
youtubeApiKey
37-
);
30+
final YoutubeAudioSourceManager youtubeSource = playerManager.source(YoutubeAudioSourceManager.class);
31+
youtubeSource.setPlaylistPageCount(playlistPageCount);
32+
youtubeSource.getMainHttpConfiguration()
33+
.setHttpContextFilter(
34+
new YoutubeContextFilterOverride(updateYoutubeData, youtubeSource.getHttpInterface())
35+
);
3836

39-
youtubeAudioSourceManager.setPlaylistPageCount(playlistPageCount);
40-
youtubeAudioSourceManager.getMainHttpConfiguration().setHttpContextFilter(new YoutubeContextFilterOverride(updateYoutubeData));
41-
42-
playerManager.registerSourceManager(
43-
new SpotifyAudioSourceManager(
44-
youtubeAudioSourceManager,
45-
spotifyClientId,
46-
spotifyClientSecret,
47-
youtubeApiKey,
48-
playlistLimit
49-
)
50-
);
5137
playerManager.registerSourceManager(new ClypitAudioSourceManager());
5238
playerManager.registerSourceManager(new SpeechAudioSourceManager(speechLanguage));
5339
playerManager.registerSourceManager(new PornHubAudioSourceManager());
54-
playerManager.registerSourceManager(youtubeAudioSourceManager);
5540

5641
}
5742
}

src/main/java/com/dunctebot/sourcemanagers/extra/LimitReachedException.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/main/java/com/dunctebot/sourcemanagers/extra/YoutubeContextFilterOverride.java

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,40 @@
1717
package com.dunctebot.sourcemanagers.extra;
1818

1919
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeHttpContextFilter;
20+
import com.sedmelluq.discord.lavaplayer.tools.DataFormatTools;
21+
import com.sedmelluq.discord.lavaplayer.tools.JsonBrowser;
22+
import com.sedmelluq.discord.lavaplayer.tools.io.HttpInterface;
2023
import io.sentry.Sentry;
24+
import org.apache.commons.io.IOUtils;
25+
import org.apache.http.client.methods.CloseableHttpResponse;
26+
import org.apache.http.client.methods.HttpGet;
2127
import org.apache.http.client.methods.HttpUriRequest;
2228
import org.apache.http.client.protocol.HttpClientContext;
2329

2430
import java.io.Closeable;
2531
import java.io.IOException;
32+
import java.nio.charset.StandardCharsets;
2633
import java.util.concurrent.Executors;
2734
import java.util.concurrent.ScheduledExecutorService;
2835
import java.util.concurrent.TimeUnit;
2936

30-
import static com.dunctebot.sourcemanagers.extra.YoutubeUtils.getYoutubeHeaderDetails;
31-
3237
public class YoutubeContextFilterOverride extends YoutubeHttpContextFilter implements Closeable {
3338
private YoutubeVersionData youtubeVersionData = null;
39+
private final HttpInterface httpInterface;
3440
private final ScheduledExecutorService dataUpdateThread = Executors.newSingleThreadScheduledExecutor((r) -> {
3541
final Thread t = new Thread();
3642
t.setName("YouTube-data-updater");
3743
t.setDaemon(true);
3844
return t;
3945
});
4046

41-
public YoutubeContextFilterOverride() {
42-
this(true);
47+
public YoutubeContextFilterOverride(HttpInterface httpInterface) {
48+
this(true, httpInterface);
4349
}
4450

45-
public YoutubeContextFilterOverride(boolean shouldUpdate) {
51+
public YoutubeContextFilterOverride(boolean shouldUpdate, HttpInterface httpInterface) {
52+
this.httpInterface = httpInterface;
53+
4654
if (shouldUpdate) {
4755
dataUpdateThread.scheduleAtFixedRate(this::updateYoutubeData, 0L, 1L, TimeUnit.DAYS);
4856
}
@@ -56,6 +64,22 @@ private void updateYoutubeData() {
5664
}
5765
}
5866

67+
private YoutubeVersionData getYoutubeHeaderDetails() throws IOException {
68+
final HttpGet httpGet = new HttpGet("https://www.youtube.com/");
69+
httpGet.setHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36");
70+
71+
try (final CloseableHttpResponse response = this.httpInterface.execute(httpGet)) {
72+
final String html = IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
73+
74+
final String extracted = DataFormatTools.extractBetween(html,
75+
"window.ytplayer = {};ytcfg.set(",
76+
");ytcfg.set(");
77+
final JsonBrowser json = JsonBrowser.parse(extracted);
78+
79+
return YoutubeVersionData.fromBrowser(json);
80+
}
81+
}
82+
5983
@Override
6084
public void onRequest(HttpClientContext context, HttpUriRequest request, boolean isRepetition) {
6185
super.onRequest(context, request, isRepetition);
@@ -71,7 +95,7 @@ public void onRequest(HttpClientContext context, HttpUriRequest request, boolean
7195
}
7296

7397
@Override
74-
public void close() throws IOException {
98+
public void close() {
7599
dataUpdateThread.shutdown();
76100
}
77101
}

src/main/java/com/dunctebot/sourcemanagers/extra/YoutubePlaylistMetadata.java

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)