Skip to content

Commit e392b6c

Browse files
committed
getLanguageInfo returns Locale instead of String
so that java can automatically translate with Locale.getDisplayLanguage(), instead of always having English name of the language
1 parent 341372c commit e392b6c

7 files changed

Lines changed: 33 additions & 16 deletions

File tree

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.io.IOException;
1919
import java.util.ArrayList;
2020
import java.util.List;
21+
import java.util.Locale;
2122

2223
public class MediaCCCStreamExtractor extends StreamExtractor {
2324

@@ -248,8 +249,8 @@ public String getLicence() throws ParsingException {
248249
}
249250

250251
@Override
251-
public String getLanguageInfo() throws ParsingException {
252-
return "";
252+
public Locale getLanguageInfo() throws ParsingException {
253+
return null;
253254
}
254255

255256
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.ArrayList;
77
import java.util.Collections;
88
import java.util.List;
9+
import java.util.Locale;
910

1011
import org.jsoup.helper.StringUtil;
1112
import org.schabi.newpipe.extractor.MediaFormat;
@@ -391,7 +392,11 @@ public String getLicence() throws ParsingException {
391392
}
392393

393394
@Override
394-
public String getLanguageInfo() throws ParsingException {
395-
return JsonUtils.getString(json, "language.label");
395+
public Locale getLanguageInfo() throws ParsingException {
396+
try {
397+
return new Locale(JsonUtils.getString(json, "language.id"));
398+
} catch (ParsingException e) {
399+
return null;
400+
}
396401
}
397402
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudStreamExtractor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.ArrayList;
2121
import java.util.Collections;
2222
import java.util.List;
23+
import java.util.Locale;
2324

2425
public class SoundcloudStreamExtractor extends StreamExtractor {
2526
private JsonObject track;
@@ -276,8 +277,8 @@ public String getLicence() throws ParsingException {
276277
}
277278

278279
@Override
279-
public String getLanguageInfo() throws ParsingException {
280-
return "";
280+
public Locale getLanguageInfo() throws ParsingException {
281+
return null;
281282
}
282283

283284
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,8 +1157,8 @@ public String getLicence() throws ParsingException {
11571157
}
11581158

11591159
@Override
1160-
public String getLanguageInfo() throws ParsingException {
1161-
return "";
1160+
public Locale getLanguageInfo() throws ParsingException {
1161+
return null;
11621162
}
11631163

11641164
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamExtractor.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.IOException;
3636
import java.util.Collections;
3737
import java.util.List;
38+
import java.util.Locale;
3839

3940
/**
4041
* Scrapes information from a video/audio streaming service (eg, YouTube).
@@ -390,13 +391,15 @@ protected long getTimestampSeconds(String regexPattern) throws ParsingException
390391
public abstract String getLicence() throws ParsingException;
391392

392393
/**
393-
* The language of the stream.
394-
* If the language is not available you can simply return an empty string.
395-
* @return the licence of the stream or an empty String.
394+
* The locale language of the stream.
395+
* If the language is not available you can simply return null.
396+
* If the language is provided by a language code, you can return
397+
* new Locale(language_code);
398+
* @return the locale language of the stream or null.
396399
* @throws ParsingException
397400
*/
398-
@Nonnull
399-
public abstract String getLanguageInfo() throws ParsingException;
401+
@Nullable
402+
public abstract Locale getLanguageInfo() throws ParsingException;
400403

401404
/**
402405
* The list of tags of the stream.

extractor/src/main/java/org/schabi/newpipe/extractor/stream/StreamInfo.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.io.IOException;
1414
import java.util.ArrayList;
1515
import java.util.List;
16+
import java.util.Locale;
1617

1718
/*
1819
* Created by Christian Schabesberger on 26.08.15.
@@ -349,8 +350,8 @@ private static StreamInfo extractOptionalData(StreamInfo streamInfo, StreamExtra
349350
private String privacy = "";
350351
private String category = "";
351352
private String licence = "";
352-
private String language = "";
353353
private String support = "";
354+
private Locale language = null;
354355
private List<String> tags = new ArrayList<>();
355356

356357
/**
@@ -610,11 +611,11 @@ public void setLicence(String str) {
610611
this.licence = str;
611612
}
612613

613-
public String getLanguageInfo() {
614+
public Locale getLanguageInfo() {
614615
return this.language;
615616
}
616617

617-
public void setLanguageInfo(String lang) {
618+
public void setLanguageInfo(Locale lang) {
618619
this.language = lang;
619620
}
620621

extractor/src/test/java/org/schabi/newpipe/extractor/services/peertube/PeertubeStreamExtractorDefaultTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.text.ParseException;
1212
import java.text.SimpleDateFormat;
1313
import java.util.Calendar;
14+
import java.util.Locale;
1415

1516
import org.junit.BeforeClass;
1617
import org.junit.Ignore;
@@ -154,4 +155,9 @@ public void testGetSupportInformation() throws ExtractionException, IOException
154155
supportInfoExtractor.fetchPage();
155156
assertEquals("https://utip.io/chatsceptique", supportInfoExtractor.getSupportInfo());
156157
}
158+
159+
@Test
160+
public void testGetLanguageInformation() throws ParsingException {
161+
assertEquals(new Locale("en"), extractor.getLanguageInfo());
162+
}
157163
}

0 commit comments

Comments
 (0)