def find_archives(directory, reel=None, invert_match=False): results = [] if reel: reel_lower = reel.lower() matching_rules = ( lambda arc: reel=='*' and arc.reel_name is not None, lambda arc: reel and arc.reel_name and reel_lower in arc.reel_name.lower(), lambda arc: not reel and not arc.reel_name, lambda arc: reel is None, ) for dirpath, dirnames, filenames in os.walk(directory): for dirname in dirnames: try: arc = archive.read(os.path.join(dirpath,dirname)) except IOError: pass else: test = any(map(lambda x: x(arc), matching_rules)) if invert_match: test = not test if test: results.append(arc) return results
def load_path(self, path): try: data = archive.read(path, share.KEY) if not data: raise Exception("read failed") self.set_image( image_from_auto_resize( PIL.open(StringIO(data)).convert("RGBA") ) ) except: log.err(repr(self), path, traceback.format_exc())
def do_GET(self): if self.path.startswith("/req="): path = decrypt_path(self.path[5:]) else: self.send_error(404) return data = archive.read(path, share.KEY) if data: self.send_response(200) self.send_header("Content-type", "audio/basic") self.send_header("Content-Length", str(len(data))) self.end_headers() try: self.wfile.write(data) except: pass else: self.send_error(404)