primera versión
parent
c56e79b995
commit
3371cffebb
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# dchunks - fanta@56k.es
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
|
import progressbar
|
||||||
|
|
||||||
|
chunkSize=1024*1024*1024
|
||||||
|
errorMsg="Example: chunkd http://fanta.56k.es/games/1990/1990-King_Quest_5/King_Quest_5.tar.gz"
|
||||||
|
if len(sys.argv) == 2: url=sys.argv[1]
|
||||||
|
else: print(errorMsg); exit(1)
|
||||||
|
session = requests.Session()
|
||||||
|
try: response = session.get(url,allow_redirects=True,stream=True)
|
||||||
|
except: print(errorMsg); exit(1)
|
||||||
|
fileLocalFilename = url.split('/')[-1]
|
||||||
|
contentLen=None
|
||||||
|
try: fileSize=int(response.headers['content-length'])
|
||||||
|
except: contentLen="false"
|
||||||
|
print("\n[+] "+fileLocalFilename+" - chunk Size: ",chunkSize)
|
||||||
|
|
||||||
|
def downloadChunks():
|
||||||
|
totalbits = 0
|
||||||
|
response.raise_for_status()
|
||||||
|
for chunk in response.iter_content(chunk_size=chunkSize):
|
||||||
|
if chunk:
|
||||||
|
totalbits += len(chunk)
|
||||||
|
f.write(chunk)
|
||||||
|
bar.update(totalbits)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
with open(fileLocalFilename, 'wb') as f:
|
||||||
|
if contentLen == "false":
|
||||||
|
with progressbar.ProgressBar(max_value=progressbar.UnknownLength) as bar:
|
||||||
|
downloadChunks()
|
||||||
|
else:
|
||||||
|
with progressbar.ProgressBar(max_value=fileSize) as bar:
|
||||||
|
downloadChunks()
|
||||||
|
|
||||||
|
print("\n")
|
Loading…
Reference in New Issue