import twitter from core.NeuronModule import NeuronModule, InvalidParameterException class Twitter(NeuronModule): def __init__(self, **kwargs): super(Twitter, self).__init__(**kwargs) self.consumer_key = kwargs.get('consumer_key', None) self.consumer_secret = kwargs.get('consumer_secret', None) self.access_token_key = kwargs.get('access_token_key', None) self.access_token_secret = kwargs.get('access_token_secret', None) self.tweet = kwargs.get('tweet', None) # check parameters if self._is_parameters_ok(): api = twitter.Api(consumer_key=self.consumer_key, consumer_secret=self.consumer_secret, access_token_key=self.access_token_key, access_token_secret=self.access_token_secret) status = api.PostUpdate(self.tweet) message = { "tweet" : status.text } self.say(message) def _is_parameters_ok(self): """ Check if received parameters are ok to perform operations in the neuron :return: true if parameters are ok, raise an exception otherwise .. raises:: InvalidParameterException """ if self.consumer_key is None: raise InvalidParameterException("Twitter needs a consumer_key") if self.consumer_secret is None: raise InvalidParameterException("Twitter needs a consumer_secret") if self.access_token_key is None: raise InvalidParameterException("Twitter needs an access_token_key") if self.access_token_secret is None: raise InvalidParameterException("Twitter needs and access_token_secret") if self.tweet is None: raise InvalidParameterException("You need to provide something to tweet !") return True