Exemple #1
0
def startup(args=sys.argv[1:]):
    import optparse
    parser = optparse.OptionParser()
    parser.add_option("-l", "--listen", help="listening address:port", default="localhost:7770", dest="listening_addrinfo")
    parser.add_option("-c", "--connect", help="purple address:port", default="localhost:7771", dest="purple_addrinfo")
    parser.add_option("-s", help="does nothing. for compatibility", action="store_true", dest="dummy")
    options, args = parser.parse_args(args)
    
    tmp = options.listening_addrinfo.rsplit(":", 1)
    assert len(tmp) >= 2
    listen_address = tmp[0]
    listen_port = int(tmp[1])
    
    tmp = options.purple_addrinfo.rsplit(":", 1)
    assert len(tmp) >= 2
    connect_address = tmp[0]
    connect_port = int(tmp[1])

    if True:
        debuglog.init("Agent", title_color="cyan")
        log_info( "INSTALLING REACTOR...")
        from twisted.internet import reactor as _reactor
        global reactor
        reactor = _reactor
        
        yobotproto.yobot_proto_setlogger("Agent")
        svc = YobotServerService()
        
        log_info("connecting to purple at %s:%d" % (connect_address, connect_port))
        reactor.connectTCP(connect_address, connect_port, svc.getYobotPurpleFactory())
        
        log_info("listening on %s:%d" % (listen_address, listen_port))
        reactor.listenTCP(listen_port, svc.getYobotServerFactory(), interface=listen_address)
        
        reactor.run()
Exemple #2
0
def startup(args=sys.argv):
    import optparse
    options = optparse.OptionParser()
    options.add_option("-p", "--plugin", dest="selected_plugins", action="append",
                       help="include this plugin")
    options.add_option("-U", "--username", dest="username",
                       help="use this IM username")
    options.add_option("-P", "--password", dest="password",
                       help="use this password")
    options.add_option("-I", "--improto", dest="improto",
                       help="use this IM protocol [see documentation for a list]")
    options.add_option("-c", "--config-dir", dest="configdir",
                       help="client configuration directory",
                       default=yobot_interfaces.get_yobot_homedir())
    options.add_option("--use-proxy", dest="use_proxy", action="store_true",
                       help="use env proxy settings", default=False)
    options.add_option("--agent-address", dest="agent_addrinfo",
                       help="agent server:port")
    
    options, args = options.parse_args(args)
    
    #set our configuration directory
    yobot_interfaces.component_registry.register_component("yobot-config-dir", options.configdir)
    
    if options.selected_plugins:
        #generate dict:
        name_object = {}
        for plugin in yobot_interfaces.component_registry.get_plugins():
            name_object[plugin.plugin_name] = plugin
        for p in options.selected_plugins:
            plugin_object = name_object.get(p)
            if not plugin_object:
                log_warn("couldn't find plugin", p)
                continue
            yobot_interfaces.component_registry.activate_plugin(plugin_object)
    
    tmp = options.agent_addrinfo
    if tmp:
        tmp = tmp.rsplit(":", 1)
        address = tmp[0]
        if len(tmp) >= 2:
            port = int(tmp[1])
    else:
        #no address specified on the command line
        address, port = None, None
        
    debuglog.init("Client", title_color="green")
    yobotproto.yobot_proto_setlogger("Client")
    ui = UIClient()
    ui.run(address, port)