'add new source into the boosting manager'

def add_source(self, source):

    if (source not in self.boosting_sources):
        args = (self.session, source, self.settings, self.on_torrent_insert)
        try:
            isdir = os.path.isdir(source)
        except TypeError:
            isdir = False
        if isdir:
            self.boosting_sources[source] = DirectorySource(*args)
        elif (source.startswith('http://') or source.startswith('https://')):
            self.boosting_sources[source] = RSSFeedSource(*args)
        elif (len(source) == 20):
            self.boosting_sources[source] = ChannelSource(*args)
        else:
            self._logger.error('Cannot    add    unknown    source    %s', source)
            return
        if self.settings.auto_start_source:
            self.boosting_sources[source].start()
        self._logger.info('Added    source    %s', source)
    else:
        self._logger.info('Already    have    source    %s', source)
