twitter.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import twitter
  2. from core.NeuronModule import NeuronModule, InvalidParameterException
  3. class Twitter(NeuronModule):
  4. def __init__(self, **kwargs):
  5. super(Twitter, self).__init__(**kwargs)
  6. self.consumer_key = kwargs.get('consumer_key', None)
  7. self.consumer_secret = kwargs.get('consumer_secret', None)
  8. self.access_token_key = kwargs.get('access_token_key', None)
  9. self.access_token_secret = kwargs.get('access_token_secret', None)
  10. self.tweet = kwargs.get('tweet', None)
  11. # check parameters
  12. if self._is_parameters_ok():
  13. api = twitter.Api(consumer_key=self.consumer_key,
  14. consumer_secret=self.consumer_secret,
  15. access_token_key=self.access_token_key,
  16. access_token_secret=self.access_token_secret)
  17. status = api.PostUpdate(self.tweet)
  18. message = {
  19. "tweet" : status.text
  20. }
  21. self.say(message)
  22. def _is_parameters_ok(self):
  23. """
  24. Check if received parameters are ok to perform operations in the neuron
  25. :return: true if parameters are ok, raise an exception otherwise
  26. .. raises:: InvalidParameterException
  27. """
  28. if self.consumer_key is None:
  29. raise InvalidParameterException("Twitter needs a consumer_key")
  30. if self.consumer_secret is None:
  31. raise InvalidParameterException("Twitter needs a consumer_secret")
  32. if self.access_token_key is None:
  33. raise InvalidParameterException("Twitter needs an access_token_key")
  34. if self.access_token_secret is None:
  35. raise InvalidParameterException("Twitter needs and access_token_secret")
  36. if self.tweet is None:
  37. raise InvalidParameterException("You need to provide something to tweet !")
  38. return True