twitterposter.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from event import Event
  2. import twitter
  3. try:
  4. from basemodule import BaseModule
  5. except ImportError:
  6. from modules.basemodule import BaseModule
  7. """
  8. to use this, you'll need to create a file in the modules directory called 'twitter_credentials.py', and it should look like this:
  9. class PybotTwitter:
  10. api_key = "<your api key (sometimes called consumer key)>"
  11. api_secret = "<api/consumer secret>"
  12. access_token = "<your access token>"
  13. access_token_secret = "<access token secret>"
  14. """
  15. class TwitterPoster(BaseModule):
  16. try:
  17. from modules.twitter_credentials import PybotTwitter as pt
  18. except ImportError:
  19. class PhonyPt:
  20. api_key = ""
  21. api_secret = ""
  22. access_token = ""
  23. access_token_secret = ""
  24. pt = PhonyPt()
  25. user_to_track = "bhhorg"
  26. def post_init(self):
  27. twitter = Event("__.twitter__")
  28. twitter.define(user_definition=self.user_to_track)
  29. twitter.subscribe(self)
  30. self.bot.register_event(twitter, self)
  31. twitter_command = Event("__.twitter_command__")
  32. twitter_command.define(msg_definition="^\.twitter url")
  33. twitter_command.subscribe(self)
  34. self.bot.register_event(twitter_command, self)
  35. def handle(self, event):
  36. if event._type == "__.twitter__":
  37. pt = self.pt
  38. api = twitter.Api(consumer_key=pt.api_key, consumer_secret=pt.api_secret, access_token_key=pt.access_token, access_token_secret=pt.access_token_secret)
  39. try:
  40. status = api.PostUpdate(event.user + ": " + event.msg[:(140 - len(event.user) + 2)]) # "username: <message>" all must be <= 140 char
  41. except Exception as e:
  42. print e
  43. print len(event.msg[:(140 - len(event.user) + 2)])
  44. elif event._type == "__.twitter_command__":
  45. self.say(event.channel, "https://twitter.com/pybot_posts_irc")