-
Notifications
You must be signed in to change notification settings - Fork 24
/
twitterinterface.py
89 lines (66 loc) · 2.17 KB
/
twitterinterface.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
'''Post a message to twitter'''
from __future__ import print_function
try:
import configparser
except ImportError as _:
import ConfigParser as configparser
import getopt
import os
import sys
import twitter
"""
$ cat tweet.conf
[Tweet]
consumer_key:
consumer_secret:
access_key:
access_secret:
"""
class TweetRc(object):
def __init__(self, configpath):
self.configpath = configpath
self._config = None
def GetConsumerKey(self):
return self._GetOption('consumer_key')
def GetConsumerSecret(self):
return self._GetOption('consumer_secret')
def GetAccessKey(self):
return self._GetOption('access_key')
def GetAccessSecret(self):
return self._GetOption('access_secret')
def _GetOption(self, option):
try:
return self._GetConfig().get('Tweet', option)
except:
return None
def _GetConfig(self):
if not self._config:
self._config = configparser.ConfigParser()
self._config.read(os.path.expanduser(self.configpath))
return self._config
class TwitterInterface():
def __init__(self, config):
self.api = None
self.config = config
def load(self):
filelocation = os.path.join(self.config['basedir'], "tweet.conf")
rc = TweetRc(filelocation)
consumer_key = rc.GetConsumerKey()
consumer_secret = rc.GetConsumerSecret()
access_key = rc.GetAccessKey()
access_secret = rc.GetAccessSecret()
encoding = None
if not consumer_key or not consumer_secret or not access_key or not access_secret:
raise Exception("Could not load twitter config in: " + filelocation)
self.api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_secret,
access_token_key=access_key, access_token_secret=access_secret,
input_encoding=encoding)
def tweet(self, message):
status = self.api.PostUpdate(message)
def testTwitterInterface():
fuzzTwitter = FuzzTwitter()
fuzzTwitter.load()
fuzzTwitter.tweet("Test")
if __name__ == "__main__":
testTwitterInterface()