use config for api.Module
authorTero Marttila <terom@fixme.fi>
Thu, 04 Feb 2010 19:39:37 +0200
changeset 39 e82b6df5baa3
parent 38 66a42168c80b
child 40 b9fdb7710768
use config for api.Module
fixbot/api.py
--- a/fixbot/api.py	Thu Feb 04 19:38:54 2010 +0200
+++ b/fixbot/api.py	Thu Feb 04 19:39:37 2010 +0200
@@ -4,7 +4,7 @@
 from datetime import datetime
 import sys
 
-import buffer
+from fixbot import buffer, config
 
 class ModuleInfo (object) :
     """
@@ -170,9 +170,9 @@
 class Module (ModuleInfo, protocol.ClientFactory) :
     protocol = ClientProtocol
 
-    def __init__ (self, secret) :
+    def __init__ (self, config) :
         self.connection = None
-        self.secret = secret
+        self.secret = config['api-secret']
 
     def connected (self, connection) :
         log.msg("Connected!")
@@ -203,7 +203,7 @@
         self.nexus = nexus
         self.secret = secret
 
-class ClientOptions (usage.Options) :
+class ClientOptions (config.ConfigOptions) :
     optParameters = [
         (   "api-server",   "s",    "127.0.0.1",        "address of API server to connect to"           ),
         (   "api-port",     "P",    34888,              "port of API server to connect to",     int     ),
@@ -214,14 +214,15 @@
 
     ]
 
-def makeService (client_module_factory, config) :
+def makeService (module_class, config) :
     s = service.MultiService()
+
+    # build factory
+    factory = module_class(config)
     
     # the API client
-    module_factory = client_module_factory(config['api-secret'])
-    
     log.msg("Connecting to API server on [%s:%d]" % (config['api-server'], config['api-port']))
-    api_client = internet.TCPClient(config['api-server'], config['api-port'], module_factory)
+    api_client = internet.TCPClient(config['api-server'], config['api-port'], factory)
     
     api_client.setServiceParent(s)