From 9d27438c12305d70db7c5d33c2b6e739a49685a4 Mon Sep 17 00:00:00 2001
From: crokkon <33018033+crokkon@users.noreply.github.com>
Date: Thu, 22 Aug 2019 22:31:44 +0200
Subject: [PATCH] discussions.py: handle different node formats

---
 beem/comment.py     |  4 +++-
 beem/discussions.py | 13 ++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/beem/comment.py b/beem/comment.py
index 1300d5ab..dbd21b08 100644
--- a/beem/comment.py
+++ b/beem/comment.py
@@ -588,7 +588,9 @@ class Comment(BlockchainObject):
             return None
         self.steem.rpc.set_next_node_on_empty_reply(False)
         if self.steem.rpc.get_use_appbase():
-            content_replies = self.steem.rpc.get_content_replies({'author': post_author, 'permlink': post_permlink}, api="tags")['discussions']
+            content_replies = self.steem.rpc.get_content_replies({'author': post_author, 'permlink': post_permlink}, api="tags")
+            if 'discussions' in content_replies:
+                content_replies = content_replies['discussions']
         else:
             content_replies = self.steem.rpc.get_content_replies(post_author, post_permlink, api="tags")
         if raw_data:
diff --git a/beem/discussions.py b/beem/discussions.py
index 1aa1f192..e6614235 100644
--- a/beem/discussions.py
+++ b/beem/discussions.py
@@ -546,7 +546,9 @@ class Discussions_by_blog(list):
         self.steem = steem_instance or shared_steem_instance()
         self.steem.rpc.set_next_node_on_empty_reply(self.steem.rpc.get_use_appbase())
         if self.steem.rpc.get_use_appbase():
-            posts = self.steem.rpc.get_discussions_by_blog(discussion_query, api="tags")['discussions']
+            posts = self.steem.rpc.get_discussions_by_blog(discussion_query, api="tags")
+            if 'discussions' in posts:
+                posts = posts['discussions']  # inconsistent format across node types
         else:
             # limit = discussion_query["limit"]
             # account = discussion_query["tag"]
@@ -580,7 +582,9 @@ class Discussions_by_comments(list):
         self.steem = steem_instance or shared_steem_instance()
         self.steem.rpc.set_next_node_on_empty_reply(self.steem.rpc.get_use_appbase())
         if self.steem.rpc.get_use_appbase():
-            posts = self.steem.rpc.get_discussions_by_comments(discussion_query, api="tags")['discussions']
+            posts = self.steem.rpc.get_discussions_by_comments(discussion_query, api="tags")
+            if 'discussions' in posts:
+                posts = posts['discussions']  # inconsistent format across node types
         else:
             posts = self.steem.rpc.get_discussions_by_comments(discussion_query)
         super(Discussions_by_comments, self).__init__(
@@ -640,9 +644,12 @@ class Replies_by_last_update(list):
         self.steem = steem_instance or shared_steem_instance()
         self.steem.rpc.set_next_node_on_empty_reply(self.steem.rpc.get_use_appbase())
         if self.steem.rpc.get_use_appbase():
-            posts = self.steem.rpc.get_replies_by_last_update(discussion_query, api="tags")['discussions']
+            posts = self.steem.rpc.get_replies_by_last_update(discussion_query, api="tags")
+            if 'discussions' in posts:
+                posts = posts['discussions']
         else:
             posts = self.steem.rpc.get_replies_by_last_update(discussion_query["start_parent_author"], discussion_query["start_permlink"], discussion_query["limit"])
+
         super(Replies_by_last_update, self).__init__(
             [
                 Comment(x, lazy=lazy, steem_instance=self.steem)
-- 
GitLab