From 30229b9fa57d56884ad7f953d84daaf02640d890 Mon Sep 17 00:00:00 2001 From: polaris Date: Wed, 21 May 2014 12:21:42 -0400 Subject: [PATCH] More error checking Sometimes it fails to decode a string. Try to figure out why. --- nintendo_nas_server.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/nintendo_nas_server.py b/nintendo_nas_server.py index 2e51660..94389b9 100644 --- a/nintendo_nas_server.py +++ b/nintendo_nas_server.py @@ -189,7 +189,7 @@ class NintendoNasHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler): if os.path.isfile(dlcpath + "/_list.txt"): ret = open(dlcpath + "/_list.txt", "rb").read() ret = self.filter_list(ret, attr1, attr2, attr3) - + if post["gamecd"] in gamecodes_return_random_file: ret = self.filter_list_random_files(ret, 1) @@ -214,7 +214,7 @@ class NintendoNasHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.end_headers() logger.log(logging.DEBUG, "download response to %s", self.client_address) - + #if dlc_contenttype == False: # logger.log(logging.DEBUG, ret) @@ -224,7 +224,11 @@ class NintendoNasHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler): ret = urlparse.parse_qs(str) for k, v in ret.iteritems(): - ret[k] = base64.b64decode(v[0].replace("*", "=")) + try: + ret[k] = base64.b64decode(v[0].replace("*", "=")) + except TypeError: + logger.log(logging.ERROR, "Could not decode following string: ret[%s] = %s" % (k, v[0])) + logger.log(logging.ERROR, "url: %s" % str) return ret @@ -239,16 +243,16 @@ class NintendoNasHTTPServerHandler(BaseHTTPServer.BaseHTTPRequestHandler): # Get [count] random files from the filelist lines = data.splitlines() samples = random.sample(lines, count) - + output = '' for sample in samples: output += sample + '\r\n' - + if output == '': output = '\r\n' - + return output - + def filter_list(self, data, attr1 = None, attr2 = None, attr3 = None): if attr1 == None and attr2 == None and attr3 == None: # Nothing to filter, just return the input data