added baseUrl param in linkhandlers. Required for multi instance services
This commit is contained in:
parent
f3a59a6cdc
commit
8a7aa6b9a9
|
@ -2,6 +2,7 @@ package org.schabi.newpipe.extractor.linkhandler;
|
||||||
|
|
||||||
import org.schabi.newpipe.extractor.exceptions.FoundAdException;
|
import org.schabi.newpipe.extractor.exceptions.FoundAdException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 26.07.16.
|
* Created by Christian Schabesberger on 26.07.16.
|
||||||
|
@ -33,18 +34,27 @@ public abstract class LinkHandlerFactory {
|
||||||
public abstract String getUrl(String id) throws ParsingException;
|
public abstract String getUrl(String id) throws ParsingException;
|
||||||
public abstract boolean onAcceptUrl(final String url) throws ParsingException;
|
public abstract boolean onAcceptUrl(final String url) throws ParsingException;
|
||||||
|
|
||||||
|
public String getUrl(String id, String baseUrl) throws ParsingException{
|
||||||
|
return getUrl(id);
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
// Logic
|
// Logic
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
|
||||||
public LinkHandler fromUrl(String url) throws ParsingException {
|
public LinkHandler fromUrl(String url) throws ParsingException {
|
||||||
|
final String baseUrl = Utils.getBaseUrl(url);
|
||||||
|
return fromUrl(url, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public LinkHandler fromUrl(String url, String baseUrl) throws ParsingException {
|
||||||
if(url == null) throw new IllegalArgumentException("url can not be null");
|
if(url == null) throw new IllegalArgumentException("url can not be null");
|
||||||
if(!acceptUrl(url)) {
|
if(!acceptUrl(url)) {
|
||||||
throw new ParsingException("Malformed unacceptable url: " + url);
|
throw new ParsingException("Malformed unacceptable url: " + url);
|
||||||
}
|
}
|
||||||
|
|
||||||
final String id = getId(url);
|
final String id = getId(url);
|
||||||
return new LinkHandler(url, getUrl(id), id);
|
return new LinkHandler(url, getUrl(id,baseUrl), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkHandler fromId(String id) throws ParsingException {
|
public LinkHandler fromId(String id) throws ParsingException {
|
||||||
|
@ -53,6 +63,12 @@ public abstract class LinkHandlerFactory {
|
||||||
return new LinkHandler(url, url, id);
|
return new LinkHandler(url, url, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LinkHandler fromId(String id, String baseUrl) throws ParsingException {
|
||||||
|
if(id == null) throw new IllegalArgumentException("id can not be null");
|
||||||
|
final String url = getUrl(id, baseUrl);
|
||||||
|
return new LinkHandler(url, url, id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When a VIEW_ACTION is caught this function will test if the url delivered within the calling
|
* When a VIEW_ACTION is caught this function will test if the url delivered within the calling
|
||||||
* Intent was meant to be watched with this Service.
|
* Intent was meant to be watched with this Service.
|
||||||
|
@ -65,4 +81,5 @@ public abstract class LinkHandlerFactory {
|
||||||
throw fe;
|
throw fe;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
package org.schabi.newpipe.extractor.linkhandler;
|
package org.schabi.newpipe.extractor.linkhandler;
|
||||||
|
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
@ -15,16 +16,25 @@ public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
public String getSortFilter(String url) throws ParsingException {return ""; }
|
public String getSortFilter(String url) throws ParsingException {return ""; }
|
||||||
public abstract String getUrl(String id, List<String> contentFilter, String sortFilter) throws ParsingException;
|
public abstract String getUrl(String id, List<String> contentFilter, String sortFilter) throws ParsingException;
|
||||||
|
|
||||||
|
public String getUrl(String id, List<String> contentFilter, String sortFilter, String baseUrl) throws ParsingException {
|
||||||
|
return getUrl(id, contentFilter, sortFilter);
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
// Logic
|
// Logic
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ListLinkHandler fromUrl(String url) throws ParsingException {
|
public ListLinkHandler fromUrl(String url) throws ParsingException {
|
||||||
|
String baseUrl = Utils.getBaseUrl(url);
|
||||||
|
return fromUrl(url, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListLinkHandler fromUrl(String url, String baseUrl) throws ParsingException {
|
||||||
if(url == null) throw new IllegalArgumentException("url may not be null");
|
if(url == null) throw new IllegalArgumentException("url may not be null");
|
||||||
|
|
||||||
return new ListLinkHandler(super.fromUrl(url), getContentFilter(url), getSortFilter(url));
|
return new ListLinkHandler(super.fromUrl(url, baseUrl), getContentFilter(url), getSortFilter(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -32,6 +42,11 @@ public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
return new ListLinkHandler(super.fromId(id), new ArrayList<String>(0), "");
|
return new ListLinkHandler(super.fromId(id), new ArrayList<String>(0), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListLinkHandler fromId(String id, String baseUrl) throws ParsingException {
|
||||||
|
return new ListLinkHandler(super.fromId(id, baseUrl), new ArrayList<String>(0), "");
|
||||||
|
}
|
||||||
|
|
||||||
public ListLinkHandler fromQuery(String id,
|
public ListLinkHandler fromQuery(String id,
|
||||||
List<String> contentFilters,
|
List<String> contentFilters,
|
||||||
String sortFilter) throws ParsingException {
|
String sortFilter) throws ParsingException {
|
||||||
|
@ -39,6 +54,13 @@ public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
return new ListLinkHandler(url, url, id, contentFilters, sortFilter);
|
return new ListLinkHandler(url, url, id, contentFilters, sortFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ListLinkHandler fromQuery(String id,
|
||||||
|
List<String> contentFilters,
|
||||||
|
String sortFilter, String baseUrl) throws ParsingException {
|
||||||
|
final String url = getUrl(id, contentFilters, sortFilter, baseUrl);
|
||||||
|
return new ListLinkHandler(url, url, id, contentFilters, sortFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For makeing ListLinkHandlerFactory compatible with LinkHandlerFactory we need to override this,
|
* For makeing ListLinkHandlerFactory compatible with LinkHandlerFactory we need to override this,
|
||||||
|
@ -50,6 +72,11 @@ public abstract class ListLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
return getUrl(id, new ArrayList<String>(0), "");
|
return getUrl(id, new ArrayList<String>(0), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, String baseUrl) throws ParsingException {
|
||||||
|
return getUrl(id, new ArrayList<String>(0), "", baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will returns content filter the corresponding extractor can handle like "channels", "videos", "music", etc.
|
* Will returns content filter the corresponding extractor can handle like "channels", "videos", "music", etc.
|
||||||
*
|
*
|
||||||
|
|
|
@ -17,6 +17,7 @@ import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
|
||||||
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser;
|
import org.schabi.newpipe.extractor.utils.Parser;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import com.grack.nanojson.JsonArray;
|
import com.grack.nanojson.JsonArray;
|
||||||
import com.grack.nanojson.JsonObject;
|
import com.grack.nanojson.JsonObject;
|
||||||
|
@ -89,10 +90,11 @@ public class PeertubeChannelExtractor extends ChannelExtractor {
|
||||||
throw new ParsingException("unable to extract channel streams", e);
|
throw new ParsingException("unable to extract channel streams", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String baseUrl = Utils.getBaseUrl(getUrl());
|
||||||
for(Object c: contents) {
|
for(Object c: contents) {
|
||||||
if(c instanceof JsonObject) {
|
if(c instanceof JsonObject) {
|
||||||
final JsonObject item = (JsonObject) c;
|
final JsonObject item = (JsonObject) c;
|
||||||
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item);
|
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item, baseUrl);
|
||||||
collector.commit(extractor);
|
collector.commit(extractor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import org.schabi.newpipe.extractor.localization.DateWrapper;
|
||||||
import org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper;
|
import org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper;
|
||||||
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeChannelLinkHandlerFactory;
|
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeChannelLinkHandlerFactory;
|
||||||
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import com.grack.nanojson.JsonObject;
|
import com.grack.nanojson.JsonObject;
|
||||||
|
|
||||||
|
@ -97,7 +98,8 @@ public class PeertubeCommentsInfoItemExtractor implements CommentsInfoItemExtrac
|
||||||
public String getAuthorEndpoint() throws ParsingException {
|
public String getAuthorEndpoint() throws ParsingException {
|
||||||
String name = JsonUtils.getString(item, "account.name");
|
String name = JsonUtils.getString(item, "account.name");
|
||||||
String host = JsonUtils.getString(item, "account.host");
|
String host = JsonUtils.getString(item, "account.host");
|
||||||
return PeertubeChannelLinkHandlerFactory.getInstance().fromId(name + "@" + host).getUrl();
|
String baseUrl = Utils.getBaseUrl(url);
|
||||||
|
return ServiceList.PeerTube.getChannelLHFactory().fromId(name + "@" + host, baseUrl).getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -17,6 +17,7 @@ import org.schabi.newpipe.extractor.search.SearchExtractor;
|
||||||
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser;
|
import org.schabi.newpipe.extractor.utils.Parser;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import com.grack.nanojson.JsonArray;
|
import com.grack.nanojson.JsonArray;
|
||||||
import com.grack.nanojson.JsonObject;
|
import com.grack.nanojson.JsonObject;
|
||||||
|
@ -58,10 +59,11 @@ public class PeertubeSearchExtractor extends SearchExtractor {
|
||||||
throw new ParsingException("unable to extract search info", e);
|
throw new ParsingException("unable to extract search info", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String baseUrl = Utils.getBaseUrl(getUrl());
|
||||||
for(Object c: contents) {
|
for(Object c: contents) {
|
||||||
if(c instanceof JsonObject) {
|
if(c instanceof JsonObject) {
|
||||||
final JsonObject item = (JsonObject) c;
|
final JsonObject item = (JsonObject) c;
|
||||||
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item);
|
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item, baseUrl);
|
||||||
collector.commit(extractor);
|
collector.commit(extractor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
||||||
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
|
import org.schabi.newpipe.extractor.linkhandler.LinkHandler;
|
||||||
import org.schabi.newpipe.extractor.localization.DateWrapper;
|
import org.schabi.newpipe.extractor.localization.DateWrapper;
|
||||||
import org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper;
|
import org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper;
|
||||||
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeChannelLinkHandlerFactory;
|
|
||||||
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeSearchQueryHandlerFactory;
|
import org.schabi.newpipe.extractor.services.peertube.linkHandler.PeertubeSearchQueryHandlerFactory;
|
||||||
import org.schabi.newpipe.extractor.stream.AudioStream;
|
import org.schabi.newpipe.extractor.stream.AudioStream;
|
||||||
import org.schabi.newpipe.extractor.stream.Stream;
|
import org.schabi.newpipe.extractor.stream.Stream;
|
||||||
|
@ -30,6 +29,7 @@ import org.schabi.newpipe.extractor.stream.StreamType;
|
||||||
import org.schabi.newpipe.extractor.stream.SubtitlesStream;
|
import org.schabi.newpipe.extractor.stream.SubtitlesStream;
|
||||||
import org.schabi.newpipe.extractor.stream.VideoStream;
|
import org.schabi.newpipe.extractor.stream.VideoStream;
|
||||||
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import com.grack.nanojson.JsonArray;
|
import com.grack.nanojson.JsonArray;
|
||||||
import com.grack.nanojson.JsonObject;
|
import com.grack.nanojson.JsonObject;
|
||||||
|
@ -115,7 +115,8 @@ public class PeertubeStreamExtractor extends StreamExtractor {
|
||||||
public String getUploaderUrl() throws ParsingException {
|
public String getUploaderUrl() throws ParsingException {
|
||||||
String name = JsonUtils.getString(json, "account.name");
|
String name = JsonUtils.getString(json, "account.name");
|
||||||
String host = JsonUtils.getString(json, "account.host");
|
String host = JsonUtils.getString(json, "account.host");
|
||||||
return PeertubeChannelLinkHandlerFactory.getInstance().fromId(name + "@" + host).getUrl();
|
String baseUrl = Utils.getBaseUrl(getUrl());
|
||||||
|
return getService().getChannelLHFactory().fromId(name + "@" + host, baseUrl).getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -266,10 +267,11 @@ public class PeertubeStreamExtractor extends StreamExtractor {
|
||||||
throw new ParsingException("unable to extract related videos", e);
|
throw new ParsingException("unable to extract related videos", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String baseUrl = Utils.getBaseUrl(getUrl());
|
||||||
for(Object c: contents) {
|
for(Object c: contents) {
|
||||||
if(c instanceof JsonObject) {
|
if(c instanceof JsonObject) {
|
||||||
final JsonObject item = (JsonObject) c;
|
final JsonObject item = (JsonObject) c;
|
||||||
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item);
|
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item, baseUrl);
|
||||||
//do not add the same stream in related streams
|
//do not add the same stream in related streams
|
||||||
if(!extractor.getUrl().equals(getUrl())) collector.commit(extractor);
|
if(!extractor.getUrl().equals(getUrl())) collector.commit(extractor);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,15 +15,17 @@ import com.grack.nanojson.JsonObject;
|
||||||
public class PeertubeStreamInfoItemExtractor implements StreamInfoItemExtractor {
|
public class PeertubeStreamInfoItemExtractor implements StreamInfoItemExtractor {
|
||||||
|
|
||||||
protected final JsonObject item;
|
protected final JsonObject item;
|
||||||
|
private final String baseUrl;
|
||||||
|
|
||||||
public PeertubeStreamInfoItemExtractor(JsonObject item) {
|
public PeertubeStreamInfoItemExtractor(JsonObject item, String baseUrl) {
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl() throws ParsingException {
|
public String getUrl() throws ParsingException {
|
||||||
String uuid = JsonUtils.getString(item, "uuid");
|
String uuid = JsonUtils.getString(item, "uuid");
|
||||||
return PeertubeStreamLinkHandlerFactory.getInstance().fromId(uuid).getUrl();
|
return ServiceList.PeerTube.getStreamLHFactory().fromId(uuid, baseUrl).getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -52,7 +54,7 @@ public class PeertubeStreamInfoItemExtractor implements StreamInfoItemExtractor
|
||||||
public String getUploaderUrl() throws ParsingException {
|
public String getUploaderUrl() throws ParsingException {
|
||||||
String name = JsonUtils.getString(item, "account.name");
|
String name = JsonUtils.getString(item, "account.name");
|
||||||
String host = JsonUtils.getString(item, "account.host");
|
String host = JsonUtils.getString(item, "account.host");
|
||||||
return PeertubeChannelLinkHandlerFactory.getInstance().fromId(name + "@" + host).getUrl();
|
return ServiceList.PeerTube.getChannelLHFactory().fromId(name + "@" + host, baseUrl).getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -15,6 +15,7 @@ import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
|
||||||
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
import org.schabi.newpipe.extractor.utils.JsonUtils;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser;
|
import org.schabi.newpipe.extractor.utils.Parser;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
import org.schabi.newpipe.extractor.utils.Parser.RegexException;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import com.grack.nanojson.JsonArray;
|
import com.grack.nanojson.JsonArray;
|
||||||
import com.grack.nanojson.JsonObject;
|
import com.grack.nanojson.JsonObject;
|
||||||
|
@ -53,10 +54,11 @@ public class PeertubeTrendingExtractor extends KioskExtractor {
|
||||||
throw new ParsingException("unable to extract kiosk info", e);
|
throw new ParsingException("unable to extract kiosk info", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String baseUrl = Utils.getBaseUrl(getUrl());
|
||||||
for(Object c: contents) {
|
for(Object c: contents) {
|
||||||
if(c instanceof JsonObject) {
|
if(c instanceof JsonObject) {
|
||||||
final JsonObject item = (JsonObject) c;
|
final JsonObject item = (JsonObject) c;
|
||||||
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item);
|
PeertubeStreamInfoItemExtractor extractor = new PeertubeStreamInfoItemExtractor(item, baseUrl);
|
||||||
collector.commit(extractor);
|
collector.commit(extractor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,14 @@ public class PeertubeChannelLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(String id, List<String> contentFilters, String searchFilter) {
|
public String getUrl(String id, List<String> contentFilters, String searchFilter) throws ParsingException {
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(id, contentFilters, searchFilter, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, List<String> contentFilter, String sortFilter, String baseUrl)
|
||||||
|
throws ParsingException {
|
||||||
return baseUrl + ACCOUNTS_ENDPOINT + id;
|
return baseUrl + ACCOUNTS_ENDPOINT + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,6 @@ public class PeertubeCommentsLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getUrl(String id) {
|
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
|
||||||
return baseUrl + String.format(COMMENTS_ENDPOINT, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getId(String url) throws ParsingException, IllegalArgumentException {
|
public String getId(String url) throws ParsingException, IllegalArgumentException {
|
||||||
return Parser.matchGroup(ID_PATTERN, url, 2);
|
return Parser.matchGroup(ID_PATTERN, url, 2);
|
||||||
|
@ -36,6 +30,13 @@ public class PeertubeCommentsLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(String id, List<String> contentFilter, String sortFilter) throws ParsingException {
|
public String getUrl(String id, List<String> contentFilter, String sortFilter) throws ParsingException {
|
||||||
return getUrl(id);
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(id, contentFilter, sortFilter, baseUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, List<String> contentFilter, String sortFilter, String baseUrl) throws ParsingException {
|
||||||
|
return baseUrl + String.format(COMMENTS_ENDPOINT, id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,11 @@ public class PeertubePlaylistLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(String id, List<String> contentFilters, String sortFilter) {
|
public String getUrl(String id, List<String> contentFilters, String sortFilter) {
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(id, contentFilters, sortFilter, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, List<String> contentFilters, String sortFilter, String baseUrl) {
|
||||||
return baseUrl + VIDEO_CHANNELS_ENDPOINT + id;
|
return baseUrl + VIDEO_CHANNELS_ENDPOINT + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,11 @@ public class PeertubeSearchQueryHandlerFactory extends SearchQueryHandlerFactory
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(String searchString, List<String> contentFilters, String sortFilter) throws ParsingException {
|
public String getUrl(String searchString, List<String> contentFilters, String sortFilter) throws ParsingException {
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(searchString, contentFilters, sortFilter, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String searchString, List<String> contentFilters, String sortFilter, String baseUrl) throws ParsingException {
|
||||||
try {
|
try {
|
||||||
final String url = baseUrl + SEARCH_ENDPOINT
|
final String url = baseUrl + SEARCH_ENDPOINT
|
||||||
+ "?search=" + URLEncoder.encode(searchString, CHARSET_UTF_8);
|
+ "?search=" + URLEncoder.encode(searchString, CHARSET_UTF_8);
|
||||||
|
|
|
@ -22,6 +22,11 @@ public class PeertubeStreamLinkHandlerFactory extends LinkHandlerFactory {
|
||||||
@Override
|
@Override
|
||||||
public String getUrl(String id) {
|
public String getUrl(String id) {
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(id, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, String baseUrl) {
|
||||||
return baseUrl + VIDEO_ENDPOINT + id;
|
return baseUrl + VIDEO_ENDPOINT + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,14 @@ public class PeertubeTrendingLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public String getUrl(String id, List<String> contentFilters, String sortFilter) {
|
public String getUrl(String id, List<String> contentFilters, String sortFilter) {
|
||||||
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
String baseUrl = ServiceList.PeerTube.getBaseUrl();
|
||||||
|
return getUrl(id, contentFilters, sortFilter, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUrl(String id, List<String> contentFilters, String sortFilter, String baseUrl) {
|
||||||
return String.format(KIOSK_MAP.get(id), baseUrl);
|
return String.format(KIOSK_MAP.get(id), baseUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -144,9 +144,9 @@ public class Utils {
|
||||||
try {
|
try {
|
||||||
return new URL(url);
|
return new URL(url);
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
// if no protocol is given try prepending "http://"
|
// if no protocol is given try prepending "https://"
|
||||||
if (e.getMessage().equals("no protocol: " + url)) {
|
if (e.getMessage().equals("no protocol: " + url)) {
|
||||||
return new URL(HTTP + url);
|
return new URL(HTTPS + url);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw e;
|
throw e;
|
||||||
|
@ -175,4 +175,15 @@ public class Utils {
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getBaseUrl(String url) throws ParsingException {
|
||||||
|
URL uri;
|
||||||
|
try {
|
||||||
|
uri = stringToURL(url);
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
throw new ParsingException("Malformed url: " + url, e);
|
||||||
|
}
|
||||||
|
return uri.getProtocol() + "://" + uri.getAuthority();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue