]> nmode's Git Repositories - signal-cli/commitdiff
implement DBus submitRateLimitChallenge method (#763)
authorJohn Freed <okgithub@johnfreed.com>
Thu, 7 Oct 2021 05:46:15 +0000 (07:46 +0200)
committerGitHub <noreply@github.com>
Thu, 7 Oct 2021 05:46:15 +0000 (07:46 +0200)
update documentation

man/signal-cli-dbus.5.adoc
src/main/java/org/asamk/Signal.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java

index e7cd083f16305891151f167b6dec0dffcaa370d8..594c29416a9a32d88cca2bc6a22e48204cea0d18 100755 (executable)
@@ -363,8 +363,14 @@ uploadStickerPack(stickerPackPath<s>) -> url<s>::
 
 Exception: Failure
 
-== Signals
+submitRateLimitChallenge(challenge<s>, captcha<s>) -> <>::
+* challenge : The challenge token taken from the proof required error.
+* captcha   : The captcha token from the solved captcha on the Signal website..
+Can be used to lift some rate-limits by solving a captcha.
 
+Exception: IOErrorException
+
+== Signalss
 SyncMessageReceived (timestamp<x>, sender<s>, destination<s>, groupId<ay>,message<s>, attachments<as>)::
 The sync message is received when the user sends a message from a linked device.
 
index b88000858c38e1b4b1b15c82e782ae2e49157263..a7832714155de12b02efe509da6a3653003fff31 100644 (file)
@@ -1,5 +1,7 @@
 package org.asamk;
 
+import org.asamk.signal.commands.exceptions.IOErrorException;
+
 import org.freedesktop.dbus.DBusPath;
 import org.freedesktop.dbus.annotations.DBusProperty;
 import org.freedesktop.dbus.exceptions.DBusException;
@@ -141,6 +143,8 @@ public interface Signal extends DBusInterface {
 
     String uploadStickerPack(String stickerPackPath) throws Error.Failure;
 
+    void submitRateLimitChallenge(String challenge, String captchaString) throws IOErrorException;
+
     class MessageReceived extends DBusSignal {
 
         private final long timestamp;
index ab9c89b2ee6afd3f087356d7bfcbece2a5b60bd5..698ce7c1d2c227d3aad1a8eb39d50d3e1ce70422 100644 (file)
@@ -1,7 +1,9 @@
 package org.asamk.signal.dbus;
 
 import org.asamk.Signal;
+import org.asamk.Signal.Error;
 import org.asamk.signal.BaseConfig;
+import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.manager.AttachmentInvalidException;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.NotMasterDeviceException;
@@ -81,6 +83,18 @@ public class DbusSignalImpl implements Signal {
         return m.getSelfNumber();
     }
 
+    @Override
+    public void submitRateLimitChallenge(String challenge, String captchaString) throws IOErrorException {
+        final var captcha = captchaString == null ? null : captchaString.replace("signalcaptcha://", "");
+
+        try {
+            m.submitRateLimitRecaptchaChallenge(challenge, captcha);
+        } catch (IOException e) {
+            throw new IOErrorException("Submit challenge error: " + e.getMessage(), e);
+        }
+
+    }
+
     @Override
     public void addDevice(String uri) {
         try {