1.1 --- a/imiptools/__init__.py Sun Aug 02 19:36:44 2015 +0200
1.2 +++ b/imiptools/__init__.py Tue Aug 04 19:59:05 2015 +0200
1.3 @@ -56,6 +56,7 @@
1.4 self.lmtp_socket = None
1.5 self.store_dir = None
1.6 self.publishing_dir = None
1.7 + self.preferences_dir = None
1.8 self.debug = False
1.9
1.10 def get_store(self):
1.11 @@ -77,6 +78,7 @@
1.12 messenger = self.messenger
1.13 store = self.get_store()
1.14 publisher = self.get_publisher()
1.15 + preferences_dir = self.preferences_dir
1.16
1.17 # Handle messages with iTIP parts.
1.18 # Typically, the details of recipients are of interest in handling
1.19 @@ -85,13 +87,13 @@
1.20 if not outgoing_only:
1.21 original_recipients = original_recipients or get_addresses(get_all_values(msg, "To") or [])
1.22 for recipient in original_recipients:
1.23 - Recipient(get_uri(recipient), messenger, store, publisher, self.handlers, self.debug).process(msg, senders, outgoing_only)
1.24 + Recipient(get_uri(recipient), messenger, store, publisher, preferences_dir, self.handlers, self.debug).process(msg, senders, outgoing_only)
1.25
1.26 # However, outgoing messages do not usually presume anything about the
1.27 # eventual recipients.
1.28
1.29 else:
1.30 - Recipient(None, messenger, store, publisher, self.handlers, self.debug).process(msg, senders, outgoing_only)
1.31 + Recipient(None, messenger, store, publisher, preferences_dir, self.handlers, self.debug).process(msg, senders, outgoing_only)
1.32
1.33 def process_args(self, args, stream):
1.34
1.35 @@ -108,6 +110,7 @@
1.36 lmtp = []
1.37 store_dir = []
1.38 publishing_dir = []
1.39 + preferences_dir = []
1.40 outgoing_only = False
1.41
1.42 l = []
1.43 @@ -144,6 +147,11 @@
1.44 elif arg == "-P":
1.45 l = publishing_dir
1.46
1.47 + # Switch to getting the preferences directory.
1.48 +
1.49 + elif arg == "-p":
1.50 + l = preferences_dir
1.51 +
1.52 # Ignore debugging options.
1.53
1.54 elif arg == "-d":
1.55 @@ -154,6 +162,7 @@
1.56 self.messenger = Messenger(lmtp_socket=lmtp and lmtp[0] or None, sender=senders and senders[0] or None)
1.57 self.store_dir = store_dir and store_dir[0] or None
1.58 self.publishing_dir = publishing_dir and publishing_dir[0] or None
1.59 + self.preferences_dir = preferences_dir and preferences_dir[0] or None
1.60 self.process(stream, original_recipients, outgoing_only)
1.61
1.62 def __call__(self):
1.63 @@ -191,14 +200,14 @@
1.64
1.65 "A processor acting as a client on behalf of a recipient."
1.66
1.67 - def __init__(self, user, messenger, store, publisher, handlers, debug):
1.68 + def __init__(self, user, messenger, store, publisher, preferences_dir, handlers, debug):
1.69
1.70 """
1.71 Initialise the recipient with the given 'user' identity, 'messenger',
1.72 - 'store', 'publisher' and 'debug' status.
1.73 + 'store', 'publisher', 'preferences_dir', 'handlers' and 'debug' status.
1.74 """
1.75
1.76 - Client.__init__(self, user, messenger, store, publisher)
1.77 + Client.__init__(self, user, messenger, store, publisher, preferences_dir)
1.78 self.handlers = handlers
1.79 self.debug = debug
1.80
1.81 @@ -213,7 +222,8 @@
1.82 """
1.83
1.84 handlers = dict([(name, cls(senders, self.user and get_address(self.user),
1.85 - self.messenger, self.store, self.publisher))
1.86 + self.messenger, self.store, self.publisher,
1.87 + self.preferences_dir))
1.88 for name, cls in self.handlers])
1.89 handled = False
1.90