mirror of
https://github.com/TeamNewPipe/NewPipeExtractor.git
synced 2025-04-29 00:10:35 +05:30
[YouTube] Simplify Optional chains in channel
This commit is contained in:
parent
2f7bfd3e7f
commit
44b664af15
@ -161,21 +161,24 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
|
|||||||
return metadataRendererTitle;
|
return metadataRendererTitle;
|
||||||
}
|
}
|
||||||
|
|
||||||
return channelHeader.flatMap(header -> {
|
return channelHeader.map(header -> {
|
||||||
final JsonObject channelJson = header.json;
|
final JsonObject channelJson = header.json;
|
||||||
switch (header.headerType) {
|
switch (header.headerType) {
|
||||||
case PAGE:
|
case PAGE:
|
||||||
return Optional.ofNullable(channelJson.getObject("content")
|
return channelJson.getObject("content")
|
||||||
.getObject("pageHeaderViewModel")
|
.getObject("pageHeaderViewModel")
|
||||||
.getObject("title")
|
.getObject("title")
|
||||||
.getObject("dynamicTextViewModel")
|
.getObject("dynamicTextViewModel")
|
||||||
.getObject("text")
|
.getObject("text")
|
||||||
.getString("content", channelJson.getString("pageTitle")));
|
.getString("content", channelJson.getString("pageTitle"));
|
||||||
|
|
||||||
case CAROUSEL:
|
case CAROUSEL:
|
||||||
case INTERACTIVE_TABBED:
|
case INTERACTIVE_TABBED:
|
||||||
return Optional.ofNullable(getTextFromObject(channelJson.getObject("title")));
|
return getTextFromObject(channelJson.getObject("title"));
|
||||||
|
|
||||||
|
case C4_TABBED:
|
||||||
default:
|
default:
|
||||||
return Optional.ofNullable(channelJson.getString("title"));
|
return channelJson.getString("title");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// The channel name from a microformatDataRenderer may be different from the one displayed,
|
// The channel name from a microformatDataRenderer may be different from the one displayed,
|
||||||
@ -200,36 +203,34 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return channelHeader.map(header -> {
|
return channelHeader.map(header -> {
|
||||||
final HeaderType headerType = header.headerType;
|
switch (header.headerType) {
|
||||||
if (headerType == HeaderType.PAGE) {
|
case PAGE:
|
||||||
return Optional.ofNullable(header.json.getObject("content")
|
return header.json.getObject("content")
|
||||||
.getObject("pageHeaderViewModel")
|
.getObject("pageHeaderViewModel")
|
||||||
.getObject("image")
|
.getObject("image")
|
||||||
.getObject("contentPreviewImageViewModel")
|
.getObject("contentPreviewImageViewModel")
|
||||||
.getObject("image")
|
.getObject("image")
|
||||||
.getArray("sources")
|
.getArray("sources")
|
||||||
.getObject(0)
|
.getObject(0)
|
||||||
.getString("url"))
|
.getString("url");
|
||||||
.map(YoutubeParsingHelper::fixThumbnailUrl)
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (headerType == HeaderType.INTERACTIVE_TABBED) {
|
case INTERACTIVE_TABBED:
|
||||||
return Optional.ofNullable(header.json.getObject("boxArt")
|
return header.json.getObject("boxArt")
|
||||||
.getArray("thumbnails")
|
.getArray("thumbnails")
|
||||||
.getObject(0)
|
.getObject(0)
|
||||||
.getString("url"))
|
.getString("url");
|
||||||
.map(YoutubeParsingHelper::fixThumbnailUrl)
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Optional.ofNullable(header.json.getObject("avatar")
|
case C4_TABBED:
|
||||||
|
case CAROUSEL:
|
||||||
|
default:
|
||||||
|
return header.json.getObject("avatar")
|
||||||
.getArray("thumbnails")
|
.getArray("thumbnails")
|
||||||
.getObject(0)
|
.getObject(0)
|
||||||
.getString("url"))
|
.getString("url");
|
||||||
|
}
|
||||||
|
})
|
||||||
.map(YoutubeParsingHelper::fixThumbnailUrl)
|
.map(YoutubeParsingHelper::fixThumbnailUrl)
|
||||||
.orElse(null);
|
.orElseThrow(() -> new ParsingException("Could not get avatar URL"));
|
||||||
}).orElseThrow(() -> new ParsingException("Could not get avatar URL"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user