def find_xorpad(titleid, crc32):
expectedname = "%s.%08lx.Main.exheader.xorpad" % (titleid, crc32)
legacyname = titleid + ".Main.exheader.xorpad"
xorpads = glob.glob(os.path.join("xorpads", "*.[xX][oO][rR][pP][aA][dD]"))
xorpads += glob.glob(os.path.join("xorpads", "*.[zZ][iI][pP]"))
for xorpad in xorpads:
if zipfile.is_zipfile(xorpad):
with zipfile.ZipFile(xorpad, "r") as e:
for entry in e.infolist():
filename = os.path.join(tmpdir, expectedname)
basename = os.path.basename(entry.filename)
if basename.lower() == expectedname.lower():
source = e.open(entry, "r")
target = file(filename, "wb")
with source, target:
shutil.copyfileobj(source, target)
return filename
else:
basename = os.path.basename(xorpad)
if basename.lower() == expectedname.lower() or \
basename.lower() == legacyname.lower():
return xorpad
评论列表
文章目录