Skip to content

Commit 0cd5e05

Browse files
committed
MediaCCCLH: use substring instead of replace; improve a bit tests, return Collections.emptyList(); instead of null where it's annotated @nonnull
1 parent f742a6b commit 0cd5e05

3 files changed

Lines changed: 20 additions & 5 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import javax.annotation.Nonnull;
1717
import java.io.IOException;
1818
import java.util.ArrayList;
19+
import java.util.Collections;
1920
import java.util.List;
2021
import java.util.Locale;
2122

@@ -104,13 +105,13 @@ public String getUploaderAvatarUrl() throws ParsingException {
104105
@Nonnull
105106
@Override
106107
public String getDashMpdUrl() throws ParsingException {
107-
return null;
108+
return "";
108109
}
109110

110111
@Nonnull
111112
@Override
112113
public String getHlsUrl() throws ParsingException {
113-
return null;
114+
return "";
114115
}
115116

116117
@Override
@@ -170,14 +171,16 @@ public List<VideoStream> getVideoOnlyStreams() throws IOException, ExtractionExc
170171
return null;
171172
}
172173

174+
@Nonnull
173175
@Override
174176
public List<SubtitlesStream> getSubtitlesDefault() throws IOException, ExtractionException {
175-
return null;
177+
return Collections.emptyList();
176178
}
177179

180+
@Nonnull
178181
@Override
179182
public List<SubtitlesStream> getSubtitles(final MediaFormat format) throws IOException, ExtractionException {
180-
return null;
183+
return Collections.emptyList();
181184
}
182185

183186
@Override

extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/linkHandler/MediaCCCStreamLinkHandlerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class MediaCCCStreamLinkHandlerFactory extends LinkHandlerFactory {
1414
public String getId(String urlString) throws ParsingException {
1515
if (urlString.startsWith("https://api.media.ccc.de/public/events/") &&
1616
!urlString.contains("?q=")) {
17-
return urlString.replace("https://api.media.ccc.de/public/events/", "");
17+
return urlString.substring(39); //remove api/public/events part
1818
}
1919

2020
URL url;

extractor/src/test/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCStreamExtractorTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
import org.schabi.newpipe.extractor.NewPipe;
88
import org.schabi.newpipe.extractor.exceptions.ParsingException;
99
import org.schabi.newpipe.extractor.services.media_ccc.extractors.MediaCCCStreamExtractor;
10+
import org.schabi.newpipe.extractor.utils.UtilsTest;
1011

1112
import java.text.ParseException;
1213
import java.text.SimpleDateFormat;
1314
import java.util.Calendar;
1415

1516
import static java.util.Objects.requireNonNull;
1617
import static junit.framework.TestCase.assertEquals;
18+
import static org.schabi.newpipe.extractor.ExtractorAsserts.assertIsSecureUrl;
1719
import static org.schabi.newpipe.extractor.ServiceList.MediaCCC;
1820

1921
/**
@@ -49,16 +51,19 @@ public void testId() throws Exception {
4951

5052
@Test
5153
public void testUrl() throws Exception {
54+
assertIsSecureUrl(extractor.getUrl());
5255
assertEquals("https://api.media.ccc.de/public/events/gpn18-105-tmux-warum-ein-schwarzes-fenster-am-bildschirm-reicht", extractor.getUrl());
5356
}
5457

5558
@Test
5659
public void testOriginalUrl() throws Exception {
60+
assertIsSecureUrl(extractor.getOriginalUrl());
5761
assertEquals("https://media.ccc.de/v/gpn18-105-tmux-warum-ein-schwarzes-fenster-am-bildschirm-reicht", extractor.getOriginalUrl());
5862
}
5963

6064
@Test
6165
public void testThumbnail() throws Exception {
66+
assertIsSecureUrl(extractor.getThumbnailUrl());
6267
assertEquals("https://static.media.ccc.de/media/events/gpn/gpn18/105-hd.jpg", extractor.getThumbnailUrl());
6368
}
6469

@@ -69,11 +74,13 @@ public void testUploaderName() throws Exception {
6974

7075
@Test
7176
public void testUploaderUrl() throws Exception {
77+
assertIsSecureUrl(extractor.getUploaderUrl());
7278
assertEquals("https://api.media.ccc.de/public/conferences/gpn18", extractor.getUploaderUrl());
7379
}
7480

7581
@Test
7682
public void testUploaderAvatarUrl() throws Exception {
83+
assertIsSecureUrl(extractor.getUploaderAvatarUrl());
7784
assertEquals("https://static.media.ccc.de/media/events/gpn/gpn18/logo.png", extractor.getUploaderAvatarUrl());
7885
}
7986

@@ -122,16 +129,19 @@ public void testId() throws Exception {
122129

123130
@Test
124131
public void testUrl() throws Exception {
132+
assertIsSecureUrl(extractor.getUrl());
125133
assertEquals("https://api.media.ccc.de/public/events/36c3-10565-what_s_left_for_private_messaging", extractor.getUrl());
126134
}
127135

128136
@Test
129137
public void testOriginalUrl() throws Exception {
138+
assertIsSecureUrl(extractor.getOriginalUrl());
130139
assertEquals("https://media.ccc.de/v/36c3-10565-what_s_left_for_private_messaging", extractor.getOriginalUrl());
131140
}
132141

133142
@Test
134143
public void testThumbnail() throws Exception {
144+
assertIsSecureUrl(extractor.getThumbnailUrl());
135145
assertEquals("https://static.media.ccc.de/media/congress/2019/10565-hd.jpg", extractor.getThumbnailUrl());
136146
}
137147

@@ -142,11 +152,13 @@ public void testUploaderName() throws Exception {
142152

143153
@Test
144154
public void testUploaderUrl() throws Exception {
155+
assertIsSecureUrl(extractor.getUploaderUrl());
145156
assertEquals("https://api.media.ccc.de/public/conferences/36c3", extractor.getUploaderUrl());
146157
}
147158

148159
@Test
149160
public void testUploaderAvatarUrl() throws Exception {
161+
assertIsSecureUrl(extractor.getUploaderAvatarUrl());
150162
assertEquals("https://static.media.ccc.de/media/congress/2019/logo.png", extractor.getUploaderAvatarUrl());
151163
}
152164

0 commit comments

Comments
 (0)