[PeerTube] Apply changes in Extractors and remove usages of default avatar picture

The default avatar picture was used when no profile picture was found, but it
was removed and split in multiple images.

Thumbnails' size is not known, as this data is not provided by the API.
This commit is contained in:
AudricV 2022-07-29 12:52:13 +02:00
parent 0a6011a50e
commit 4e6fb368bc
No known key found for this signature in database
GPG Key ID: DA92EC7905614198
4 changed files with 49 additions and 57 deletions

View File

@ -4,6 +4,7 @@ import com.grack.nanojson.JsonArray;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import org.schabi.newpipe.extractor.Image;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs;
@ -22,6 +23,9 @@ import javax.annotation.Nullable;
import java.io.IOException;
import java.util.List;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getAvatarsFromOwnerAccountOrVideoChannelObject;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getBannersFromAccountOrVideoChannelObject;
public class PeertubeAccountExtractor extends ChannelExtractor {
private JsonObject json;
private final String baseUrl;
@ -33,20 +37,16 @@ public class PeertubeAccountExtractor extends ChannelExtractor {
this.baseUrl = getBaseUrl();
}
@Nonnull
@Override
public String getAvatarUrl() {
String value;
try {
value = JsonUtils.getString(json, "avatar.path");
} catch (final Exception e) {
value = "/client/assets/images/default-avatar.png";
}
return baseUrl + value;
public List<Image> getAvatars() {
return getAvatarsFromOwnerAccountOrVideoChannelObject(baseUrl, json);
}
@Nonnull
@Override
public String getBannerUrl() {
return null;
public List<Image> getBanners() {
return getBannersFromAccountOrVideoChannelObject(baseUrl, json);
}
@Override
@ -99,9 +99,10 @@ public class PeertubeAccountExtractor extends ChannelExtractor {
return "";
}
@Nonnull
@Override
public String getParentChannelAvatarUrl() {
return "";
public List<Image> getParentChannelAvatars() {
return List.of();
}
@Override

View File

@ -3,6 +3,7 @@ package org.schabi.newpipe.extractor.services.peertube.extractors;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import org.schabi.newpipe.extractor.Image;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs;
@ -20,6 +21,9 @@ import javax.annotation.Nullable;
import java.io.IOException;
import java.util.List;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getAvatarsFromOwnerAccountOrVideoChannelObject;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getBannersFromAccountOrVideoChannelObject;
public class PeertubeChannelExtractor extends ChannelExtractor {
private JsonObject json;
private final String baseUrl;
@ -30,20 +34,16 @@ public class PeertubeChannelExtractor extends ChannelExtractor {
this.baseUrl = getBaseUrl();
}
@Nonnull
@Override
public String getAvatarUrl() {
String value;
try {
value = JsonUtils.getString(json, "avatar.path");
} catch (final Exception e) {
value = "/client/assets/images/default-avatar.png";
}
return baseUrl + value;
public List<Image> getAvatars() {
return getAvatarsFromOwnerAccountOrVideoChannelObject(baseUrl, json);
}
@Nonnull
@Override
public String getBannerUrl() {
return null;
public List<Image> getBanners() {
return getBannersFromAccountOrVideoChannelObject(baseUrl, json);
}
@Override
@ -72,15 +72,11 @@ public class PeertubeChannelExtractor extends ChannelExtractor {
return JsonUtils.getString(json, "ownerAccount.url");
}
@Nonnull
@Override
public String getParentChannelAvatarUrl() {
String value;
try {
value = JsonUtils.getString(json, "ownerAccount.avatar.path");
} catch (final Exception e) {
value = "/client/assets/images/default-avatar.png";
}
return baseUrl + value;
public List<Image> getParentChannelAvatars() {
return getAvatarsFromOwnerAccountOrVideoChannelObject(
baseUrl, json.getObject("ownerAccount"));
}
@Override

View File

@ -3,6 +3,7 @@ package org.schabi.newpipe.extractor.services.peertube.extractors;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import org.schabi.newpipe.extractor.Image;
import org.schabi.newpipe.extractor.Page;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.downloader.Downloader;
@ -19,11 +20,14 @@ import org.schabi.newpipe.extractor.utils.Utils;
import javax.annotation.Nonnull;
import java.io.IOException;
import java.util.List;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.COUNT_KEY;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.ITEMS_PER_PAGE;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.START_KEY;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.collectItemsFrom;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getAvatarsFromOwnerAccountOrVideoChannelObject;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getThumbnailsFromPlaylistOrVideoItem;
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
public class PeertubePlaylistExtractor extends PlaylistExtractor {
@ -36,8 +40,8 @@ public class PeertubePlaylistExtractor extends PlaylistExtractor {
@Nonnull
@Override
public String getThumbnailUrl() throws ParsingException {
return getBaseUrl() + playlistInfo.getString("thumbnailPath");
public List<Image> getThumbnails() throws ParsingException {
return getThumbnailsFromPlaylistOrVideoItem(getBaseUrl(), playlistInfo);
}
@Override
@ -50,10 +54,11 @@ public class PeertubePlaylistExtractor extends PlaylistExtractor {
return playlistInfo.getObject("ownerAccount").getString("displayName");
}
@Nonnull
@Override
public String getUploaderAvatarUrl() throws ParsingException {
return getBaseUrl()
+ playlistInfo.getObject("ownerAccount").getObject("avatar").getString("path");
public List<Image> getUploaderAvatars() throws ParsingException {
return getAvatarsFromOwnerAccountOrVideoChannelObject(getBaseUrl(),
playlistInfo.getObject("ownerAccount"));
}
@Override
@ -90,9 +95,9 @@ public class PeertubePlaylistExtractor extends PlaylistExtractor {
@Nonnull
@Override
public String getSubChannelAvatarUrl() throws ParsingException {
return getBaseUrl()
+ playlistInfo.getObject("videoChannel").getObject("avatar").getString("path");
public List<Image> getSubChannelAvatars() throws ParsingException {
return getAvatarsFromOwnerAccountOrVideoChannelObject(getBaseUrl(),
playlistInfo.getObject("videoChannel"));
}
@Nonnull

View File

@ -1,5 +1,7 @@
package org.schabi.newpipe.extractor.services.peertube.extractors;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getAvatarsFromOwnerAccountOrVideoChannelObject;
import static org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.getThumbnailsFromPlaylistOrVideoItem;
import static org.schabi.newpipe.extractor.stream.AudioStream.UNKNOWN_BITRATE;
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
@ -7,7 +9,7 @@ import com.grack.nanojson.JsonArray;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import org.schabi.newpipe.extractor.Image;
import org.schabi.newpipe.extractor.MediaFormat;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.StreamingService;
@ -87,8 +89,8 @@ public class PeertubeStreamExtractor extends StreamExtractor {
@Nonnull
@Override
public String getThumbnailUrl() throws ParsingException {
return baseUrl + JsonUtils.getString(json, "previewPath");
public List<Image> getThumbnails() throws ParsingException {
return getThumbnailsFromPlaylistOrVideoItem(baseUrl, json);
}
@Nonnull
@ -176,14 +178,8 @@ public class PeertubeStreamExtractor extends StreamExtractor {
@Nonnull
@Override
public String getUploaderAvatarUrl() {
String value;
try {
value = JsonUtils.getString(json, "account.avatar.path");
} catch (final Exception e) {
value = "/client/assets/images/default-avatar.png";
}
return baseUrl + value;
public List<Image> getUploaderAvatars() {
return getAvatarsFromOwnerAccountOrVideoChannelObject(baseUrl, json.getObject("account"));
}
@Nonnull
@ -200,14 +196,8 @@ public class PeertubeStreamExtractor extends StreamExtractor {
@Nonnull
@Override
public String getSubChannelAvatarUrl() {
String value;
try {
value = JsonUtils.getString(json, "channel.avatar.path");
} catch (final Exception e) {
value = "/client/assets/images/default-avatar.png";
}
return baseUrl + value;
public List<Image> getSubChannelAvatars() {
return getAvatarsFromOwnerAccountOrVideoChannelObject(baseUrl, json.getObject("channel"));
}
@Nonnull