Exemplo n.º 1
0
    def load_middlewares(self, names=[]):
        """Load new middlewares
        """

        for m in (names or self.middlewares):

            if not callable(m) and isinstance(m, str):

                func = self.bot.load_thing(m)

                if (func and callable(func)
                        and isinstance(func, types.FunctionType)):

                    self._middlewares.append(func)
                    continue

                elif func:
                    middleware = func()

                    for package in getattr(middleware, "requirements", []):
                        install_package(package)

                    self._middlewares.append(middleware)
                    continue

            elif callable(m):
                self._middlewares.append(m)

        self._all_middlewares = deepcopy(self.middlewares)
Exemplo n.º 2
0
    def sc(self):
        """Returns slack client"""
        if not hasattr(self, "client"):
            try:
                from slackclient import SlackClient
            except ImportError:
                install_package("slackclient")
                from slackclient import SlackClient

            self.client = SlackClient(self.conf['token'])

        return self.client
Exemplo n.º 3
0
    def init_logging(self):
        """Init logging"""

        if not self.is_ready():
            return

        if 'sentry_dsn' in self.logging:
            install_package("raven")
            from raven import Client
            self.sentry = Client(self.logging['sentry_dsn'])

        logging.basicConfig(level=self.get_log_level())
Exemplo n.º 4
0
    def get_fernet_token(self):
        """Return new token or initialized fernet token"""

        if self.encrypt:
            try:
                from cryptography.fernet import Fernet
            except ImportError:
                install_package("cryptography")
                from cryptography.fernet import Fernet

        _token = self.conf.get("storage", {}).get("fernet_token", None)

        if self.encrypt and not _token:
            return Fernet.generate_key().decode("utf-8")
        elif self.encrypt and _token:
            return Fernet(_token)
Exemplo n.º 5
0
    def mqtt(self):
        """Returns slack client"""
        if not hasattr(self, "client"):
            try:
                import paho.mqtt.client as mqtt
            except ImportError:
                install_package("paho-mqtt")
                import paho.mqtt.client as mqtt

            self.client = mqtt.Client()
            self.client.on_connect = on_connect
            self.client.on_message = on_message
            self.client.mbot = self.bot
            self.client.backend = self

        return self.client
Exemplo n.º 6
0
    def get_bucket(self, name):
        """Returns bucket by name
        """

        try:
            import boto3
        except ImportError:
            install_package("boto3")

        try:
            logging.getLogger('boto3').setLevel(logging.CRITICAL)
            logging.getLogger('botocore').setLevel(logging.CRITICAL)
            logging.getLogger('nose').setLevel(logging.CRITICAL)
        except:
            pass

        s3 = boto3.resource('s3')

        return s3.Bucket(name)