下面 python 代码用 js 重写应该没问题吧,图床支持 access-control-allow-origin: * 这样是不是直接就能在游览器里实现个下载器。
def decode_png(self, data):
img = Image.open(BytesIO(data))
data = img.tobytes()
sz = struct.unpack('<I', data[:4])[0]
data = data[4:4+sz]
return data
def download(i, block_dict, f, offset):
global succ
url = block_dict['url']
for j in range(10):
if not succ: break
block = api.image_download(url)
if not block:
log(f"分块{i + 1}/{nblocks}第{j + 1}次下载失败")
if j == 9: succ = False
continue
block = encoder.decode(block)
if calc_sha1(block) == block_dict['sha1']:
with lock:
f.seek(offset)
f.write(block)
log(f"分块{i + 1}/{nblocks}下载完毕")
break
else:
log(f"分块{i + 1}/{nblocks}校验未通过")
if j == 9: succ = False