From 30c839694cff2d674faeae0f8d02f734ace520c8 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sat, 28 Feb 2015 16:29:04 +0100 Subject: [PATCH] Configure community possible again --- src/cutecoin/core/net/node.py | 2 - src/cutecoin/gui/process_cfg_community.py | 7 +- src/cutecoin/models/peer.py | 82 ------------------- src/cutecoin/models/peering.py | 98 ++++++++++++++++++----- 4 files changed, 81 insertions(+), 108 deletions(-) delete mode 100644 src/cutecoin/models/peer.py diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py index c8b1d6aa..2d53f67c 100644 --- a/src/cutecoin/core/net/node.py +++ b/src/cutecoin/core/net/node.py @@ -7,8 +7,6 @@ Created on 21 févr. 2015 from ucoinpy.documents.peer import Peer, BMAEndpoint, Endpoint from ucoinpy.api import bma from requests.exceptions import RequestException -from ...core.person import Person -from ...tools.exceptions import PersonNotFoundError import logging import time diff --git a/src/cutecoin/gui/process_cfg_community.py b/src/cutecoin/gui/process_cfg_community.py index db84a69a..29a6e72b 100644 --- a/src/cutecoin/gui/process_cfg_community.py +++ b/src/cutecoin/gui/process_cfg_community.py @@ -92,8 +92,7 @@ class StepPageAddpeers(Step): def display_page(self): # We add already known peers to the displayed list - for peer in self.config_dialog.community.peers: - self.config_dialog.peers.append(peer) + self.config_dialog.nodes = self.config_dialog.community.nodes try: tree_model = PeeringTreeModel(self.config_dialog.community) except requests.exceptions.RequestException: @@ -119,7 +118,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): self.account = account self.password_asker = password_asker self.step = None - self.peers = [] + self.nodes = [] step_init = StepPageInit(self) step_add_peers = StepPageAddpeers(self) @@ -189,7 +188,7 @@ class ProcessConfigureCommunity(QDialog, Ui_CommunityConfigurationDialog): menu = QMenu() action = menu.addAction("Delete", self.removeNode) if self.community is not None: - if len(self.peers) == 1: + if len(self.nodes) == 1: action.setEnabled(False) menu.exec_(self.mapToGlobal(point)) diff --git a/src/cutecoin/models/peer.py b/src/cutecoin/models/peer.py deleted file mode 100644 index 55b6cb4e..00000000 --- a/src/cutecoin/models/peer.py +++ /dev/null @@ -1,82 +0,0 @@ -''' -Created on 5 févr. 2014 - -@author: inso -''' - -import logging -from ucoinpy.documents.peer import BMAEndpoint, Peer - - -class RootItem(object): - - def __init__(self, name): - self.name = name - self.main_peer_items = [] - - def appendChild(self, item): - self.main_peer_items.append(item) - - def child(self, row): - return self.main_peer_items[row] - - def childCount(self): - return len(self.main_peer_items) - - def columnCount(self): - return 1 - - def data(self, column): - try: - return self.name - except IndexError: - return None - - def parent(self): - return None - - def row(self): - return 0 - - -class PeerItem(object): - - def __init__(self, main_peer, root_item): - e = next((e for e in main_peer.endpoints if type(e) is BMAEndpoint)) - if e.server: - self.main_peer_text = "{0}:{1}".format(e.server, e.port) - elif e.ipv4: - self.main_peer_text = "{0}:{1}".format(e.ipv4, e.port) - elif e.ipv6: - self.main_peer_text = "{0}:{1}".format(e.ipv6, e.port) - else: - self.main_peer_text = "{0}".format(main_peer.pubkey) - - self.root_item = root_item - self.peer_items = [] - - def appendChild(self, node_item): - self.peer_items.append(node_item) - - def child(self, row): - return self.peer_items[row] - - def childCount(self): - return len(self.peer_items) - - def columnCount(self): - return 1 - - def data(self, column): - try: - return self.main_peer_text - except IndexError: - return None - - def parent(self): - return self.root_item - - def row(self): - if self.root_item: - return self.root_item.main_peer_items.index(self) - return 0 diff --git a/src/cutecoin/models/peering.py b/src/cutecoin/models/peering.py index 079218b2..c3cc96f5 100644 --- a/src/cutecoin/models/peering.py +++ b/src/cutecoin/models/peering.py @@ -7,11 +7,84 @@ Created on 5 févr. 2014 from ucoinpy.api import bma from ucoinpy.documents.peer import BMAEndpoint, Peer from PyQt5.QtCore import QAbstractItemModel, QModelIndex, Qt -from .peer import PeerItem, RootItem from requests.exceptions import Timeout import logging +class RootItem(object): + + def __init__(self, name): + self.name = name + self.node_items = [] + + def appendChild(self, item): + self.node_items.append(item) + + def child(self, row): + return self.node_items[row] + + def childCount(self): + return len(self.node_items) + + def columnCount(self): + return 1 + + def data(self, column): + try: + return self.name + except IndexError: + return None + + def parent(self): + return None + + def row(self): + return 0 + + +class NodeItem(object): + + def __init__(self, node, root_item): + e = node.endpoint + if e.server: + self.address = "{0}:{1}".format(e.server, e.port) + elif e.ipv4: + self.address = "{0}:{1}".format(e.ipv4, e.port) + elif e.ipv6: + self.address = "{0}:{1}".format(e.ipv6, e.port) + else: + self.address = "{0}".format(node.pubkey) + + self.root_item = root_item + self.node_items = [] + + def appendChild(self, node_item): + self.node_items.append(node_item) + + def child(self, row): + return self.node_items[row] + + def childCount(self): + return len(self.node_items) + + def columnCount(self): + return 1 + + def data(self, column): + try: + return self.address + except IndexError: + return None + + def parent(self): + return self.root_item + + def row(self): + if self.root_item: + return self.root_item.node_items.index(self) + return 0 + + class PeeringTreeModel(QAbstractItemModel): ''' @@ -23,7 +96,7 @@ class PeeringTreeModel(QAbstractItemModel): Constructor ''' super().__init__(None) - self.peers = community.peering() + self.nodes = community.nodes self.root_item = RootItem(community.currency) self.refresh_tree() @@ -98,21 +171,6 @@ class PeeringTreeModel(QAbstractItemModel): def refresh_tree(self): logging.debug("root : " + self.root_item.data(0)) - for peer in self.peers: - logging.debug("Browser peers") - peer_item = PeerItem(peer, self.root_item) - self.root_item.appendChild(peer_item) - try: - e = next((e for e in peer.endpoints if type(e) is BMAEndpoint)) - peers = bma.network.peering.Peers(e.conn_handler()).get() - try: - for peer_data in peers: - peer = Peer.from_signed_raw("{0}{1}\n".format(peer_data['value']['raw'], - peer_data['value']['signature'])) - child_node_item = PeerItem(peer, peer_item) - peer_item.appendChild(child_node_item) - except Timeout: - continue - - except StopIteration as e: - continue + for node in self.nodes: + node_item = NodeItem(node, self.root_item) + self.root_item.appendChild(node_item) -- GitLab