def parse_lib(conf,opt,val): """parse the lib into a list""" val = val.replace('\n','') # paths are separated by semi-colon entries = util.split_strip(val,';') lib = [] for entry in entries: if entry=='': continue if ',' in entry: if not util.has_module('smbc'): conf.log('warning','Ignoring share "%s" (missing smbc)' % entry) continue # samba share parameters are separated by comma params = util.split_strip(entry,',') item = {'server':params[0], 'share':params[1], 'username':None, 'password':None} if len(params)>2: item['username'] = params[2] if len(params)>3: item['password'] = Password(params[3]) else: item = entry lib.append(item) return lib
def parse_rooms(self,opt,val): """parse the rooms into a list""" val = val.replace('\n','') entries = util.split_strip(val,';') rooms = {} for entry in entries: if entry=='': continue params = util.split_strip(entry,',') if not params[0] or ':' not in params[0]: self.log('warning','Ignoring room "%s"; invalid syntax' % entry) continue room = util.split_strip(params[0],':') (pname,room) = (room[0],':'.join(room[1:])) # check for optional arguments room = {'room':room,'nick':None,'pass':None} if len(params)>1 and params[1]: room['nick'] = params[1] if len(params)>2 and params[2]: room['pass'] = Password(params[2]) # add room to dict if pname in rooms: rooms[pname].append(room) else: rooms[pname] = [room] return rooms
def parse_pass(self,opt,val): """return a Password-object-encapsulated string""" return Password(val)