Extract method to get longest cookie

This reduces duplication and makes it easier to know what `getCookie` is
doing, since all domains are now clustered together and it's easy to see
the difference between them..
This commit is contained in:
Anderson Mesquita 2020-09-18 13:40:36 -04:00
parent 10f2e51a2e
commit 890c4d32d1
1 changed files with 30 additions and 67 deletions

View File

@ -10,6 +10,8 @@ import java.net.CookieStore;
import java.net.HttpCookie; import java.net.HttpCookie;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;
import awais.instagrabber.BuildConfig; import awais.instagrabber.BuildConfig;
import awaisomereport.LogCollector; import awaisomereport.LogCollector;
@ -74,79 +76,40 @@ public final class CookieUtils {
@Nullable @Nullable
public static String getCookie(@Nullable final String webViewUrl) { public static String getCookie(@Nullable final String webViewUrl) {
int lastLongestCookieLength = 0; final List<String> domains = Arrays.asList(
String mainCookie = null; "https://instagram.com",
"https://instagram.com/",
"http://instagram.com",
"http://instagram.com",
"https://www.instagram.com",
"https://www.instagram.com/",
"http://www.instagram.com",
"http://www.instagram.com/"
);
String cookie;
if (!TextUtils.isEmpty(webViewUrl)) { if (!TextUtils.isEmpty(webViewUrl)) {
cookie = COOKIE_MANAGER.getCookie(webViewUrl); domains.add(0, webViewUrl);
}
return getLongestCookie(domains);
}
@Nullable
private static String getLongestCookie(final List<String> domains) {
int longestLength = 0;
String longestCookie = null;
for (final String domain : domains) {
final String cookie = COOKIE_MANAGER.getCookie(domain);
if (cookie != null) { if (cookie != null) {
final int cookieLen = cookie.length(); final int cookieLength = cookie.length();
if (cookieLen > lastLongestCookieLength) { if (cookieLength > longestLength) {
mainCookie = cookie; longestCookie = cookie;
lastLongestCookieLength = cookieLen; longestLength = cookieLength;
} }
} }
} }
cookie = COOKIE_MANAGER.getCookie("https://instagram.com");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("https://instagram.com/");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("http://instagram.com");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("http://instagram.com/");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("https://www.instagram.com");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("https://www.instagram.com/");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("http://www.instagram.com");
if (cookie != null) {
final int cookieLen = cookie.length();
if (cookieLen > lastLongestCookieLength) {
mainCookie = cookie;
lastLongestCookieLength = cookieLen;
}
}
cookie = COOKIE_MANAGER.getCookie("http://www.instagram.com/");
if (cookie != null && cookie.length() > lastLongestCookieLength) mainCookie = cookie;
return mainCookie; return longestCookie;
} }
} }