diff --git a/beem/account.py b/beem/account.py index 57dd80b2730c463cfb50074d5f3fbb35d800f230..505d7995b46f7fdfb4d70798f1cfb8e663674da2 100644 --- a/beem/account.py +++ b/beem/account.py @@ -48,7 +48,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("gtg", steem_instance=stm) >>> print(account) <Account gtg> @@ -610,7 +610,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("steemit", steem_instance=stm) >>> account.get_feed(0, 1, raw_data=True) [] @@ -666,7 +666,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("steemit", steem_instance=stm) >>> account.get_feed_entries(0, 1) [] @@ -689,7 +689,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("steemit", steem_instance=stm) >>> entry = account.get_blog_entries(0, 1, raw_data=True)[0] >>> print("%s - %s - %s - %s" % (entry["author"], entry["permlink"], entry["blog"], entry["reblog_on"])) @@ -713,7 +713,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("steemit", steem_instance=stm) >>> account.get_blog(0, 1) [<Comment @steemit/firstpost>] @@ -773,7 +773,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("steemit", steem_instance=stm) >>> account.get_blog_authors() [] @@ -1352,7 +1352,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("beem.app", steem_instance=stm) >>> account.get_tags_used_by_author() [] @@ -1410,7 +1410,7 @@ class Account(BlockchainObject): >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> account = Account("beem.app", steem_instance=stm) >>> account.get_account_votes() [] diff --git a/beem/blockchain.py b/beem/blockchain.py index 8672220489bc48fe34446f9ede21e702320d68b1..27ef028387da768c39edb1ff8a60b63dc4ddba5d 100644 --- a/beem/blockchain.py +++ b/beem/blockchain.py @@ -17,7 +17,7 @@ from time import sleep import logging from datetime import datetime, timedelta from .utils import formatTimeString, addTzInfo -from .block import Block +from .block import Block, BlockHeader from beemapi.node import Nodes from beemapi.steemnoderpc import SteemNodeRPC from .exceptions import BatchedCallsNotSupported, BlockDoesNotExistsException, BlockWaitTimeExceeded, OfflineHasNoRPCException @@ -325,7 +325,7 @@ class Blockchain(object): date = addTzInfo(date) if estimateForwards: block_offset = 10 - first_block = Block(block_offset, steem_instance=self.steem) + first_block = BlockHeader(block_offset, steem_instance=self.steem) time_diff = date - first_block.time() block_number = math.floor(time_diff.total_seconds() / self.block_interval + block_offset) else: @@ -343,7 +343,7 @@ class Blockchain(object): second_last_block_time_diff_seconds = 10 while block_time_diff.total_seconds() > self.block_interval or block_time_diff.total_seconds() < -self.block_interval: - block = Block(block_number, steem_instance=self.steem) + block = BlockHeader(block_number, steem_instance=self.steem) second_last_block_time_diff_seconds = last_block_time_diff_seconds last_block_time_diff_seconds = block_time_diff.total_seconds() block_time_diff = date - block.time() diff --git a/beem/cli.py b/beem/cli.py index 6d82fcd819050701978d9ba8de395a6103b2b558..87d073eee107809ed7a3b1a414a75579ffde3ad9 100644 --- a/beem/cli.py +++ b/beem/cli.py @@ -431,7 +431,7 @@ def updatenodes(show, test, only_https, only_wss, only_appbase, only_non_appbase t.align = "l" nodelist = NodeList() nodelist.update_nodes(steem_instance=stm) - nodes = nodelist.get_nodes(normal=not only_appbase, appbase=not only_non_appbase, wss=not only_https, https=not only_wss) + nodes = nodelist.get_nodes(exclude_limited=False, normal=not only_appbase, appbase=not only_non_appbase, wss=not only_https, https=not only_wss) if show or test: sorted_nodes = sorted(nodelist, key=lambda node: node["score"], reverse=True) for node in sorted_nodes: diff --git a/beem/comment.py b/beem/comment.py index 51f88c628f9097ffd4c39d6d9bdf1220030c0b93..2c0b501095a0d95c0c72e099e4668fa687c8c992 100644 --- a/beem/comment.py +++ b/beem/comment.py @@ -36,7 +36,7 @@ class Comment(BlockchainObject): >>> from beem.comment import Comment >>> from beem.account import Account >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> acc = Account("gtg", steem_instance=stm) >>> authorperm = acc.get_blog(limit=1)[0]["authorperm"] >>> c = Comment(authorperm) diff --git a/beem/nodelist.py b/beem/nodelist.py index 14a1bdd4154d193d5bf19be3f753b7ad67e6eb8e..b9026b9a93698b1643dcad23050df831602db4ca 100644 --- a/beem/nodelist.py +++ b/beem/nodelist.py @@ -375,7 +375,7 @@ class NodeList(list): new_nodes.append(new_node) super(NodeList, self).__init__(new_nodes) - def get_nodes(self, exclude_limited=True, dev=False, testnet=False, testnetdev=False, wss=True, https=True, not_working=False, normal=True, appbase=True): + def get_nodes(self, exclude_limited=False, dev=False, testnet=False, testnetdev=False, wss=True, https=True, not_working=False, normal=True, appbase=True): """ Returns nodes as list :param bool exclude_limited: When True, limited nodes are excluded diff --git a/beem/version.py b/beem/version.py index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644 --- a/beem/version.py +++ b/beem/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.20.22' +version = '0.20.23' diff --git a/beem/vote.py b/beem/vote.py index 4cdde3ad7ed96ad49e59417a1a6c12edadbccc74..f8c4bafaa81e8ee674dce9e4208b1233b542b20d 100644 --- a/beem/vote.py +++ b/beem/vote.py @@ -32,7 +32,7 @@ class Vote(BlockchainObject): >>> from beem.vote import Vote >>> from beem import Steem - >>> stm = Steem("https://steemd.minnowsupportproject.org") + >>> stm = Steem() >>> v = Vote("@gtg/steem-pressure-4-need-for-speed|gandalf", steem_instance=stm) """ diff --git a/beemapi/graphenerpc.py b/beemapi/graphenerpc.py index d4a2c8eeac0da78fb1bb05e2c2be5ce9c96a7739..cbcd0a784b398077e3ab676a4bb2204afde85098 100644 --- a/beemapi/graphenerpc.py +++ b/beemapi/graphenerpc.py @@ -414,7 +414,7 @@ class GrapheneRPC(object): ret = {} try: - ret = json.loads(reply, strict=False) + ret = json.loads(reply, strict=False, encoding="utf-8") except ValueError: self._check_for_server_error(reply) diff --git a/beemapi/steemnoderpc.py b/beemapi/steemnoderpc.py index 36f0758463a163470f0681457f0248bddb4bf2cc..638970c0f7260c8f5bf7512798d6910324575bca 100644 --- a/beemapi/steemnoderpc.py +++ b/beemapi/steemnoderpc.py @@ -117,8 +117,11 @@ class SteemNodeRPC(GrapheneRPC): raise exceptions.NoMethodWithName(msg) elif re.search("Could not find API", msg): if self._check_api_name(msg): - # self._switch_to_next_node(msg, "ApiNotSupported") - raise exceptions.ApiNotSupported(msg) + if self.nodes.working_nodes_count > 1 and self.num_retries > -1: + self._switch_to_next_node(msg, "ApiNotSupported") + doRetry = True + else: + raise exceptions.ApiNotSupported(msg) else: raise exceptions.NoApiWithName(msg) elif re.search("irrelevant signature included", msg): @@ -146,9 +149,12 @@ class SteemNodeRPC(GrapheneRPC): raise exceptions.UnkownKey(msg) elif re.search("Assert Exception:v.is_object(): Input data have to treated as object", msg): raise exceptions.UnhandledRPCError("Use Operation(op, appbase=True) to prevent error: " + msg) - # elif re.search("Client returned invalid format. Expected JSON!", msg): - # self._switch_to_next_node(msg) - # doRetry = True + elif re.search("Client returned invalid format. Expected JSON!", msg): + if self.nodes.working_nodes_count > 1 and self.num_retries > -1: + self._switch_to_next_node(msg) + doRetry = True + else: + raise exceptions.UnhandledRPCError(msg) elif msg: raise exceptions.UnhandledRPCError(msg) else: diff --git a/beemapi/version.py b/beemapi/version.py index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644 --- a/beemapi/version.py +++ b/beemapi/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.20.22' +version = '0.20.23' diff --git a/beembase/version.py b/beembase/version.py index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644 --- a/beembase/version.py +++ b/beembase/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.20.22' +version = '0.20.23' diff --git a/beemgraphenebase/version.py b/beemgraphenebase/version.py index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644 --- a/beemgraphenebase/version.py +++ b/beemgraphenebase/version.py @@ -1,2 +1,2 @@ """THIS FILE IS GENERATED FROM beem SETUP.PY.""" -version = '0.20.22' +version = '0.20.23' diff --git a/setup.py b/setup.py index 437d5e7c38c72173e7c32f487f16d3cf6ec40210..e1020c920de119af4bbd8ae3832edcff199e2c13 100755 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ except LookupError: ascii = codecs.lookup('ascii') codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs')) -VERSION = '0.20.22' +VERSION = '0.20.23' tests_require = ['mock >= 2.0.0', 'pytest', 'pytest-mock', 'parameterized']