From c02afc7880ae0b6ccca2f87d0e6f6390a6767253 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 30 Aug 2020 21:04:21 +0100 Subject: [PATCH] Simplify conditions --- daemon.py | 219 +++++++++++++++++++++++++++++------------------------- 1 file changed, 117 insertions(+), 102 deletions(-) diff --git a/daemon.py b/daemon.py index 574086d4..09d65c85 100644 --- a/daemon.py +++ b/daemon.py @@ -2154,6 +2154,7 @@ class PubServer(BaseHTTPRequestHandler): if pageNumberStr.isdigit(): pageNumber = int(pageNumberStr) path = path.split('?page=')[0] + # the actor who votes usersPath = path.replace('/question', '') actor = httpPrefix + '://' + domainFull + usersPath @@ -2169,8 +2170,10 @@ class PubServer(BaseHTTPRequestHandler): cookie, callingDomain) self.server.POSTbusy = False return + # get the parameters length = int(self.headers['Content-length']) + try: questionParams = self.rfile.read(length).decode('utf-8') except SocketError as e: @@ -2189,21 +2192,25 @@ class PubServer(BaseHTTPRequestHandler): self.end_headers() self.server.POSTbusy = False return + questionParams = questionParams.replace('+', ' ') questionParams = questionParams.replace('%3F', '') questionParams = \ urllib.parse.unquote_plus(questionParams.strip()) + # post being voted on messageId = None if 'messageId=' in questionParams: messageId = questionParams.split('messageId=')[1] if '&' in messageId: messageId = messageId.split('&')[0] + answer = None if 'answer=' in questionParams: answer = questionParams.split('answer=')[1] if '&' in answer: answer = answer.split('&')[0] + self._sendReplyToQuestion(nickname, messageId, answer) if callingDomain.endswith('.onion') and onionDomain: actor = 'http://' + onionDomain + usersPath @@ -8891,21 +8898,6 @@ class PubServer(BaseHTTPRequestHandler): self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 5) - # a vote/question/poll is posted - if (authorized and - (self.path.endswith('/question') or - '/question?page=' in self.path)): - self._receiveVote(callingDomain, cookie, - authorized, self.path, - self.server.baseDir, - self.server.httpPrefix, - self.server.domain, - self.server.domainFull, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 6) # a search was made @@ -9143,111 +9135,134 @@ class PubServer(BaseHTTPRequestHandler): self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 7) - # removes a shared item - if authorized and self.path.endswith('/rmshare'): - self._removeShare(callingDomain, cookie, - authorized, self.path, - self.server.baseDir, - self.server.httpPrefix, - self.server.domain, - self.server.domainFull, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return - - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 8) - - # removes a post - if not authorized and self.path.endswith('/rmpost'): - print('ERROR: attempt to remove post was not authorized. ' + - self.path) - self._400() - self.server.POSTbusy = False - return - if authorized and self.path.endswith('/rmpost'): - self._removePost(callingDomain, cookie, - authorized, self.path, - self.server.baseDir, self.server.httpPrefix, - self.server.domain, self.server.domainFull, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return - - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 9) - - # decision to follow in the web interface is confirmed - if authorized and self.path.endswith('/followconfirm'): - self._followConfirm(callingDomain, cookie, - authorized, self.path, - self.server.baseDir, - self.server.httpPrefix, - self.server.domain, - self.server.domainFull, - self.server.port, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return - - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 10) - - # decision to unfollow in the web interface is confirmed - if authorized and self.path.endswith('/unfollowconfirm'): - self._unfollowConfirm(callingDomain, cookie, + if authorized: + # a vote/question/poll is posted + if self.path.endswith('/question') or \ + '/question?page=' in self.path: + self._receiveVote(callingDomain, cookie, authorized, self.path, self.server.baseDir, self.server.httpPrefix, self.server.domain, self.server.domainFull, - self.server.port, self.server.onionDomain, self.server.i2pDomain, self.server.debug) - return + return - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 11) + # removes a shared item + if self.path.endswith('/rmshare'): + self._removeShare(callingDomain, cookie, + authorized, self.path, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return - # decision to unblock in the web interface is confirmed - if authorized and self.path.endswith('/unblockconfirm'): - self._unblockConfirm(callingDomain, cookie, + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 8) + + # removes a post + if self.path.endswith('/rmpost'): + print('ERROR: attempt to remove post was not authorized. ' + + self.path) + self._400() + self.server.POSTbusy = False + return + if self.path.endswith('/rmpost'): + self._removePost(callingDomain, cookie, authorized, self.path, - self.server.baseDir, self.server.httpPrefix, - self.server.domain, self.server.domainFull, - self.server.port, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, self.server.onionDomain, self.server.i2pDomain, self.server.debug) - return + return - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 12) + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 9) - # decision to block in the web interface is confirmed - if authorized and self.path.endswith('/blockconfirm'): - self._blockConfirm(callingDomain, cookie, - authorized, self.path, - self.server.baseDir, self.server.httpPrefix, - self.server.domain, self.server.domainFull, - self.server.port, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return + # decision to follow in the web interface is confirmed + if self.path.endswith('/followconfirm'): + self._followConfirm(callingDomain, cookie, + authorized, self.path, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.port, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return - self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 13) + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 10) - # an option was chosen from person options screen - # view/follow/block/report - if authorized and self.path.endswith('/personoptions'): - self._personOptions(self, self.path, callingDomain, cookie, - self.server.baseDir, self.server.httpPrefix, - self.server.domain, self.server.domainFull, - self.server.port, - self.server.onionDomain, - self.server.i2pDomain, - self.server.debug) - return + # decision to unfollow in the web interface is confirmed + if self.path.endswith('/unfollowconfirm'): + self._unfollowConfirm(callingDomain, cookie, + authorized, self.path, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.port, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return + + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 11) + + # decision to unblock in the web interface is confirmed + if self.path.endswith('/unblockconfirm'): + self._unblockConfirm(callingDomain, cookie, + authorized, self.path, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.port, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return + + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 12) + + # decision to block in the web interface is confirmed + if self.path.endswith('/blockconfirm'): + self._blockConfirm(callingDomain, cookie, + authorized, self.path, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.port, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return + + self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 13) + + # an option was chosen from person options screen + # view/follow/block/report + if self.path.endswith('/personoptions'): + self._personOptions(self, self.path, callingDomain, cookie, + self.server.baseDir, + self.server.httpPrefix, + self.server.domain, + self.server.domainFull, + self.server.port, + self.server.onionDomain, + self.server.i2pDomain, + self.server.debug) + return self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 14)