This repository was archived by the owner on Mar 4, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
executable file
·97 lines (89 loc) · 3.35 KB
/
main.py
File metadata and controls
executable file
·97 lines (89 loc) · 3.35 KB
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
90
91
92
93
94
95
96
97
#!/usr/bin/env python
from bottle import route, request, response, view, run,send_file,redirect
import tweepy
import redis
KEY = "7F1pCkQVAY88a2s3xNQ"
SECRET = "7qeFMC6kyAI9RJvoimX4hF8NJOx6YQ6DsWRgTFSxQ"
R = redis.Redis('localhost',db='twitter')
API = None
@route('/twitter/signin')
@view('twitter')
def getToken():
auth = tweepy.OAuthHandler(KEY,SECRET)
try:
redirect_url = auth.get_authorization_url()
response.set_cookie('key',auth.request_token.key)
response.set_cookie('secret',auth.request_token.secret)
except tweepy.TweepError:
print 'Error! Failed to get request token.'
redirect(redirect_url)
@route('/twitter/return/')
@view('twitter')
def returnfromtwitter():
try:
request_token = request.GET.get('oauth_token', 'Stranger')
key = request.COOKIES['key']
secret = request.COOKIES['secret']
auth = tweepy.OAuthHandler(KEY, SECRET)
auth.set_request_token(key, secret)
auth.get_access_token(request_token)
except tweepy.TweepError:
return dict(title="failed! bad oauth_token",name= None)
except KeyError:
return dict(title="failed due to session error", name= None)
print "yes"
auth.set_access_token(auth.access_token.key, auth.access_token.secret)
api = tweepy.API(auth)
print api
API = api
user = api.me()
print user
adduser(user,auth.access_token.key,auth.access_token.secret)
return dict(title="success",name=user.name,user=user)
def adduser(user,key,secret):
if R.sadd("users", user.screen_name):
R.hset('user:%s' %user.screen_name,'id', user.id)
R.hset('user:%s' %user.screen_name,'screen_name', user.screen_name)
R.hset('user:%s' %user.screen_name,'name', user.name)
R.hset('user:%s' %user.screen_name,'key', key)
R.hset('user:%s' %user.screen_name,'secret', secret)
R.hset('user:%s' %user.screen_name,'followers_count',user.follower_count)
R.hset('user:%s' %user.screen_name,'friends_count',user.friends_count)
R.hset('user:%s' %user.screen_name,'location',user.location)
R.hset('user:%s' %user.screen_name,'url',user.url)
R.hset('user:%s' %user.screen_name,'description',user.description)
return True
else:
return False
def addstatus(status,user_screen_name):
if R.sadd("statuses", status.id):
R.hset('status:%s' %status.id,'id', status.id)
R.hset('status:%s' %status.id,'text', status.text)
R.hset('status:%s' %status.id,'source', status.source)
R.hset('status:%s' %status.id,'created_at', status.created_at)
R.hset('status:%s' %status.id,'in_reply_to_screen_name', status.in_reply_to_screen_name)
R.hset('status:%s' %status.id,'in_reply_to_status_id', status.in_reply_to_status_id)
R.hset('status:%s' %status.id,'user', user_screen_name)
return True
else:
return False
@route('/static/:filename')
def static_file(filename):
send_file(filename, root='/home/kdehdash/Downloads/twitter/static')
@route('/twitter')
@view('twitter')
def template_twitter():
return dict(title='Twitter',name=None)
@route('/twitter/status/', method='POST')
@view('twitter')
def template_twitterpost():
if 'name' in request.POST:
name = request.POST['name']
if 'secret' in request.POST:
secret = request.POST['secret']
api = twitter.Api(username=name, password=secret)
if 'tweet' in request.POST:
tweet = request.POST['tweet']
status_update = api.PostUpdate(tweet)
return dict(title='Twitter')
run(host='localhost', port=8080)