Merge pull request #8738 from Isira-Seneviratne/Collectors_joining
Use Collectors.joining().
This commit is contained in:
commit
edd2b110b0
5 changed files with 24 additions and 86 deletions
|
@ -11,15 +11,17 @@ import org.schabi.newpipe.extractor.downloader.Downloader;
|
|||
import org.schabi.newpipe.extractor.downloader.Request;
|
||||
import org.schabi.newpipe.extractor.downloader.Response;
|
||||
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
||||
import org.schabi.newpipe.util.CookieUtils;
|
||||
import org.schabi.newpipe.util.InfoCache;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.RequestBody;
|
||||
|
@ -63,19 +65,15 @@ public final class DownloaderImpl extends Downloader {
|
|||
}
|
||||
|
||||
public String getCookies(final String url) {
|
||||
final List<String> resultCookies = new ArrayList<>();
|
||||
if (url.contains(YOUTUBE_DOMAIN)) {
|
||||
final String youtubeCookie = getCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY);
|
||||
if (youtubeCookie != null) {
|
||||
resultCookies.add(youtubeCookie);
|
||||
}
|
||||
}
|
||||
final String youtubeCookie = url.contains(YOUTUBE_DOMAIN)
|
||||
? getCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY) : null;
|
||||
|
||||
// Recaptcha cookie is always added TODO: not sure if this is necessary
|
||||
final String recaptchaCookie = getCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY);
|
||||
if (recaptchaCookie != null) {
|
||||
resultCookies.add(recaptchaCookie);
|
||||
}
|
||||
return CookieUtils.concatCookies(resultCookies);
|
||||
return Stream.of(youtubeCookie, getCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY))
|
||||
.filter(Objects::nonNull)
|
||||
.flatMap(cookies -> Arrays.stream(cookies.split("; *")))
|
||||
.distinct()
|
||||
.collect(Collectors.joining("; "));
|
||||
}
|
||||
|
||||
public String getCookie(final String key) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import org.schabi.newpipe.util.external_communication.ShareUtils;
|
|||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/*
|
||||
* Created by Christian Schabesberger on 24.10.15.
|
||||
|
@ -182,14 +183,9 @@ public class ErrorActivity extends AppCompatActivity {
|
|||
}
|
||||
|
||||
private String formErrorText(final String[] el) {
|
||||
final StringBuilder text = new StringBuilder();
|
||||
if (el != null) {
|
||||
for (final String e : el) {
|
||||
text.append("-------------------------------------\n").append(e);
|
||||
}
|
||||
}
|
||||
text.append("-------------------------------------");
|
||||
return text.toString();
|
||||
final String separator = "-------------------------------------";
|
||||
return Arrays.stream(el)
|
||||
.collect(Collectors.joining(separator + "\n", separator + "\n", separator));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -9,13 +9,13 @@ import androidx.annotation.Nullable;
|
|||
import androidx.annotation.XmlRes;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.schabi.newpipe.util.Localization;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Parses the corresponding preference-file(s).
|
||||
|
@ -54,7 +54,7 @@ public class PreferenceParser {
|
|||
if (xpp.getEventType() == XmlPullParser.START_TAG) {
|
||||
final PreferenceSearchItem result = parseSearchResult(
|
||||
xpp,
|
||||
joinBreadcrumbs(breadcrumbs),
|
||||
Localization.concatenateStrings(" > ", breadcrumbs),
|
||||
resId
|
||||
);
|
||||
|
||||
|
@ -82,12 +82,6 @@ public class PreferenceParser {
|
|||
return results;
|
||||
}
|
||||
|
||||
private String joinBreadcrumbs(final List<String> breadcrumbs) {
|
||||
return breadcrumbs.stream()
|
||||
.filter(crumb -> !TextUtils.isEmpty(crumb))
|
||||
.collect(Collectors.joining(" > "));
|
||||
}
|
||||
|
||||
private String getAttribute(
|
||||
final XmlPullParser xpp,
|
||||
@NonNull final String attribute
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
package org.schabi.newpipe.util;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public final class CookieUtils {
|
||||
private CookieUtils() {
|
||||
}
|
||||
|
||||
public static String concatCookies(final Collection<String> cookieStrings) {
|
||||
final Set<String> cookieSet = new HashSet<>();
|
||||
for (final String cookies : cookieStrings) {
|
||||
cookieSet.addAll(splitCookies(cookies));
|
||||
}
|
||||
return TextUtils.join("; ", cookieSet).trim();
|
||||
}
|
||||
|
||||
public static Set<String> splitCookies(final String cookies) {
|
||||
return Set.of(cookies.split("; *"));
|
||||
}
|
||||
}
|
|
@ -32,6 +32,7 @@ import java.time.format.FormatStyle;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -63,26 +64,14 @@ public final class Localization {
|
|||
|
||||
@NonNull
|
||||
public static String concatenateStrings(final String... strings) {
|
||||
return concatenateStrings(Arrays.asList(strings));
|
||||
return concatenateStrings(DOT_SEPARATOR, Arrays.asList(strings));
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static String concatenateStrings(final List<String> strings) {
|
||||
if (strings.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
final StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.append(strings.get(0));
|
||||
|
||||
for (int i = 1; i < strings.size(); i++) {
|
||||
final String string = strings.get(i);
|
||||
if (!TextUtils.isEmpty(string)) {
|
||||
stringBuilder.append(DOT_SEPARATOR).append(strings.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
return stringBuilder.toString();
|
||||
public static String concatenateStrings(final String delimiter, final List<String> strings) {
|
||||
return strings.stream()
|
||||
.filter(string -> !TextUtils.isEmpty(string))
|
||||
.collect(Collectors.joining(delimiter));
|
||||
}
|
||||
|
||||
public static org.schabi.newpipe.extractor.localization.Localization getPreferredLocalization(
|
||||
|
@ -358,19 +347,4 @@ public final class Localization {
|
|||
private static double round(final double value, final int places) {
|
||||
return new BigDecimal(value).setScale(places, RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Workaround to match normalized captions like english to English or deutsch to Deutsch.
|
||||
* @param list the list to search into
|
||||
* @param toFind the string to look for
|
||||
* @return whether the string was found or not
|
||||
*/
|
||||
public static boolean containsCaseInsensitive(final List<String> list, final String toFind) {
|
||||
for (final String i : list) {
|
||||
if (i.equalsIgnoreCase(toFind)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue