kopia lustrzana https://github.com/TeamNewPipe/NewPipeExtractor
[YouTube] Add support for new crisis meta info action data
The new action data can return multiple contact actions instead of only one, which will be concatenated by a new line return. This commit fixes tests of the CrisisResources test class of YoutubeSearchExtractorTest.pull/1168/head
rodzic
2a3c6f80d2
commit
f40fc0aa4f
|
@ -171,7 +171,31 @@ public final class YoutubeMetaInfoHelper {
|
||||||
// usually an encouragement like "We are with you"
|
// usually an encouragement like "We are with you"
|
||||||
final String title = getTextFromObjectOrThrow(r.getObject("title"), "title");
|
final String title = getTextFromObjectOrThrow(r.getObject("title"), "title");
|
||||||
// usually a phone number
|
// usually a phone number
|
||||||
final String action = getTextFromObjectOrThrow(r.getObject("actionText"), "action");
|
final String action;
|
||||||
|
if (r.has("actionText")) {
|
||||||
|
action = getTextFromObjectOrThrow(r.getObject("actionText"), "action");
|
||||||
|
} else if (r.has("contacts")) {
|
||||||
|
final JsonArray contacts = r.getArray("contacts");
|
||||||
|
final StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
int i = 0;
|
||||||
|
final int contactsSize = contacts.size();
|
||||||
|
if (contactsSize != 0) {
|
||||||
|
// Loop over contacts item from the first contact to the last one, if there is
|
||||||
|
// not only one, in order to not add an unneeded line return
|
||||||
|
for (; i < contactsSize - 1; i++) {
|
||||||
|
stringBuilder.append(getTextFromObjectOrThrow(contacts.getObject(i)
|
||||||
|
.getObject("actionText"), "contacts.actionText"));
|
||||||
|
stringBuilder.append("\n");
|
||||||
|
}
|
||||||
|
// Add the latest contact without an extra line return
|
||||||
|
stringBuilder.append(getTextFromObjectOrThrow(contacts.getObject(i)
|
||||||
|
.getObject("actionText"), "contacts.actionText"));
|
||||||
|
}
|
||||||
|
|
||||||
|
action = stringBuilder.toString();
|
||||||
|
} else {
|
||||||
|
action = null;
|
||||||
|
}
|
||||||
// usually details about the phone number
|
// usually details about the phone number
|
||||||
final String details = getTextFromObjectOrThrow(r.getObject("detailsText"), "details");
|
final String details = getTextFromObjectOrThrow(r.getObject("detailsText"), "details");
|
||||||
// usually the name of an association
|
// usually the name of an association
|
||||||
|
@ -179,7 +203,8 @@ public final class YoutubeMetaInfoHelper {
|
||||||
"urlText");
|
"urlText");
|
||||||
|
|
||||||
metaInfo.setTitle(title);
|
metaInfo.setTitle(title);
|
||||||
metaInfo.setContent(new Description(details + "\n" + action, Description.PLAIN_TEXT));
|
metaInfo.setContent(new Description(isNullOrEmpty(action)
|
||||||
|
? details : details + "\n" + action, Description.PLAIN_TEXT));
|
||||||
metaInfo.addUrlText(urlText);
|
metaInfo.addUrlText(urlText);
|
||||||
|
|
||||||
// usually the webpage of the association
|
// usually the webpage of the association
|
||||||
|
|
Ładowanie…
Reference in New Issue