1.1 --- a/imip_manager.py Mon Feb 02 00:12:53 2015 +0100
1.2 +++ b/imip_manager.py Mon Feb 02 00:39:05 2015 +0100
1.3 @@ -115,7 +115,8 @@
1.4 """
1.5
1.6 def __init__(self, obj, user, messenger):
1.7 - Handler.__init__(self, obj, messenger=messenger)
1.8 + Handler.__init__(self, messenger=messenger)
1.9 + self.set_object(obj)
1.10 self.user = user
1.11
1.12 self.organiser = self.obj.get_value("ORGANIZER")
2.1 --- a/imiptools/__init__.py Mon Feb 02 00:12:53 2015 +0100
2.2 +++ b/imiptools/__init__.py Mon Feb 02 00:39:05 2015 +0100
2.3 @@ -83,11 +83,13 @@
2.4 all_responses = []
2.5 handled = False
2.6
2.7 + handlers = [(name, cls(senders, recipient, self.messenger)) for name, cls in handlers]
2.8 +
2.9 for part in msg.walk():
2.10 if part.get_content_type() in itip_content_types and \
2.11 part.get_param("method"):
2.12
2.13 - all_responses += handle_itip_part(part, senders, recipient, self.handlers, self.messenger)
2.14 + all_responses += handle_itip_part(part, handlers)
2.15 handled = True
2.16
2.17 # When processing outgoing messages, no replies or deliveries are
3.1 --- a/imiptools/content.py Mon Feb 02 00:12:53 2015 +0100
3.2 +++ b/imiptools/content.py Mon Feb 02 00:39:05 2015 +0100
3.3 @@ -133,13 +133,13 @@
3.4
3.5 # Handler mechanism objects.
3.6
3.7 -def handle_itip_part(part, senders, recipient, handlers, messenger):
3.8 +def handle_itip_part(part, handlers):
3.9
3.10 """
3.11 - Handle the given iTIP 'part' from the given 'senders' for the given
3.12 - 'recipient' using the given 'handlers' and information provided by the
3.13 - given 'messenger'. Return a list of responses, each response being a tuple
3.14 - of the form (outgoing-recipients, message-part).
3.15 + Handle the given iTIP 'part' using the given 'handlers'.
3.16 +
3.17 + Return a list of responses, each response being a tuple of the form
3.18 + (outgoing-recipients, message-part).
3.19 """
3.20
3.21 method = part.get_param("method")
3.22 @@ -163,12 +163,12 @@
3.23
3.24 all_results = []
3.25
3.26 - for name, cls in handlers:
3.27 + for name, handler in handlers:
3.28 for fragment in get_fragments(itip, name):
3.29
3.30 # Dispatch to a handler and obtain any response.
3.31
3.32 - handler = cls(Object(fragment), senders, recipient, messenger)
3.33 + handler.set_object(Object(fragment))
3.34 results = methods[method](handler)()
3.35
3.36 # Aggregate responses for a single message.
3.37 @@ -195,14 +195,14 @@
3.38
3.39 "General handler support."
3.40
3.41 - def __init__(self, obj, senders=None, recipient=None, messenger=None):
3.42 + def __init__(self, senders=None, recipient=None, messenger=None):
3.43
3.44 """
3.45 Initialise the handler with the calendar 'obj' and the 'senders' and
3.46 'recipient' of the object (if specifically indicated).
3.47 """
3.48
3.49 - self.obj = obj
3.50 + self.obj = None
3.51 self.senders = senders and set(map(get_address, senders))
3.52 self.recipient = recipient and get_address(recipient)
3.53 self.messenger = messenger
3.54 @@ -218,6 +218,9 @@
3.55 except OSError:
3.56 self.publisher = None
3.57
3.58 + def set_object(self, obj):
3.59 + self.obj = obj
3.60 +
3.61 def wrap(self, text, link=True):
3.62
3.63 "Wrap any valid message for passing to the recipient."