예제 #1
0
파일: config.py 프로젝트: TheSchwa/sibyl
  def valid_wfile(self,s):
    """return True if we can write to the file"""

    try:
      util.can_write_file(s,delete=True)
      return True
    except:
      return False
예제 #2
0
  def valid_wfile(self,s):
    """return True if we can write to the file"""

    try:
      util.can_write_file(s,delete=True)
      return True
    except:
      return False
예제 #3
0
파일: config.py 프로젝트: TheSchwa/sibyl
  def __init__(self,conf_file):
    """create a new config parser tied to the given bot"""

    # OrderedDict containing full descriptions of options
    self.OPTS = odict([

#option         default               requir  parse_func            validate_func       post_func         whitelist blacklist
#-----------------------------------------------------------------------------------------------------------------------------
('protocols',   ({},                  True,   self.parse_protocols, None,               None,             None,     None)),
('enable',      ([],                  False,  self.parse_plugins,   None,               None,             None,     None)),
('disable',     ([],                  False,  self.parse_plugins,   None,               None,             None,     None)),
('rename',      ({},                  False,  self.parse_rename,    None,               None,             None,     None)),
('cmd_dir',     ('cmds',              False,  None,                 self.valid_dir,     None,             None,     None)),
('rooms',       ({},                  False,  self.parse_rooms,     None,               self.post_rooms,  None,     None)),
('nick_name',   ('Sibyl',             False,  None,                 None,               None,             None,     None)),
('log_level',   (logging.INFO,        False,  self.parse_log,       None,               None,             None,     None)),
('log_file',    ('data/sibyl.log',    False,  None,                 self.valid_wfile,   None,             None,     None)),
('log_append',  (True,                False,  self.parse_bool,      None,               None,             None,     None)),
('log_hooks',   (False,               False,  self.parse_bool,      None,               None,             None,     None)),
('log_requests',(False,               False,  self.parse_bool,      None,               None,             None,     None)),
('log_urllib3', (False,               False,  self.parse_bool,      None,               None,             None,     None)),
('bw_list',     ([('w','*','*')],     False,  self.parse_bw,        None,               None,             None,     None)),
('chat_ctrl',   (False,               False,  self.parse_bool,      None,               None,             None,     None)),
('cmd_prefix',  (None,                False,  None,                 None,               None,             None,     None)),
('except_reply',(False,               False,  self.parse_bool,      None,               None,             None,     None)),
('only_direct', (True,                False,  self.parse_bool,      None,               None,             None,     None)),
('catch_except',(True,                False,  self.parse_bool,      None,               None,             None,     None)),
('help_plugin', (False,               False,  self.parse_bool,      None,               None,             None,     None)),
('recon_min',   (30,                  False,  self.parse_int,       None,               None,             None,     None)),
('recon_max',   (300,                 False,  self.parse_int,       None,               None,             None,     None)),
('kill_stdout', (True,                False,  self.parse_bool,      None,               None,             None,     None)),
('tell_errors', (True,                False,  self.parse_bool,      None,               None,             None,     None)),
('admin_protos',(['cli'],             False,  self.parse_admin,     self.valid_admin,   None,             None,     None)),
('persistence', (True,                False,  self.parse_bool,      None,               None,             None,     None)),
('state_file',  ('data/state.pickle', False,  None,                 self.valid_wfile,   None,             None,     None)),
('idle_time',   (0.1,                 False,  self.parse_float,     self.valid_nump,    None,             None,     None)),
('idle_count',  (5,                   False,  self.parse_int,       self.valid_nump,    None,             None,     None)),
('idle_freq',   (1,                   False,  self.parse_int,       self.valid_nump,    None,             None,     None)),
('defer_total', (100,                 False,  self.parse_int,       None,               None,             None,     None)),
('defer_proto', (100,                 False,  self.parse_int,       None,               None,             None,     None)),
('defer_room',  (10,                  False,  self.parse_int,       None,               None,             None,     None)),
('defer_priv',  (10,                  False,  self.parse_int,       None,               None,             None,     None))

    ])

    # create "namespace" dict
    self.NS = {k:'sibylbot' for k in self.OPTS}

    # initialise variables
    self.opts = None
    self.conf_file = conf_file
    self.log_msgs = []
    self.logging = True
    self.real_time = False
    self.__log = logging.getLogger('config')

    # raise an exception if we can't write to conf_file
    util.can_write_file(self.conf_file,delete=True)

    # write a default conf_file if it doesn't exist at all
    if not os.path.isfile(self.conf_file):
      self.write_default_conf()
