New code™ to open browser tab + append to praw.ini

moop-is-a-faggot
David Trail 9 years ago
parent b73956a33a
commit 1aeca04ad3

@ -18,7 +18,9 @@ get_access_information().
''' '''
import praw import praw
from praw.errors import HTTPException import webbrowser
from warnings import warn
from praw.errors import HTTPException, OAuthAppRequired
from tornado import gen, web from tornado import gen, web
from tornado.ioloop import IOLoop from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServer from tornado.httpserver import HTTPServer
@ -29,26 +31,31 @@ r = praw.Reddit('Shreddit refresh token grabber')
class Page(web.RequestHandler): class Page(web.RequestHandler):
def get(self): def get(self):
code = self.get_argument("code", default=None, strip=False) code = self.get_argument("code", default=None, strip=False)
self.write("Success! Your code: %s" % code) self.write("Success! Your code: %s<br> \
It will now be appended to praw.ini and you \
should be able to enjoy Shreddit without storing \
your user / pass anywhere." % code)
IOLoop.current().stop() IOLoop.current().stop()
self.login(code) self.login(code)
def login(self, code): def login(self, code):
deets = r.get_access_information(code) deets = r.get_access_information(code)
print("oauth_refresh_token (put in praw.ini): %s" % deets['refresh_token']) print("oauth_refresh_token: %s" % deets['refresh_token'])
r.set_access_credentials(**deets) r.set_access_credentials(**deets)
# TODO: Automatically update praw.ini with refresh_token with open('praw.ini', mode='a') as fh:
fh.write('oauth_refresh_token = %s' % deets['refresh_token'])
print("Refresh token written to praw.ini")
application = web.Application([ application = web.Application([(r"/", Page)])
(r"/authorize_callback", Page),
])
try: try:
r.refresh_access_information() r.refresh_access_information()
except HTTPException: except HTTPException:
url = r.get_authorize_url('uniqueKey', ['identity', 'read', 'vote', 'edit', url = r.get_authorize_url('uniqueKey', ['identity', 'read', 'vote', 'edit', 'history'], True)
'history'], True) try:
print("Please open: ", url) webbrowser.open(url, new=2)
except NameError:
warn('''Couldn't open URL: %s\n please do so manually''' % url)
server = HTTPServer(application) server = HTTPServer(application)
server.listen(65010) server.listen(65010)
IOLoop.current().start() IOLoop.current().start()

Loading…
Cancel
Save