Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mishiranu.dashchan.chan.dvach;
- import android.net.Uri;
- import chan.content.ChanPerformer;
- import chan.util.StringUtils;
- import com.mishiranu.dashchan.content.Preferences;
- import java.util.Arrays;
- import java.util.HashSet;
- import java.util.Locale;
- import java.util.Set;
- import java.util.concurrent.ConcurrentHashMap;
- /* JADX INFO: compiled from: r8-map-id-69b0d98fa0c655d6ba582ff17a9bb2b718caed2d43ea8140768c75d96d37a9a5 */
- /* JADX INFO: loaded from: classes.dex */
- public final class DvachNoCaptchaPosting {
- public static final String CAPTCHA_DATA_APP_ID_PENDING = "slooopDvachAppIdPending";
- public static final String DEFAULT_SERVER = "https://2ch.su";
- private static final int MAX_CHALLENGE_ID_LENGTH = 4096;
- private static final int MAX_PRIVATE_KEY_LENGTH = 4096;
- private static final int MAX_PUBLIC_KEY_LENGTH = 4096;
- private static final Set<String> ALLOWED_BOARDS = new HashSet(Arrays.asList("test", "mobi"));
- private static final Set<String> OFFICIAL_HOSTS = new HashSet(Arrays.asList("2ch.su", "2ch.org", "2ch.life", "2ch.hk", "2ch.pm", "beta.2ch.hk", "2ch.cm", "2ch.re", "2ch.tf", "2ch.wf", "2ch.yt", "2-ch.so"));
- private static final Set<String> MANUAL_CAPTCHA_FALLBACKS = ConcurrentHashMap.newKeySet();
- /* JADX INFO: compiled from: r8-map-id-69b0d98fa0c655d6ba582ff17a9bb2b718caed2d43ea8140768c75d96d37a9a5 */
- public static final class Configuration {
- public final String publicKey;
- public final String server;
- private Configuration(String str, String str2) {
- this.server = str;
- this.publicKey = str2;
- }
- }
- private DvachNoCaptchaPosting() {
- }
- public static Uri buildUri(Configuration configuration, String... strArr) {
- Uri.Builder builderBuildUpon = Uri.parse(configuration.server).buildUpon();
- for (String str : strArr) {
- builderBuildUpon.appendPath(str);
- }
- return builderBuildUpon.build();
- }
- public static void clearPrivateKey() {
- DvachNoCaptchaSecretStore.clear();
- Preferences.setDvachNoCaptchaPostingEnabled(false);
- }
- public static ChanPerformer.CaptchaData createPendingCaptchaData() {
- ChanPerformer.CaptchaData captchaData = new ChanPerformer.CaptchaData();
- captchaData.put(CAPTCHA_DATA_APP_ID_PENDING, "1");
- return captchaData;
- }
- public static Configuration getConfiguration() {
- String strNormalizeServer = normalizeServer(Preferences.getDvachNoCaptchaServer());
- String strNormalizePublicKey = normalizePublicKey(Preferences.getDvachNoCaptchaAppId());
- if (isValidServer(strNormalizeServer) && isValidPublicKey(strNormalizePublicKey) && hasPrivateKey()) {
- return new Configuration(strNormalizeServer, strNormalizePublicKey);
- }
- return null;
- }
- public static Configuration getEnabledConfiguration() {
- if (Preferences.isDvachNoCaptchaPostingEnabled()) {
- return getConfiguration();
- }
- return null;
- }
- public static Configuration getEnabledConfigurationForCaptcha(String str, String str2) {
- if (isAllowedBoard(str) && !MANUAL_CAPTCHA_FALLBACKS.remove(makeTarget(str, str2)) && Preferences.getDvachAssistedPostingCooldownRemaining(str) <= 0) {
- return getEnabledConfiguration();
- }
- return null;
- }
- public static Configuration getEnabledConfigurationForPost(String str, String str2) {
- if (isAllowedBoard(str) && Preferences.getDvachAssistedPostingCooldownRemaining(str) == 0 && !MANUAL_CAPTCHA_FALLBACKS.contains(makeTarget(str, str2))) {
- return getEnabledConfiguration();
- }
- return null;
- }
- public static boolean hasPrivateKey() {
- return DvachNoCaptchaSecretStore.hasPrivateKey();
- }
- private static boolean isAllowedBoard(String str) {
- return isSupportedBoard(str);
- }
- public static boolean isAppIdPending(ChanPerformer.CaptchaData captchaData) {
- return captchaData != null && "1".equals(captchaData.get(CAPTCHA_DATA_APP_ID_PENDING));
- }
- public static boolean isConfigured() {
- return getConfiguration() != null;
- }
- public static boolean isSupportedBoard(String str) {
- return ALLOWED_BOARDS.contains(str);
- }
- public static boolean isValidChallengeId(String str) {
- return !StringUtils.isEmpty(str) && str.length() <= 4096;
- }
- public static boolean isValidPrivateKey(String str) {
- String strNormalizePrivateKey = normalizePrivateKey(str);
- return strNormalizePrivateKey != null && strNormalizePrivateKey.length() <= 4096;
- }
- public static boolean isValidPublicKey(String str) {
- String strNormalizePublicKey = normalizePublicKey(str);
- return strNormalizePublicKey != null && strNormalizePublicKey.length() <= 4096;
- }
- public static boolean isValidServer(String str) {
- String strNormalizeServer = normalizeServer(str);
- if (strNormalizeServer == null) {
- return false;
- }
- Uri uri = Uri.parse(strNormalizeServer);
- String host = uri.getHost();
- String path = uri.getPath();
- return "https".equalsIgnoreCase(uri.getScheme()) && !StringUtils.isEmpty(host) && OFFICIAL_HOSTS.contains(host.toLowerCase(Locale.US)) && (uri.getPort() == -1 || uri.getPort() == 443) && uri.getUserInfo() == null && uri.getQuery() == null && uri.getFragment() == null && (StringUtils.isEmpty(path) || "/".equals(path));
- }
- private static String makeTarget(String str, String str2) {
- return str + "/" + StringUtils.emptyIfNull(str2);
- }
- public static void markRateLimited() {
- Preferences.markDvachAssistedPostingUsed();
- }
- public static void markSuccessfulPost() {
- Preferences.markDvachAssistedPostingUsed();
- }
- public static String normalizePrivateKey(String str) {
- return StringUtils.nullIfEmpty(str != null ? str.trim() : null);
- }
- public static String normalizePublicKey(String str) {
- return StringUtils.nullIfEmpty(str != null ? str.trim() : null);
- }
- public static String normalizeServer(String str) {
- String strTrim = str != null ? str.trim() : null;
- if (StringUtils.isEmpty(strTrim)) {
- return null;
- }
- while (strTrim.endsWith("/")) {
- strTrim = strTrim.substring(0, strTrim.length() - 1);
- }
- return strTrim;
- }
- public static void requestManualCaptchaFallback(String str, String str2) {
- if (isAllowedBoard(str)) {
- MANUAL_CAPTCHA_FALLBACKS.add(makeTarget(str, str2));
- }
- }
- public static boolean saveConfiguration(String str, String str2, String str3) {
- String strNormalizeServer = normalizeServer(str);
- String strNormalizePublicKey = normalizePublicKey(str2);
- String strNormalizePrivateKey = normalizePrivateKey(str3);
- if (!isValidServer(strNormalizeServer) || !isValidPublicKey(strNormalizePublicKey) || (strNormalizePrivateKey == null && !hasPrivateKey())) {
- return false;
- }
- if (strNormalizePrivateKey != null && (!isValidPrivateKey(strNormalizePrivateKey) || !DvachNoCaptchaSecretStore.put(strNormalizePrivateKey))) {
- return false;
- }
- Preferences.setDvachNoCaptchaConfiguration(strNormalizeServer, strNormalizePublicKey);
- return true;
- }
- public static String signChallenge(String str) {
- if (isValidChallengeId(str)) {
- return DvachNoCaptchaSecretStore.sign(str);
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment