def connect_reddit(self):
"""
Returns a praw connection object
"""
seconds = int(1 * 3000)
if hasattr(self.conf.reddit, 'last_refresh') and self.conf.reddit.last_refresh + seconds > int(time.mktime(time.gmtime())):
lg.debug("< CointipBot::connect_reddit(): to connect to reddit(): DONE (skipping)")
return self.reddit
lg.debug('CointipBot::connect_reddit(): connecting to Reddit via OAuth2...')
client_auth = requests.auth.HTTPBasicAuth(self.conf.reddit.auth.id, self.conf.reddit.auth.secret)
post_data = {"grant_type": "password", "username": self.conf.reddit.auth.user, "password": self.conf.reddit.auth.password}
conn = praw.Reddit(user_agent = self.conf.reddit.auth.user, api_request_delay=1.0)
conn.set_oauth_app_info(client_id=self.conf.reddit.auth.id,
client_secret=self.conf.reddit.auth.secret,
redirect_uri=self.conf.reddit.auth.redirect)
while True:
response = requests.post("https://ssl.reddit.com/api/v1/access_token", auth=client_auth, data=post_data)
r_info = json.loads(response.content)
lg.debug(r_info)
if (response.status_code == 200):
self.conf.reddit.access_token = r_info['access_token']
conn.set_access_credentials(set(['edit','identity','privatemessages','read','submit','vote', 'creddits']),r_info['access_token'])
print "Access Granted"
self.conf.reddit.last_refresh = int(time.mktime(time.gmtime()))
lg.info("CointipBot::connect_reddit(): logged in to Reddit as %s", self.conf.reddit.auth.user)
return conn
else:
print "Sleeping..."
time.sleep(10)
pass
# conn.login(self.conf.reddit.auth.user, self.conf.reddit.auth.password)
评论列表
文章目录