diff --git a/beemapi/exceptions.py b/beemapi/exceptions.py index d734578e1b4639fa0d4bab00ef1b4d08b5074e65..d72962fdc35b9fe71225ac777508d9f05acd6ac3 100644 --- a/beemapi/exceptions.py +++ b/beemapi/exceptions.py @@ -76,6 +76,10 @@ class NoApiWithName(RPCError): pass +class FollowApiNotEnabled(RPCError): + pass + + class ApiNotSupported(RPCError): pass diff --git a/beemapi/steemnoderpc.py b/beemapi/steemnoderpc.py index 6d6705c4247d9226b9ef8b6db23359ff1fdb381f..597aceccf18342a2a7c19484980f9cb293d8cb49 100644 --- a/beemapi/steemnoderpc.py +++ b/beemapi/steemnoderpc.py @@ -125,6 +125,12 @@ class SteemNodeRPC(GrapheneRPC): raise exceptions.ApiNotSupported(msg) else: raise exceptions.NoApiWithName(msg) + elif re.search("follow_api_plugin not enabled", msg): + if self.nodes.working_nodes_count > 1 and self.nodes.num_retries > -1: + self._switch_to_next_node(str(e)) + doRetry = True + else: + raise exceptions.FollowApiNotEnabled(msg) elif re.search("irrelevant signature included", msg): raise exceptions.UnnecessarySignatureDetected(msg) elif re.search("WinError", msg):