From 81f6dfe88082874cdedce726e0f85d5370b06e5b Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Thu, 5 Nov 2015 22:21:14 +0100
Subject: [PATCH] Implement new written field

---
 src/cutecoin/core/registry/identity.py | 59 ++++++++++++++------------
 1 file changed, 33 insertions(+), 26 deletions(-)

diff --git a/src/cutecoin/core/registry/identity.py b/src/cutecoin/core/registry/identity.py
index 3ee79f8c..5c72a41a 100644
--- a/src/cutecoin/core/registry/identity.py
+++ b/src/cutecoin/core/registry/identity.py
@@ -266,11 +266,17 @@ class Identity(QObject):
                                                                               BlockchainState.VALIDATED,
                                                                               community)
                 certifier['cert_time'] = certifier_data['cert_time']['medianTime']
-                certifier['block_number'] = certifier_data['cert_time']['block']
+                if 'written' in certifier_data and certifier_data['written'] and 'number' in certifier_data['written']:
+                    certifier['block_number'] = certifier_data['written']['number']
+                else:
+                    certifier['block_number'] = certifier_data['cert_time']['block']
+
                 certifiers.append(certifier)
         except ValueError as e:
             if '404' in str(e):
                 logging.debug('bma.wot.CertifiersOf request error: {0}'.format(str(e)))
+            else:
+                logging.debug(str(e))
         except NoPeerAvailable as e:
             logging.debug(str(e))
 
@@ -311,20 +317,19 @@ class Identity(QObject):
             # add only valid certification...
             try:
                 cert_expired = yield from community.certification_expired(certifier['cert_time'])
-                if cert_expired:
-                    continue
             except NoPeerAvailable:
                 logging.debug("No peer available")
-                continue
-
-            # keep only the latest certification
-            already_found = [c['identity'].pubkey for c in unique_valid]
-            if certifier['identity'].pubkey in already_found:
-                index = already_found.index(certifier['identity'].pubkey)
-                if certifier['cert_time'] > unique_valid[index]['cert_time']:
-                    unique_valid[index] = certifier
-            else:
-                unique_valid.append(certifier)
+                cert_expired = True
+
+            if not cert_expired:
+                # keep only the latest certification
+                already_found = [c['identity'].pubkey for c in unique_valid]
+                if certifier['identity'].pubkey in already_found:
+                    index = already_found.index(certifier['identity'].pubkey)
+                    if certifier['cert_time'] > unique_valid[index]['cert_time']:
+                        unique_valid[index] = certifier
+                else:
+                    unique_valid.append(certifier)
         return unique_valid
 
     @asyncio.coroutine
@@ -348,7 +353,10 @@ class Identity(QObject):
                                                                               BlockchainState.VALIDATED,
                                                                               community)
                 certified['cert_time'] = certified_data['cert_time']['medianTime']
-                certified['block_number'] = certified_data['cert_time']['block']
+                if 'written' in certified_data and certified_data['written'] and 'number' in certified_data['written']:
+                    certified['block_number'] = certified_data['written']['number']
+                else:
+                    certified['block_number'] = certified_data['cert_time']['block']
                 certified_list.append(certified)
         except ValueError as e:
             if '404' in str(e):
@@ -387,20 +395,19 @@ class Identity(QObject):
             # add only valid certification...
             try:
                 cert_expired = yield from community.certification_expired(certified['cert_time'])
-                if cert_expired:
-                    continue
             except NoPeerAvailable:
                 logging.debug("No peer available")
-                continue
-
-            # keep only the latest certification
-            already_found = [c['identity'].pubkey for c in unique_valid]
-            if certified['identity'].pubkey in already_found:
-                index = already_found.index(certified['identity'].pubkey)
-                if certified['cert_time'] > unique_valid[index]['cert_time']:
-                    unique_valid[index] = certified
-            else:
-                unique_valid.append(certified)
+                cert_expired = True
+
+            if not cert_expired:
+                # keep only the latest certification
+                already_found = [c['identity'].pubkey for c in unique_valid]
+                if certified['identity'].pubkey in already_found:
+                    index = already_found.index(certified['identity'].pubkey)
+                    if certified['cert_time'] > unique_valid[index]['cert_time']:
+                        unique_valid[index] = certified
+                else:
+                    unique_valid.append(certified)
         return unique_valid
 
     @asyncio.coroutine
-- 
GitLab