[YouTube] Fix trending getName()

This commit is contained in:
Stypox 2021-03-24 09:04:43 +01:00
parent f71cfd489c
commit ce7cbbc9a0
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23
2 changed files with 17 additions and 7 deletions

View File

@ -571,6 +571,16 @@ public class YoutubeParsingHelper {
return getTextFromObject(textObject, false);
}
@Nullable
public static String getTextAtKey(final JsonObject jsonObject, final String key)
throws ParsingException {
if (jsonObject.isString(key)) {
return jsonObject.getString(key);
} else {
return getTextFromObject(jsonObject.getObject(key));
}
}
public static String fixThumbnailUrl(String thumbnailUrl) {
if (thumbnailUrl.startsWith("//")) {
thumbnailUrl = thumbnailUrl.substring(2);

View File

@ -39,6 +39,7 @@ import java.io.IOException;
import javax.annotation.Nonnull;
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonResponse;
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextAtKey;
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextFromObject;
import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty;
@ -70,18 +71,17 @@ public class YoutubeTrendingExtractor extends KioskExtractor<StreamInfoItem> {
@Override
public String getName() throws ParsingException {
final JsonObject header = initialData.getObject("header");
JsonObject title = null;
String name = null;
if (header.has("feedTabbedHeaderRenderer")) {
title = header.getObject("feedTabbedHeaderRenderer").getObject("title");
name = getTextAtKey(header.getObject("feedTabbedHeaderRenderer"), "title");
} else if (header.has("c4TabbedHeaderRenderer")) {
title = header.getObject("c4TabbedHeaderRenderer").getObject("title");
name = getTextAtKey(header.getObject("c4TabbedHeaderRenderer"), "title");
}
String name = getTextFromObject(title);
if (!isNullOrEmpty(name)) {
return name;
if (isNullOrEmpty(name)) {
throw new ParsingException("Could not get Trending name");
}
throw new ParsingException("Could not get Trending name");
return name;
}
@Nonnull