Skip to content

Commit ce2bbee

Browse files
committed
add propper localization
1 parent dc0d0bd commit ce2bbee

61 files changed

Lines changed: 436 additions & 286 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

extractor/src/main/java/org/schabi/newpipe/extractor/Downloader.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.schabi.newpipe.extractor;
22

33
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
4+
import org.schabi.newpipe.extractor.utils.Localization;
45

56
import java.io.IOException;
67
import java.util.Map;
@@ -32,11 +33,11 @@ public interface Downloader {
3233
* but set the HTTP header field "Accept-Language" to the supplied string.
3334
*
3435
* @param siteUrl the URL of the text file to return the contents of
35-
* @param language the language (usually a 2-character code) to set as the preferred language
36+
* @param localization the language and country (usually a 2-character code for each)
3637
* @return the contents of the specified text file
3738
* @throws IOException
3839
*/
39-
String download(String siteUrl, String language) throws IOException, ReCaptchaException;
40+
String download(String siteUrl, Localization localization) throws IOException, ReCaptchaException;
4041

4142
/**
4243
* Download the text file at the supplied URL as in download(String),

extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
44
import org.schabi.newpipe.extractor.exceptions.ParsingException;
55
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
6+
import org.schabi.newpipe.extractor.utils.Localization;
67

78
import javax.annotation.Nonnull;
89
import javax.annotation.Nullable;
@@ -16,17 +17,19 @@ public abstract class Extractor {
1617
private final StreamingService service;
1718

1819
private final LinkHandler linkHandler;
20+
private final Localization localization;
1921

2022
@Nullable
2123
private boolean pageFetched = false;
2224
private final Downloader downloader;
2325

24-
public Extractor(final StreamingService service, final LinkHandler linkHandler) {
26+
public Extractor(final StreamingService service, final LinkHandler linkHandler, final Localization localization) {
2527
if(service == null) throw new NullPointerException("service is null");
2628
if(linkHandler == null) throw new NullPointerException("LinkHandler is null");
2729
this.service = service;
2830
this.linkHandler = linkHandler;
2931
this.downloader = NewPipe.getDownloader();
32+
this.localization = localization;
3033
if(downloader == null) throw new NullPointerException("downloader is null");
3134
}
3235

@@ -100,4 +103,9 @@ public int getServiceId() {
100103
public Downloader getDownloader() {
101104
return downloader;
102105
}
106+
107+
@Nonnull
108+
public Localization getLocalization() {
109+
return localization;
110+
}
103111
}

extractor/src/main/java/org/schabi/newpipe/extractor/ListExtractor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
44
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
5+
import org.schabi.newpipe.extractor.utils.Localization;
56

67
import javax.annotation.Nonnull;
78
import java.io.IOException;
@@ -13,8 +14,8 @@
1314
*/
1415
public abstract class ListExtractor<R extends InfoItem> extends Extractor {
1516

16-
public ListExtractor(StreamingService service, ListLinkHandler linkHandler) {
17-
super(service, linkHandler);
17+
public ListExtractor(StreamingService service, ListLinkHandler linkHandler, Localization localization) {
18+
super(service, linkHandler, localization);
1819
}
1920

2021
/**

extractor/src/main/java/org/schabi/newpipe/extractor/NewPipe.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*/
2222

2323
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
24+
import org.schabi.newpipe.extractor.utils.Localization;
2425

2526
import java.util.List;
2627

@@ -29,12 +30,14 @@
2930
*/
3031
public class NewPipe {
3132
private static Downloader downloader = null;
33+
private static Localization localization = null;
3234

3335
private NewPipe() {
3436
}
3537

36-
public static void init(Downloader d) {
38+
public static void init(Downloader d, Localization l) {
3739
downloader = d;
40+
localization = l;
3841
}
3942

4043
public static Downloader getDownloader() {
@@ -95,4 +98,12 @@ public static String getNameOfService(int id) {
9598
return "<unknown>";
9699
}
97100
}
101+
102+
public static void setLocalization(Localization localization) {
103+
NewPipe.localization = localization;
104+
}
105+
106+
public static Localization getLocalization() {
107+
return localization;
108+
}
98109
}

extractor/src/main/java/org/schabi/newpipe/extractor/StreamingService.java

Lines changed: 73 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.schabi.newpipe.extractor.linkhandler.*;
1010
import org.schabi.newpipe.extractor.stream.StreamExtractor;
1111
import org.schabi.newpipe.extractor.subscription.SubscriptionExtractor;
12+
import org.schabi.newpipe.extractor.utils.Localization;
1213

1314
import java.util.Collections;
1415
import java.util.List;
@@ -76,45 +77,99 @@ public String toString() {
7677
////////////////////////////////////////////
7778
// Extractor
7879
////////////////////////////////////////////
79-
public abstract SearchExtractor getSearchExtractor(SearchQueryHandler queryHandler, String contentCountry);
80-
public abstract SuggestionExtractor getSuggestionExtractor();
80+
public abstract SearchExtractor getSearchExtractor(SearchQueryHandler queryHandler, Localization localization);
81+
public abstract SuggestionExtractor getSuggestionExtractor(Localization localization);
8182
public abstract SubscriptionExtractor getSubscriptionExtractor();
82-
public abstract KioskList getKioskList() throws ExtractionException;
83+
public abstract KioskList getKioskList(Localization localization) throws ExtractionException;
84+
85+
public abstract ChannelExtractor getChannelExtractor(ListLinkHandler linkHandler,
86+
Localization localization) throws ExtractionException;
87+
public abstract PlaylistExtractor getPlaylistExtractor(ListLinkHandler linkHandler,
88+
Localization localization) throws ExtractionException;
89+
public abstract StreamExtractor getStreamExtractor(LinkHandler linkHandler,
90+
Localization localization) throws ExtractionException;
91+
////////////////////////////////////////////
92+
// Extractor with default localization
93+
////////////////////////////////////////////
94+
95+
public SearchExtractor getSearchExtractor(SearchQueryHandler queryHandler) {
96+
return getSearchExtractor(queryHandler, NewPipe.getLocalization());
97+
}
98+
99+
public SuggestionExtractor getSuggestionExtractor() {
100+
return getSuggestionExtractor(NewPipe.getLocalization());
101+
}
102+
103+
public KioskList getKioskList() throws ExtractionException {
104+
return getKioskList(NewPipe.getLocalization());
105+
}
106+
107+
public ChannelExtractor getChannelExtractor(ListLinkHandler linkHandler) throws ExtractionException {
108+
return getChannelExtractor(linkHandler, NewPipe.getLocalization());
109+
}
83110

84-
public abstract ChannelExtractor getChannelExtractor(ListLinkHandler urlIdHandler) throws ExtractionException;
85-
public abstract PlaylistExtractor getPlaylistExtractor(ListLinkHandler urlIdHandler) throws ExtractionException;
86-
public abstract StreamExtractor getStreamExtractor(LinkHandler UIHFactory) throws ExtractionException;
111+
public PlaylistExtractor getPlaylistExtractor(ListLinkHandler linkHandler) throws ExtractionException {
112+
return getPlaylistExtractor(linkHandler, NewPipe.getLocalization());
113+
}
114+
115+
public StreamExtractor getStreamExtractor(LinkHandler linkHandler) throws ExtractionException {
116+
return getStreamExtractor(linkHandler, NewPipe.getLocalization());
117+
}
118+
119+
////////////////////////////////////////////
120+
// Extractor without link handler
121+
////////////////////////////////////////////
87122

88-
public SearchExtractor getSearchExtractor(String query, List<String> contentFilter, String sortFilter, String contentCountry) throws ExtractionException {
89-
return getSearchExtractor(getSearchQHFactory().fromQuery(query, contentFilter, sortFilter), contentCountry);
123+
public SearchExtractor getSearchExtractor(String query,
124+
List<String> contentFilter,
125+
String sortFilter,
126+
Localization localization) throws ExtractionException {
127+
return getSearchExtractor(getSearchQHFactory()
128+
.fromQuery(query,
129+
contentFilter,
130+
sortFilter),
131+
localization);
90132
}
91133

92-
public ChannelExtractor getChannelExtractor(String id, List<String> contentFilter, String sortFilter) throws ExtractionException {
93-
return getChannelExtractor(getChannelLHFactory().fromQuery(id, contentFilter, sortFilter));
134+
public ChannelExtractor getChannelExtractor(String id,
135+
List<String> contentFilter,
136+
String sortFilter,
137+
Localization localization) throws ExtractionException {
138+
return getChannelExtractor(getChannelLHFactory().fromQuery(id, contentFilter, sortFilter), localization);
94139
}
95140

96-
public PlaylistExtractor getPlaylistExtractor(String id, List<String> contentFilter, String sortFilter) throws ExtractionException {
97-
return getPlaylistExtractor(getPlaylistLHFactory().fromQuery(id, contentFilter, sortFilter));
141+
public PlaylistExtractor getPlaylistExtractor(String id,
142+
List<String> contentFilter,
143+
String sortFilter,
144+
Localization localization) throws ExtractionException {
145+
return getPlaylistExtractor(getPlaylistLHFactory()
146+
.fromQuery(id,
147+
contentFilter,
148+
sortFilter),
149+
localization);
98150
}
99151

100-
public SearchExtractor getSearchExtractor(String query, String contentCountry) throws ExtractionException {
101-
return getSearchExtractor(getSearchQHFactory().fromQuery(query), contentCountry);
152+
////////////////////////////////////////////
153+
// Short extractor without localization
154+
////////////////////////////////////////////
155+
156+
public SearchExtractor getSearchExtractor(String query) throws ExtractionException {
157+
return getSearchExtractor(getSearchQHFactory().fromQuery(query), NewPipe.getLocalization());
102158
}
103159

104160
public ChannelExtractor getChannelExtractor(String url) throws ExtractionException {
105-
return getChannelExtractor(getChannelLHFactory().fromUrl(url));
161+
return getChannelExtractor(getChannelLHFactory().fromUrl(url), NewPipe.getLocalization());
106162
}
107163

108164
public PlaylistExtractor getPlaylistExtractor(String url) throws ExtractionException {
109-
return getPlaylistExtractor(getPlaylistLHFactory().fromUrl(url));
165+
return getPlaylistExtractor(getPlaylistLHFactory().fromUrl(url), NewPipe.getLocalization());
110166
}
111167

112168
public StreamExtractor getStreamExtractor(String url) throws ExtractionException {
113-
return getStreamExtractor(getStreamLHFactory().fromUrl(url));
169+
return getStreamExtractor(getStreamLHFactory().fromUrl(url), NewPipe.getLocalization());
114170
}
115171

116172

117-
118173
/**
119174
* figure out where the link is pointing to (a channel, video, playlist, etc.)
120175
*/

extractor/src/main/java/org/schabi/newpipe/extractor/SuggestionExtractor.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.schabi.newpipe.extractor;
22

33
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
4+
import org.schabi.newpipe.extractor.utils.Localization;
45

56
import java.io.IOException;
67
import java.util.List;
@@ -28,14 +29,20 @@
2829
public abstract class SuggestionExtractor {
2930

3031
private final int serviceId;
32+
private final Localization localization;
3133

32-
public SuggestionExtractor(int serviceId) {
34+
public SuggestionExtractor(int serviceId, Localization localization) {
3335
this.serviceId = serviceId;
36+
this.localization = localization;
3437
}
3538

36-
public abstract List<String> suggestionList(String query, String contentCountry) throws IOException, ExtractionException;
39+
public abstract List<String> suggestionList(String query) throws IOException, ExtractionException;
3740

3841
public int getServiceId() {
3942
return serviceId;
4043
}
44+
45+
protected Localization getLocalization() {
46+
return localization;
47+
}
4148
}

extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelExtractor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.schabi.newpipe.extractor.exceptions.ParsingException;
66
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
77
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
8+
import org.schabi.newpipe.extractor.utils.Localization;
89

910
/*
1011
* Created by Christian Schabesberger on 25.07.16.
@@ -28,8 +29,8 @@
2829

2930
public abstract class ChannelExtractor extends ListExtractor<StreamInfoItem> {
3031

31-
public ChannelExtractor(StreamingService service, ListLinkHandler urlIdHandler) {
32-
super(service, urlIdHandler);
32+
public ChannelExtractor(StreamingService service, ListLinkHandler linkHandler, Localization localization) {
33+
super(service, linkHandler, localization);
3334
}
3435

3536
public abstract String getAvatarUrl() throws ParsingException;

extractor/src/main/java/org/schabi/newpipe/extractor/channel/ChannelInfo.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
1010
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
1111
import org.schabi.newpipe.extractor.utils.ExtractorHelper;
12+
import org.schabi.newpipe.extractor.utils.Localization;
1213

1314
import java.io.IOException;
1415

@@ -34,8 +35,8 @@
3435

3536
public class ChannelInfo extends ListInfo<StreamInfoItem> {
3637

37-
public ChannelInfo(int serviceId, ListLinkHandler urlIdHandler, String name) throws ParsingException {
38-
super(serviceId, urlIdHandler, name);
38+
public ChannelInfo(int serviceId, ListLinkHandler linkHandler, String name) throws ParsingException {
39+
super(serviceId, linkHandler, name);
3940
}
4041

4142
public static ChannelInfo getInfo(String url) throws IOException, ExtractionException {
@@ -48,7 +49,10 @@ public static ChannelInfo getInfo(StreamingService service, String url) throws I
4849
return getInfo(extractor);
4950
}
5051

51-
public static InfoItemsPage<StreamInfoItem> getMoreItems(StreamingService service, String url, String pageUrl) throws IOException, ExtractionException {
52+
public static InfoItemsPage<StreamInfoItem> getMoreItems(StreamingService service,
53+
String url,
54+
String pageUrl,
55+
Localization localization) throws IOException, ExtractionException {
5256
return service.getChannelExtractor(url).getPage(pageUrl);
5357
}
5458

extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskExtractor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.schabi.newpipe.extractor.exceptions.ParsingException;
2626
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
2727
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
28+
import org.schabi.newpipe.extractor.utils.Localization;
2829

2930
import javax.annotation.Nonnull;
3031

@@ -33,9 +34,10 @@ public abstract class KioskExtractor extends ListExtractor<StreamInfoItem> {
3334
private final String id;
3435

3536
public KioskExtractor(StreamingService streamingService,
36-
ListLinkHandler urlIdHandler,
37-
String kioskId) {
38-
super(streamingService, urlIdHandler);
37+
ListLinkHandler linkHandler,
38+
String kioskId,
39+
Localization localization) {
40+
super(streamingService, linkHandler, localization);
3941
this.id = kioskId;
4042
}
4143

extractor/src/main/java/org/schabi/newpipe/extractor/kiosk/KioskInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131

3232
public class KioskInfo extends ListInfo<StreamInfoItem> {
3333

34-
private KioskInfo(int serviceId, ListLinkHandler urlIdHandler, String name) throws ParsingException {
35-
super(serviceId, urlIdHandler, name);
34+
private KioskInfo(int serviceId, ListLinkHandler linkHandler, String name) throws ParsingException {
35+
super(serviceId, linkHandler, name);
3636
}
3737

3838
public static ListExtractor.InfoItemsPage<StreamInfoItem> getMoreItems(StreamingService service,

0 commit comments

Comments
 (0)