add extraction for support info and rename getLanguageInfo function

This commit is contained in:
bopol 2020-01-23 14:19:22 +01:00
parent 1a15c0e750
commit 74439f692a
7 changed files with 66 additions and 9 deletions

View File

@ -248,7 +248,7 @@ public class MediaCCCStreamExtractor extends StreamExtractor {
}
@Override
public String getStreamInfoLanguage() throws ParsingException {
public String getLanguageInfo() throws ParsingException {
return "";
}
@ -257,4 +257,10 @@ public class MediaCCCStreamExtractor extends StreamExtractor {
public List<String> getTags() throws ParsingException {
return new ArrayList<>();
}
@Nonnull
@Override
public String getSupportInfo() throws ParsingException {
return "";
}
}

View File

@ -35,6 +35,8 @@ import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import javax.annotation.Nonnull;
public class PeertubeStreamExtractor extends StreamExtractor {
@ -250,7 +252,13 @@ public class PeertubeStreamExtractor extends StreamExtractor {
return Collections.emptyList();
}
}
@Nonnull
@Override
public String getSupportInfo() throws ParsingException {
return JsonUtils.getString(json, "support");
}
private String getRelatedStreamsUrl(List<String> tags) throws UnsupportedEncodingException {
String url = baseUrl + PeertubeSearchQueryHandlerFactory.SEARCH_ENDPOINT;
StringBuilder params = new StringBuilder();
@ -378,7 +386,7 @@ public class PeertubeStreamExtractor extends StreamExtractor {
}
@Override
public String getStreamInfoLanguage() throws ParsingException {
public String getLanguageInfo() throws ParsingException {
return JsonUtils.getString(json, "language.label");
}
}

View File

@ -276,7 +276,7 @@ public class SoundcloudStreamExtractor extends StreamExtractor {
}
@Override
public String getStreamInfoLanguage() throws ParsingException {
public String getLanguageInfo() throws ParsingException {
return "";
}
@ -285,4 +285,10 @@ public class SoundcloudStreamExtractor extends StreamExtractor {
public List<String> getTags() throws ParsingException {
return new ArrayList<>();
}
@Nonnull
@Override
public String getSupportInfo() throws ParsingException {
return "";
}
}

View File

@ -1156,7 +1156,7 @@ public class YoutubeStreamExtractor extends StreamExtractor {
}
@Override
public String getStreamInfoLanguage() throws ParsingException {
public String getLanguageInfo() throws ParsingException {
return "";
}
@ -1165,4 +1165,10 @@ public class YoutubeStreamExtractor extends StreamExtractor {
public List<String> getTags() throws ParsingException {
return new ArrayList<>();
}
@Nonnull
@Override
public String getSupportInfo() throws ParsingException {
return "";
}
}

View File

@ -396,7 +396,7 @@ public abstract class StreamExtractor extends Extractor {
* @throws ParsingException
*/
@Nonnull
public abstract String getStreamInfoLanguage() throws ParsingException;
public abstract String getLanguageInfo() throws ParsingException;
/**
* The list of tags of the stream.
@ -406,4 +406,16 @@ public abstract class StreamExtractor extends Extractor {
*/
@Nonnull
public abstract List<String> getTags() throws ParsingException;
/**
* The support information of the stream.
* see: https://framatube.org/videos/watch/ee408ec8-07cd-4e35-b884-fb681a4b9d37
* (support button).
* If the support information are not available,
* you can simply return an empty String.
* @return the support information of the stream or an empty String.
* @throws ParsingException
*/
@Nonnull
public abstract String getSupportInfo() throws ParsingException;
}

View File

@ -292,7 +292,7 @@ public class StreamInfo extends Info {
streamInfo.addError(e);
}
try {
streamInfo.setLanguage(extractor.getStreamInfoLanguage());
streamInfo.setLanguageInfo(extractor.getLanguageInfo());
} catch (Exception e) {
streamInfo.addError(e);
}
@ -301,6 +301,11 @@ public class StreamInfo extends Info {
} catch (Exception e) {
streamInfo.addError(e);
}
try {
streamInfo.setSupportInfo(extractor.getSupportInfo());
} catch (Exception e) {
streamInfo.addError(e);
}
streamInfo.setRelatedStreams(ExtractorHelper.getRelatedVideosOrLogError(streamInfo, extractor));
@ -345,6 +350,7 @@ public class StreamInfo extends Info {
private String category = "";
private String licence = "";
private String language = "";
private String support = "";
private List<String> tags = new ArrayList<>();
/**
@ -604,11 +610,11 @@ public class StreamInfo extends Info {
this.licence = str;
}
public String getLanguage() {
public String getLanguageInfo() {
return this.language;
}
public void setLanguage(String lang) {
public void setLanguageInfo(String lang) {
this.language = lang;
}
@ -620,5 +626,11 @@ public class StreamInfo extends Info {
this.tags = tags;
}
public void setSupportInfo(String support) {
this.support = support;
}
public String getSupportInfo() {
return this.support;
}
}

View File

@ -147,4 +147,11 @@ public class PeertubeStreamExtractorDefaultTest {
ageLimit.fetchPage();
assertEquals(18, ageLimit.getAgeLimit());
}
@Test
public void testGetSupportInformation() throws ExtractionException, IOException {
PeertubeStreamExtractor supportInfoExtractor = (PeertubeStreamExtractor) PeerTube.getStreamExtractor("https://framatube.org/videos/watch/ee408ec8-07cd-4e35-b884-fb681a4b9d37");
supportInfoExtractor.fetchPage();
assertEquals("https://utip.io/chatsceptique", supportInfoExtractor.getSupportInfo());
}
}