예제 #4
0
  def __init__(self,conf_file):
    """create a new config parser tied to the given bot"""

    # OrderedDict containing full descriptions of options
    self.OPTS = odict([

#option         default               requir  parse_func            validate_func       post_func
#------------------------------------------------------------------------------------------------
('protocols',   ({},                  True,   self.parse_protocols, None,               None)),
('enable',      ([],                  False,  self.parse_plugins,   None,               None)),
('disable',     ([],                  False,  self.parse_plugins,   None,               None)),
('rename',      ({},                  False,  self.parse_rename,    None,               None)),
('cmd_dir',     ('cmds',              False,  None,                 self.valid_dir,     None)),
('rooms',       ({},                  False,  self.parse_rooms,     None,               self.post_rooms)),
('nick_name',   ('Sibyl',             False,  None,                 None,               None)),
('log_level',   (logging.INFO,        False,  self.parse_log,       None,               None)),
('log_file',    ('data/sibyl.log',    False,  None,                 self.valid_wfile,   None)),
('log_append',  (True,                False,  self.parse_bool,      None,               None)),
('log_hooks',   (False,               False,  self.parse_bool,      None,               None)),
('log_requests',(False,               False,  self.parse_bool,      None,               None)),
('log_urllib3', (False,               False,  self.parse_bool,      None,               None)),
('bw_list',     ([('w','*','*')],     False,  self.parse_bw,        None,               None)),
('chat_ctrl',   (False,               False,  self.parse_bool,      None,               None)),
('cmd_prefix',  (None,                False,  None,                 None,               None)),
('except_reply',(False,               False,  self.parse_bool,      None,               None)),
('only_direct', (True,                False,  self.parse_bool,      None,               None)),
('catch_except',(True,                False,  self.parse_bool,      None,               None)),
('help_plugin', (False,               False,  self.parse_bool,      None,               None)),
('recon_wait',  (60,                  False,  self.parse_int,       None,               None)),
('kill_stdout', (True,                False,  self.parse_bool,      None,               None)),
('tell_errors', (True,                False,  self.parse_bool,      None,               None)),
('admin_protos',(['cli'],             False,  self.parse_admin,     self.valid_admin,   None)),
('persistence', (True,                False,  self.parse_bool,      None,               None)),
('state_file',  ('data/state.pickle', False,  None,                 self.valid_wfile,   None)),
('idle_time',   (0.1,                 False,  self.parse_float,     self.valid_nump,    None)),
('idle_count',  (5,                   False,  self.parse_int,       self.valid_nump,    None)),
('idle_freq',   (1,                   False,  self.parse_int,       self.valid_nump,    None)),
('defer_total', (100,                 False,  self.parse_int,       None,               None)),
('defer_proto', (100,                 False,  self.parse_int,       None,               None)),
('defer_room',  (10,                  False,  self.parse_int,       None,               None)),
('defer_priv',  (10,                  False,  self.parse_int,       None,               None))

    ])

    # create "namespace" dict
    self.NS = {k:'sibylbot' for k in self.OPTS}

    # initialise variables
    self.opts = None
    self.conf_file = conf_file
    self.log_msgs = []
    self.logging = True
    self.real_time = False
    self.__log = logging.getLogger('config')

    # raise an exception if we can't write to conf_file
    util.can_write_file(self.conf_file,delete=True)

    # write a default conf_file if it doesn't exist at all
    if not os.path.isfile(self.conf_file):
      self.write_default_conf()