X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/eee140f74fe9a01972b8d61193c1125c1d89e0df..189b21dbde0b9981365ee6e39e3645b94d634ef6:/src/main/java/org/asamk/signal/commands/SubmitRateLimitChallengeCommand.java diff --git a/src/main/java/org/asamk/signal/commands/SubmitRateLimitChallengeCommand.java b/src/main/java/org/asamk/signal/commands/SubmitRateLimitChallengeCommand.java index 46f69896..91c6fc67 100644 --- a/src/main/java/org/asamk/signal/commands/SubmitRateLimitChallengeCommand.java +++ b/src/main/java/org/asamk/signal/commands/SubmitRateLimitChallengeCommand.java @@ -3,10 +3,12 @@ package org.asamk.signal.commands; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; -import org.asamk.signal.OutputWriter; import org.asamk.signal.commands.exceptions.CommandException; import org.asamk.signal.commands.exceptions.IOErrorException; +import org.asamk.signal.commands.exceptions.UserErrorException; import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.CaptchaRejectedException; +import org.asamk.signal.output.OutputWriter; import java.io.IOException; @@ -32,13 +34,15 @@ public class SubmitRateLimitChallengeCommand implements JsonRpcLocalCommand { @Override public void handleCommand(final Namespace ns, final Manager m, OutputWriter outputWriter) throws CommandException { final var challenge = ns.getString("challenge"); - final var captchaString = ns.getString("captcha"); - final var captcha = captchaString == null ? null : captchaString.replace("signalcaptcha://", ""); + final var captcha = ns.getString("captcha"); try { m.submitRateLimitRecaptchaChallenge(challenge, captcha); } catch (IOException e) { throw new IOErrorException("Submit challenge error: " + e.getMessage(), e); + } catch (CaptchaRejectedException e) { + throw new UserErrorException( + "Captcha rejected, it may be outdated, already used or solved from a different IP address."); } } }