infocalypse
 
(Steve Dougherty)
2013-06-12: Add contexts to WoT identity parsing.

Add contexts to WoT identity parsing.

diff --git a/infocalypse/wot.py b/infocalypse/wot.py
--- a/infocalypse/wot.py
+++ b/infocalypse/wot.py
@@ -200,7 +200,8 @@ def resolve_identity(ui, truster, nickna
 def read_local_identity(message, id_num):
     """
     Reads an FCP response from a WoT plugin describing a local identity and
-    returns a dictionary of Nickname, InsertURI, RequestURI, and Identity.
+    returns a dictionary of Nickname, InsertURI, RequestURI, Identity, and
+    each numbered Context.
     """
     result = read_identity(message, id_num)
     result['InsertURI'] = message['Replies.InsertURI{0}'.format(id_num)]
@@ -210,7 +211,7 @@ def read_local_identity(message, id_num)
 def read_identity(message, id_num):
     """
     Reads an FCP response from a WoT plugin describing an identity and
-    returns a dictionary of Nickname, RequestURI, and Identity.
+    returns a dictionary of Nickname, RequestURI, Identity, and Contexts.
     """
     # Return properties for the selected identity. (by number)
     result = {}
@@ -221,4 +222,11 @@ def read_identity(message, id_num):
     # depend on and would allow just returning all properties for the identity.
     #property_prefix = "Replies.Properties{0}".format(id_num)
 
+    # Add contexts for the identity too.
+    prefix = "Replies.Contexts{0}.Context".format(id_num)
+    for key in message.iterkeys():
+        if key.startswith(prefix):
+            num = key[len(prefix):]
+            result["Context{0}".format(num)] = message[key]
+
     return result