Twitter.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. """
  27. if self.consumer_key is None:
  28. raise InvalidParameterException("Twitter needs a consumer_key")
  29. if self.consumer_secret is None:
  30. raise InvalidParameterException("Twitter needs a consumer_secret")
  31. if self.access_token_key is None:
  32. raise InvalidParameterException("Twitter needs an access_token_key")
  33. if self.access_token_secret is None:
  34. raise InvalidParameterException("Twitter needs and access_token_secret")
  35. if self.tweet is None:
  36. raise InvalidParameterException("You need to provide something to tweet !")
  37. return True