コード例 #1
0
ファイル: finder.py プロジェクト: marcinn/avchd-toolkit
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
コード例 #2
0
ファイル: image.py プロジェクト: pyzzz/mygtk
	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())
コード例 #3
0
ファイル: player.py プロジェクト: pyzzz/mygtk
	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)