Changeset 65
- Timestamp:
- 11/07/07 01:14:41 (1 year ago)
- Location:
- branches/3.0/turbomail
- Files:
-
- 2 modified
-
control.py (modified) (5 diffs)
-
extensions/utf8qp.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/turbomail/control.py
r52 r65 20 20 """ 21 21 22 __version__ = "$Revision: 1 $" 23 22 24 import logging 23 25 log = logging.getLogger("turbomail.control") … … 37 39 def __init__(self): 38 40 self.running = False 41 self.extensions = dict() 39 42 40 43 try: … … 43 46 turbomail.config = dict() 44 47 else: 48 if not hasattr(turbomail, 'config'): 49 turbomail.config = dict() 50 return 51 52 turbogears.config.update(turbomail.config) 45 53 turbomail.config = turbogears.config 46 54 self.start_extension = self.start … … 65 73 log.info("TurboMail extension starting up.") 66 74 67 # Load the requested pool manager.68 manager = turbomail.config.get("mail.manager", "immediate")69 controller = self.load_single_entry("turbomail.managers", manager)70 if not controller:71 turbomail.config.update({"mail.on": False})72 log.error("Unable to locate %s manager, TurboMail disabled." % manager)73 self.stop(force=True)74 return75 turbomail.manager = controller.load()76 turbomail.manager.start()75 def load(t, default): 76 extension = turbomail.config.get("mail.%s" % t, default) 77 controller = self.load_single_entry("turbomail.%ss" % t, extension) 78 if not controller: 79 turbomail.config.update({"mail.on": False}) 80 log.error("Unable to locate %s %s, TurboMail disabled." % (extension, t)) 81 self.stop(force=True) 82 return 83 setattr(turbomail, t, controller.load()) 84 controller.start() 77 85 78 # Load the requested mail provider. 79 provider = turbomail.config.get("mail.provider", "debug") 80 controller = self.load_single_entry("turbomail.providers", provider) 81 if not controller: 82 turbomail.config.update({"mail.on": False}) 83 log.error("Unable to locate %s provider, TurboMail disabled." % provider) 84 self.stop(force=True) 85 return 86 turbomail.provider = controller.load() 87 turbomail.provider.start() 86 # Load the requested manager and provider. 87 load('manager', 'immediate') 88 load('provider', 'debug') 88 89 89 90 # Load and initalize the various extensions. … … 91 92 for entrypoint in extensions: 92 93 log.debug("Found extension '%s'." % entrypoint.name) 93 if turbomail.config.get("mail." + entrypoint.name + ".on", False): 94 log.debug("Loading extension '%s'." % entrypoint.name) 95 ext = entrypoint.load() 96 if hasattr(ext, "start"): ext.start() 94 if turbomail.config.get("mail.%s.on" % entrypoint.name, False): 95 log.info("Loading extension '%s'." % entrypoint.name) 96 self.extensions[entrypoint.name] = entrypoint.load() 97 98 if hasattr(self.extensions[entrypoint.name], 'load'): 99 self.extensions[entrypoint.name] = self.extensions[entrypoint.name].load() 100 101 if hasattr(self.extensions[entrypoint.name], 'start'): 102 self.extensions[entrypoint.name].start() 97 103 98 104 self.running = True -
branches/3.0/turbomail/extensions/utf8qp.py
r42 r65 2 2 3 3 """TurboMail extension API.""" 4 5 __version__ = "$Revision: 1 $" 4 6 5 7 import logging … … 7 9 8 10 import turbomail 11 from turbomail.api import Extension 9 12 10 13 from email import Charset … … 13 16 14 17 15 def start(): 16 log.info("Configuring UTF-8 character set to use Quoted-Printable encoding.") 17 Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8') 18 turbomail.config.update({"mail.encoding": "utf-8"}) 18 class UTF8QuotedPrintable(Extension): 19 name = "utf8qp" 20 version = "1.0" 21 url = "http://www.python-turbomail.org/wiki/3.0/SampleExtension" 22 23 def start(self): 24 super(UTF8QuotedPrintable, self).start() 25 26 log.info("Configuring UTF-8 character set to use Quoted-Printable encoding.") 27 Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8') 28 turbomail.config.update({"mail.encoding": "utf-8"}) 29 30 def stop(self): 31 super(UTF8QuotedPrintable, self).stop() 32 33 log.info("Configuring UTF-8 character set to use Base-64 encoding.") 34 Charset.add_charset('utf-8', Charset.SHORTEST, Charset.BASE64, 'utf-8') 35 36 37 def load(): 38 return UTF8QuotedPrintable() 39 40
