Beispiel #1
0
    def connect(self):
        self.campfire = Campfire(self.subdomain, self.auth_token)
        self.room = self.campfire.find_room_by_name(self.room_name)
        self.room.join()
        self.username = self.campfire.me()['name']

        def callback(message):
            text = message['body']
            user_id = message['user_id']
            user = self.users.get(user_id)

            if user_id:
                if not user:
                    user = self.campfire.user(user_id)['user']['name']
                    self.users[user_id] = user
    
                self.perform_action(user, text)

        def err_callback(exc):
            self.error(exc)

        self.room.join()
        self.room.listen(callback, err_callback, start_reactor=False)
        application = service.Application("firebot")
        return application
Beispiel #2
0
 def __init__(self):
     self.client = Campfire(settings.CAMPFIRE_SUBDOMAIN,
                            settings.CAMPFIRE_API_KEY,
                            ssl=True)
     self.rooms = []
     self.plugins = []
     for p in settings.INSTALLED_PLUGINS:
         klass = get_callable(p)
         if klass:
             print 'Loading plugin: %s' % klass
             self.plugins.append(klass())
Beispiel #3
0
    def __init__(self):
        self.client = Campfire(settings.CAMPFIRE_SUBDOMAIN,
                               settings.CAMPFIRE_API_KEY)

        self.rooms = []
        self.since_message_id = None
        self.plugins = []

        for plugin in settings.REGISTERED_PLUGINS:
            path = plugin.split('.')
            klass = path.pop()
            plugin_obj = getattr(
                __import__('.'.join(path), globals(), locals(), [klass], -1),
                klass)
            self.plugins.append(plugin_obj())

        for room in settings.CAMPFIRE_ROOMS:
            log.debug("Joining %s" % room)
            room = self.client.find_room_by_name(room)
            if room:
                self.rooms.append(room)
                room.join()
Beispiel #4
0
    def reload(self, **kwargs):
        '''Given a new set of configurations, make sure we're up to date'''
        self.updatePath()
        log.info(repr(kwargs))
        subdomain = kwargs.get('subdomain', self.subdomain)
        apiKey = kwargs.get('api_key', self.apiKey)
        if not subdomain and not apiKey:
            log.critical('Need a subdomain and API key')
            exit(1)
        self.client = Campfire(subdomain, apiKey)

        # Now register the bot's name
        self.name = kwargs.get('name', self.name) or 'campy'
        self.nameRE = re.compile(r'\s*%s\s+(.+)\s*$' % re.escape(self.name),
                                 re.I)

        # Now join all the appropriate rooms
        for room in kwargs.get('rooms', []):
            if not self.joinRoom(room):
                log.warn('Could not find room %s' % room)
            else:
                log.debug('Joined %s' % room)