Skip to content

Commit 44b664a

Browse files
committed
[YouTube] Simplify Optional chains in channel
1 parent 2f7bfd3 commit 44b664a

1 file changed

Lines changed: 34 additions & 33 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -161,21 +161,24 @@ public String getName() throws ParsingException {
161161
return metadataRendererTitle;
162162
}
163163

164-
return channelHeader.flatMap(header -> {
164+
return channelHeader.map(header -> {
165165
final JsonObject channelJson = header.json;
166166
switch (header.headerType) {
167167
case PAGE:
168-
return Optional.ofNullable(channelJson.getObject("content")
168+
return channelJson.getObject("content")
169169
.getObject("pageHeaderViewModel")
170170
.getObject("title")
171171
.getObject("dynamicTextViewModel")
172172
.getObject("text")
173-
.getString("content", channelJson.getString("pageTitle")));
173+
.getString("content", channelJson.getString("pageTitle"));
174+
174175
case CAROUSEL:
175176
case INTERACTIVE_TABBED:
176-
return Optional.ofNullable(getTextFromObject(channelJson.getObject("title")));
177+
return getTextFromObject(channelJson.getObject("title"));
178+
179+
case C4_TABBED:
177180
default:
178-
return Optional.ofNullable(channelJson.getString("title"));
181+
return channelJson.getString("title");
179182
}
180183
})
181184
// The channel name from a microformatDataRenderer may be different from the one displayed,
@@ -200,36 +203,34 @@ public String getAvatarUrl() throws ParsingException {
200203
}
201204

202205
return channelHeader.map(header -> {
203-
final HeaderType headerType = header.headerType;
204-
if (headerType == HeaderType.PAGE) {
205-
return Optional.ofNullable(header.json.getObject("content")
206-
.getObject("pageHeaderViewModel")
207-
.getObject("image")
208-
.getObject("contentPreviewImageViewModel")
209-
.getObject("image")
210-
.getArray("sources")
211-
.getObject(0)
212-
.getString("url"))
213-
.map(YoutubeParsingHelper::fixThumbnailUrl)
214-
.orElse(null);
215-
}
206+
switch (header.headerType) {
207+
case PAGE:
208+
return header.json.getObject("content")
209+
.getObject("pageHeaderViewModel")
210+
.getObject("image")
211+
.getObject("contentPreviewImageViewModel")
212+
.getObject("image")
213+
.getArray("sources")
214+
.getObject(0)
215+
.getString("url");
216216

217-
if (headerType == HeaderType.INTERACTIVE_TABBED) {
218-
return Optional.ofNullable(header.json.getObject("boxArt")
219-
.getArray("thumbnails")
220-
.getObject(0)
221-
.getString("url"))
222-
.map(YoutubeParsingHelper::fixThumbnailUrl)
223-
.orElse(null);
224-
}
217+
case INTERACTIVE_TABBED:
218+
return header.json.getObject("boxArt")
219+
.getArray("thumbnails")
220+
.getObject(0)
221+
.getString("url");
225222

226-
return Optional.ofNullable(header.json.getObject("avatar")
227-
.getArray("thumbnails")
228-
.getObject(0)
229-
.getString("url"))
230-
.map(YoutubeParsingHelper::fixThumbnailUrl)
231-
.orElse(null);
232-
}).orElseThrow(() -> new ParsingException("Could not get avatar URL"));
223+
case C4_TABBED:
224+
case CAROUSEL:
225+
default:
226+
return header.json.getObject("avatar")
227+
.getArray("thumbnails")
228+
.getObject(0)
229+
.getString("url");
230+
}
231+
})
232+
.map(YoutubeParsingHelper::fixThumbnailUrl)
233+
.orElseThrow(() -> new ParsingException("Could not get avatar URL"));
233234
}
234235

235236
@Override

0 commit comments

Comments
 (0)