コード例 #1
0
ファイル: test_log.py プロジェクト: posix4e/pyhole
    def test_logger(self):
        test_log_dir = utils.get_home_directory() + "logs/"

        try:
            # NOTE(jk0): If the configuration file doesn't exist, the config
            # class will generate it and raise a SystemExit.
            test_log = logger.get_logger("TEST")
        except SystemExit:
            test_log = logger.get_logger("TEST")

        self.assertEqual("TEST", test_log.name)
        self.assertEqual(test_log.level, 0)

        os.unlink(test_log_dir + "test.log")
コード例 #2
0
    def test_logger(self):
        test_log_dir = utils.get_home_directory() + "logs/"

        try:
            # NOTE(jk0): If the configuration file doesn't exist, the config
            # class will generate it and raise a SystemExit.
            test_log = logger.get_logger("TEST")
        except SystemExit:
            test_log = logger.get_logger("TEST")

        self.assertEqual("TEST", test_log.name)
        self.assertEqual(test_log.level, 0)

        os.unlink(test_log_dir + "test.log")
コード例 #3
0
ファイル: main.py プロジェクト: posix4e/pyhole
def Main():
    """Main loop."""
    config = utils.get_config()
    log = logger.get_logger()

    networks = config.get("networks", type="list")
    log.info("Starting %s..." % version.version_string())
    log.info("Connecting to networks: %s" % ", ".join(networks))

    procs = []
    for network in networks:
        proc = process.Process(network)
        proc.start()
        procs.append(proc)

    try:
        if config.get("api_enabled", type="bool"):
            api.run()

        while True:
            time.sleep(1)
            for proc in procs:
                if not proc.is_alive():
                    procs.remove(proc)

            if not procs:
                log.info("No longer connected to any networks; shutting down.")
                sys.exit(0)
    except KeyboardInterrupt:
        log.info("Caught KeyboardInterrupt; shutting down.")
コード例 #4
0
    def __init__(self, network):
        super(Process, self).__init__()
        self.log = logger.get_logger()
        self.config = utils.get_config()

        self.network = network
        self.reconnect_delay = self.config.get("reconnect_delay", type="int")
コード例 #5
0
ファイル: client.py プロジェクト: posix4e/pyhole
    def __init__(self, network):
        pyhole_config = utils.get_config()
        network_config = utils.get_config(network)

        self.addressed = False
        self.client = None

        self.log = logger.get_logger(str(network))
        self.version = version.version_string()

        self.admins = pyhole_config.get("admins", type="list")
        self.command_prefix = pyhole_config.get("command_prefix")

        self.api_token = network_config.get("api_token")
        self.nick = network_config.get("nick")

        self.load_plugins()
コード例 #6
0
ファイル: client.py プロジェクト: posix4e/pyhole
    def __init__(self, network):
        pyhole_config = utils.get_config()
        network_config = utils.get_config(network)

        self.addressed = False
        self.client = None

        self.log = logger.get_logger(str(network))
        self.version = version.version_string()

        self.admins = pyhole_config.get("admins", type="list")
        self.command_prefix = pyhole_config.get("command_prefix")

        self.api_token = network_config.get("api_token")
        self.nick = network_config.get("nick")

        self.load_plugins()
コード例 #7
0
ファイル: client.py プロジェクト: jk0/pyhole
    def __init__(self, network):
        irclib.SimpleIRCClient.__init__(self)

        logger.setup_logger(str(network))

        pyhole_config = utils.get_config()
        network_config = utils.get_config(network)

        self.log = logger.get_logger(str(network))
        self.version = version.version_string()
        self.source = None
        self.target = None
        self.addressed = False

        self.admins = pyhole_config.get("admins", type="list")
        self.command_prefix = pyhole_config.get("command_prefix")
        self.reconnect_delay = pyhole_config.get("reconnect_delay", type="int")
        self.rejoin_delay = pyhole_config.get("rejoin_delay", type="int")

        self.server = network_config.get("server")
        self.password = network_config.get("password", default=None)
        self.port = network_config.get("port", type="int", default=6667)
        self.ssl = network_config.get("ssl", type="bool", default=False)
        self.ipv6 = network_config.get("ipv6", type="bool", default=False)
        self.bind_to = network_config.get("bind_to", default=None)
        self.nick = network_config.get("nick")
        self.username = network_config.get("username", default=None)
        self.identify_password = network_config.get("identify_password",
                                                    default=None)
        self.channels = network_config.get("channels", type="list")

        self.load_plugins()

        self.log.info("Connecting to %s:%d as %s" % (self.server, self.port,
                      self.nick))
        self.connect(self.server, self.port, self.nick, self.password,
                     username=self.username,
                     connect_factory=connection.Factory(
                         wrapper=ssl.wrap_socket,
                         ipv6=self.ipv6).connect
                     if self.ssl else connection.Factory())
コード例 #8
0
ファイル: client.py プロジェクト: posix4e/pyhole
    def __init__(self, network):
        irclib.SimpleIRCClient.__init__(self)

        pyhole_config = utils.get_config()
        network_config = utils.get_config(network)

        self.log = logger.get_logger(str(network))
        self.version = version.version_string()
        self.source = None
        self.target = None
        self.addressed = False

        self.admins = pyhole_config.get("admins", type="list")
        self.command_prefix = pyhole_config.get("command_prefix")
        self.reconnect_delay = pyhole_config.get("reconnect_delay", type="int")
        self.rejoin_delay = pyhole_config.get("rejoin_delay", type="int")

        self.server = network_config.get("server")
        self.password = network_config.get("password", default=None)
        self.port = network_config.get("port", type="int", default=6667)
        self.ssl = network_config.get("ssl", type="bool", default=False)
        self.ipv6 = network_config.get("ipv6", type="bool", default=False)
        self.bind_to = network_config.get("bind_to", default=None)
        self.nick = network_config.get("nick")
        self.username = network_config.get("username", default=None)
        self.identify_password = network_config.get("identify_password",
                                                    default=None)
        self.channels = network_config.get("channels", type="list")

        self.load_plugins()

        self.log.info("Connecting to %s:%d as %s" %
                      (self.server, self.port, self.nick))
        self.connect(self.server,
                     self.port,
                     self.nick,
                     self.password,
                     username=self.username,
                     connect_factory=connection.Factory(
                         wrapper=ssl.wrap_socket, ipv6=self.ipv6).connect
                     if self.ssl else connection.Factory())