1.1 --- a/imiptools/content.py Mon Feb 02 17:25:20 2015 +0100
1.2 +++ b/imiptools/content.py Mon Feb 02 17:29:58 2015 +0100
1.3 @@ -24,7 +24,7 @@
1.4 from email.mime.text import MIMEText
1.5 from imiptools.config import MANAGER_PATH, MANAGER_URL
1.6 from imiptools.data import Object, parse_object, \
1.7 - get_address, get_fragments, get_uri, get_value, \
1.8 + get_address, get_uri, get_value, \
1.9 is_new_object, uri_dict, uri_item
1.10 from imiptools.dates import *
1.11 from imiptools.period import can_schedule, insert_period, remove_period
1.12 @@ -142,6 +142,7 @@
1.13 (outgoing-recipients, message-part).
1.14 """
1.15
1.16 + handlers = dict(handlers)
1.17 method = part.get_param("method")
1.18
1.19 # Decode the data and parse it.
1.20 @@ -163,12 +164,19 @@
1.21
1.22 all_results = []
1.23
1.24 - for name, handler in handlers:
1.25 - for fragment in get_fragments(itip, name):
1.26 + for name, items in itip.items():
1.27 +
1.28 + # Get a handler for the given section.
1.29 +
1.30 + handler = handlers.get(name)
1.31 + if not handler:
1.32 + continue
1.33 +
1.34 + for item in items:
1.35
1.36 # Dispatch to a handler and obtain any response.
1.37
1.38 - handler.set_object(Object(fragment))
1.39 + handler.set_object(Object({name : item}))
1.40 results = methods[method](handler)()
1.41
1.42 # Aggregate responses for a single message.
1.43 @@ -202,14 +210,14 @@
1.44 'recipient' of the object (if specifically indicated).
1.45 """
1.46
1.47 - self.obj = None
1.48 self.senders = senders and set(map(get_address, senders))
1.49 self.recipient = recipient and get_address(recipient)
1.50 self.messenger = messenger
1.51
1.52 - self.uid = self.obj.get_value("UID")
1.53 - self.sequence = self.obj.get_value("SEQUENCE")
1.54 - self.dtstamp = self.obj.get_value("DTSTAMP")
1.55 + self.obj = None
1.56 + self.uid = None
1.57 + self.sequence = None
1.58 + self.dtstamp = None
1.59
1.60 self.store = imip_store.FileStore()
1.61
1.62 @@ -220,6 +228,9 @@
1.63
1.64 def set_object(self, obj):
1.65 self.obj = obj
1.66 + self.uid = self.obj.get_value("UID")
1.67 + self.sequence = self.obj.get_value("SEQUENCE")
1.68 + self.dtstamp = self.obj.get_value("DTSTAMP")
1.69
1.70 def wrap(self, text, link=True):
1.71
2.1 --- a/imiptools/data.py Mon Feb 02 17:25:20 2015 +0100
2.2 +++ b/imiptools/data.py Mon Feb 02 17:29:58 2015 +0100
2.3 @@ -162,19 +162,6 @@
2.4
2.5 # Structure access functions.
2.6
2.7 -def get_fragments(d, name):
2.8 -
2.9 - """
2.10 - Return all fragments from 'd' with the given 'name'. Each fragment is thus
2.11 - suitable for using to initialise Object instances.
2.12 - """
2.13 -
2.14 - fragments = []
2.15 - if d.has_key(name):
2.16 - for value in d[name]:
2.17 - fragments.append(dict([(name, value)]))
2.18 - return fragments
2.19 -
2.20 def get_items(d, name, all=True):
2.21
2.22 """