Skip to content

Commit 77a74b8

Browse files
committed
Add "originalUrl" field to Info's object
1 parent 3fe9922 commit 77a74b8

6 files changed

Lines changed: 38 additions & 16 deletions

File tree

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

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,19 @@ public abstract class Info implements Serializable {
1313
* e.g. Youtube: https://www.youtube.com/watch?v=RER5qCTzZ7 > RER5qCTzZ7
1414
*/
1515
private final String id;
16+
/**
17+
* Different than the {@link #originalUrl} in the sense that it <i>may</i> be set as a cleaned url.
18+
*
19+
* @see UrlIdHandler#cleanUrl(String)
20+
* @see Extractor#getCleanUrl()
21+
*/
1622
private final String url;
23+
/**
24+
* The url used to start the extraction of this {@link Info} object.
25+
*
26+
* @see Extractor#getOriginalUrl()
27+
*/
28+
private final String originalUrl;
1729
private final String name;
1830

1931
private final List<Throwable> errors = new ArrayList<>();
@@ -26,16 +38,18 @@ public void addAllErrors(Collection<Throwable> errors) {
2638
this.errors.addAll(errors);
2739
}
2840

29-
public Info(int serviceId, String id, String url, String name) {
41+
public Info(int serviceId, String id, String url, String originalUrl, String name) {
3042
this.serviceId = serviceId;
3143
this.id = id;
3244
this.url = url;
45+
this.originalUrl = originalUrl;
3346
this.name = name;
3447
}
3548

3649
@Override
3750
public String toString() {
38-
return getClass().getSimpleName() + "[url=\"" + url + "\", name=\"" + name + "\"]";
51+
final String ifDifferentString = !url.equals(originalUrl) ? " (originalUrl=\"" + originalUrl + "\")" : "";
52+
return getClass().getSimpleName() + "[url=\"" + url + "\"" + ifDifferentString + ", name=\"" + name + "\"]";
3953
}
4054

4155
public int getServiceId() {
@@ -50,6 +64,10 @@ public String getUrl() {
5064
return url;
5165
}
5266

67+
public String getOriginalUrl() {
68+
return originalUrl;
69+
}
70+
5371
public String getName() {
5472
return name;
5573
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ public abstract class ListInfo<T extends InfoItem> extends Info {
66
private List<T> relatedItems;
77
private String nextPageUrl = null;
88

9-
public ListInfo(int serviceId, String id, String url, String name) {
10-
super(serviceId, id, url, name);
9+
public ListInfo(int serviceId, String id, String url, String originalUrl, String name) {
10+
super(serviceId, id, url, originalUrl, name);
1111
}
1212

1313
public List<T> getRelatedItems() {

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232

3333
public class ChannelInfo extends ListInfo<StreamInfoItem> {
3434

35-
public ChannelInfo(int serviceId, String url, String id, String name) {
36-
super(serviceId, id, url, name);
35+
public ChannelInfo(int serviceId, String id, String url, String originalUrl, String name) {
36+
super(serviceId, id, url, originalUrl, name);
3737
}
3838

3939
public static ChannelInfo getInfo(String url) throws IOException, ExtractionException {
@@ -55,10 +55,11 @@ public static ChannelInfo getInfo(ChannelExtractor extractor) throws IOException
5555
// important data
5656
int serviceId = extractor.getServiceId();
5757
String url = extractor.getCleanUrl();
58+
String originalUrl = extractor.getOriginalUrl();
5859
String id = extractor.getId();
5960
String name = extractor.getName();
6061

61-
ChannelInfo info = new ChannelInfo(serviceId, url, id, name);
62+
ChannelInfo info = new ChannelInfo(serviceId, id, url, originalUrl, name);
6263

6364

6465
try {

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232

3333
public class KioskInfo extends ListInfo<StreamInfoItem> {
3434

35-
private KioskInfo(int serviceId, String id, String url, String name) {
36-
super(serviceId, id, url, name);
35+
private KioskInfo(int serviceId, String id, String url, String originalUrl, String name) {
36+
super(serviceId, id, url, originalUrl, name);
3737
}
3838

3939
public static ListExtractor.InfoItemsPage<StreamInfoItem> getMoreItems(StreamingService service,
@@ -72,8 +72,9 @@ public static KioskInfo getInfo(KioskExtractor extractor) throws ExtractionExcep
7272
String name = extractor.getName();
7373
String id = extractor.getId();
7474
String url = extractor.getCleanUrl();
75+
String originalUrl = extractor.getOriginalUrl();
7576

76-
KioskInfo info = new KioskInfo(serviceId, id, name, url);
77+
KioskInfo info = new KioskInfo(serviceId, id, url, originalUrl, name);
7778

7879
final ListExtractor.InfoItemsPage<StreamInfoItem> itemsPage = ExtractorHelper.getItemsPageOrLogError(info, extractor);
7980
info.setRelatedItems(itemsPage.getItems());

extractor/src/main/java/org/schabi/newpipe/extractor/playlist/PlaylistInfo.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
public class PlaylistInfo extends ListInfo<StreamInfoItem> {
1414

15-
public PlaylistInfo(int serviceId, String id, String url, String name) {
16-
super(serviceId, id, url, name);
15+
public PlaylistInfo(int serviceId, String id, String url, String originalUrl, String name) {
16+
super(serviceId, id, url, originalUrl, name);
1717
}
1818

1919
public static PlaylistInfo getInfo(String url) throws IOException, ExtractionException {
@@ -39,9 +39,10 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws IOExcepti
3939

4040
int serviceId = extractor.getServiceId();
4141
String url = extractor.getCleanUrl();
42+
String originalUrl = extractor.getOriginalUrl();
4243
String id = extractor.getId();
4344
String name = extractor.getName();
44-
PlaylistInfo info = new PlaylistInfo(serviceId, id, url, name);
45+
PlaylistInfo info = new PlaylistInfo(serviceId, id, url, originalUrl, name);
4546

4647
try {
4748
info.setStreamCount(extractor.getStreamCount());

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
@@ -41,8 +41,8 @@ public static class StreamExtractException extends ExtractionException {
4141
}
4242
}
4343

44-
public StreamInfo(int serviceId, String url, StreamType streamType, String id, String name, int ageLimit) {
45-
super(serviceId, id, url, name);
44+
public StreamInfo(int serviceId, String url, String originalUrl, StreamType streamType, String id, String name, int ageLimit) {
45+
super(serviceId, id, url, originalUrl, name);
4646
this.streamType = streamType;
4747
this.ageLimit = ageLimit;
4848
}
@@ -86,6 +86,7 @@ private static StreamInfo extractImportantData(StreamExtractor extractor) throws
8686

8787
int serviceId = extractor.getServiceId();
8888
String url = extractor.getCleanUrl();
89+
String originalUrl = extractor.getOriginalUrl();
8990
StreamType streamType = extractor.getStreamType();
9091
String id = extractor.getId();
9192
String name = extractor.getName();
@@ -99,7 +100,7 @@ private static StreamInfo extractImportantData(StreamExtractor extractor) throws
99100
throw new ExtractionException("Some important stream information was not given.");
100101
}
101102

102-
return new StreamInfo(serviceId, url, streamType, id, name, ageLimit);
103+
return new StreamInfo(serviceId, url, originalUrl, streamType, id, name, ageLimit);
103104
}
104105

105106
private static StreamInfo extractStreams(StreamInfo streamInfo, StreamExtractor extractor) throws ExtractionException {

0 commit comments

Comments
 (0)