From 93732b03670d9e38b58150bedc7989ac2f57b0af Mon Sep 17 00:00:00 2001 From: Ali Parlakci Date: Tue, 24 Jul 2018 13:17:37 +0300 Subject: [PATCH] Little refactoring --- src/searcher.py | 112 ++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/src/searcher.py b/src/searcher.py index ea0d0ec..4c12676 100644 --- a/src/searcher.py +++ b/src/searcher.py @@ -14,60 +14,62 @@ from src.errors import (NoMatchingSubmissionFound, NoPrawSupport, print = printToFile -class GetAuth: - def __init__(self,redditInstance,port): - self.redditInstance = redditInstance - self.PORT = int(port) - - def recieve_connection(self): - """Wait for and then return a connected socket.. - Opens a TCP connection on port 8080, and waits for a single client. - """ - server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - server.bind(('localhost', self.PORT)) - server.listen(1) - client = server.accept()[0] - server.close() - return client - - def send_message(self, message): - """Send message to client and close the connection.""" - self.client.send('HTTP/1.1 200 OK\r\n\r\n{}'.format(message).encode('utf-8')) - self.client.close() - - def getRefreshToken(self,*scopes): - state = str(random.randint(0, 65000)) - url = self.redditInstance.auth.url(scopes, state, 'permanent') - print("Go to this URL and login to reddit:\n\n",url) - webbrowser.open(url,new=2) - - self.client = self.recieve_connection() - data = self.client.recv(1024).decode('utf-8') - param_tokens = data.split(' ', 2)[1].split('?', 1)[1].split('&') - params = { - key: value for (key, value) in [token.split('=') \ - for token in param_tokens] - } - if state != params['state']: - self.send_message( - client, 'State mismatch. Expected: {} Received: {}' - .format(state, params['state']) - ) - raise RedditLoginFailed - elif 'error' in params: - self.send_message(client, params['error']) - raise RedditLoginFailed - - refresh_token = self.redditInstance.auth.authorize(params['code']) - self.send_message( - "" - ) - return (self.redditInstance,refresh_token) - def beginPraw(config,user_agent = str(socket.gethostname())): + class GetAuth: + def __init__(self,redditInstance,port): + self.redditInstance = redditInstance + self.PORT = int(port) + + def recieve_connection(self): + """Wait for and then return a connected socket.. + Opens a TCP connection on port 8080, and waits for a single client. + """ + server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + server.bind(('localhost', self.PORT)) + server.listen(1) + client = server.accept()[0] + server.close() + return client + + def send_message(self, message): + """Send message to client and close the connection.""" + self.client.send( + 'HTTP/1.1 200 OK\r\n\r\n{}'.format(message).encode('utf-8') + ) + self.client.close() + + def getRefreshToken(self,*scopes): + state = str(random.randint(0, 65000)) + url = self.redditInstance.auth.url(scopes, state, 'permanent') + print("Go to this URL and login to reddit:\n\n",url) + webbrowser.open(url,new=2) + + self.client = self.recieve_connection() + data = self.client.recv(1024).decode('utf-8') + param_tokens = data.split(' ', 2)[1].split('?', 1)[1].split('&') + params = { + key: value for (key, value) in [token.split('=') \ + for token in param_tokens] + } + if state != params['state']: + self.send_message( + client, 'State mismatch. Expected: {} Received: {}' + .format(state, params['state']) + ) + raise RedditLoginFailed + elif 'error' in params: + self.send_message(client, params['error']) + raise RedditLoginFailed + + refresh_token = self.redditInstance.auth.authorize(params['code']) + self.send_message( + "" + ) + return (self.redditInstance,refresh_token) + """Start reddit instance""" scopes = ['identity','history','read'] @@ -245,8 +247,6 @@ def getPosts(args): raise MultiredditNotFound elif "submitted" in args: - # TODO - # USE REDDIT.USER.ME() INSTEAD WHEN "ME" PASSED AS A --USER print ( "submitted posts of {user}\nsort: {sort}\n" \ "time: {time}\nlimit: {limit}\n".format( @@ -263,8 +263,6 @@ def getPosts(args): ) elif "upvoted" in args: - # TODO - # USE REDDIT.USER.ME() INSTEAD WHEN "ME" PASSED AS A --USER print ( "upvoted posts of {user}\nlimit: {limit}\n".format( user=args["user"],