Fix comment reply continuations.

This commit is contained in:
FireMasterK 2021-08-04 22:14:04 +05:30
parent 666b45958e
commit e8e9e6cd00
No known key found for this signature in database
GPG Key ID: 49451E4482CC5BCD
2 changed files with 9 additions and 12 deletions

View File

@ -112,12 +112,6 @@ public class CommentsInfoItemsCollector extends InfoItemsCollector<CommentsInfoI
}
public List<CommentsInfoItem> getCommentsInfoItemList() {
List<CommentsInfoItem> siiList = new ArrayList<>();
for (InfoItem ii : super.getItems()) {
if (ii instanceof CommentsInfoItem) {
siiList.add((CommentsInfoItem) ii);
}
}
return siiList;
return new ArrayList<>(super.getItems());
}
}

View File

@ -101,7 +101,7 @@ public class YoutubeCommentsExtractor extends CommentsExtractor {
if (itemSectionRenderer.isPresent()) {
token = JsonUtils.getString(((JsonObject) itemSectionRenderer.get())
.getObject("itemSectionRenderer").getArray("contents").getObject(0),
.getObject("itemSectionRenderer").getArray("contents").getObject(0),
"continuationItemRenderer.continuationEndpoint.continuationCommand.token");
} else {
token = null;
@ -140,10 +140,13 @@ public class YoutubeCommentsExtractor extends CommentsExtractor {
return null;
}
final JsonObject continuationItemRenderer = jsonArray.getObject(jsonArray.size() - 1).getObject("continuationItemRenderer");
final String jsonPath = continuationItemRenderer.has("button") ? "button.buttonRenderer.command.continuationCommand.token" : "continuationEndpoint.continuationCommand.token";
final String continuation;
try {
continuation = JsonUtils.getString(jsonArray.getObject(jsonArray.size() - 1),
"continuationItemRenderer.continuationEndpoint.continuationCommand.token");
continuation = JsonUtils.getString(continuationItemRenderer, jsonPath);
} catch (final Exception e) {
return null;
}
@ -167,7 +170,7 @@ public class YoutubeCommentsExtractor extends CommentsExtractor {
final Localization localization = getExtractorLocalization();
final byte[] body = JsonWriter.string(prepareDesktopJsonBuilder(localization,
getExtractorContentCountry())
getExtractorContentCountry())
.value("continuation", page.getId())
.done())
.getBytes(UTF_8);
@ -236,7 +239,7 @@ public class YoutubeCommentsExtractor extends CommentsExtractor {
throws IOException, ExtractionException {
final Localization localization = getExtractorLocalization();
final byte[] body = JsonWriter.string(prepareDesktopJsonBuilder(localization,
getExtractorContentCountry())
getExtractorContentCountry())
.value("videoId", getId())
.done())
.getBytes(UTF_8);