self.progress = progress
self.debug = debug
self.downloader = downloader
- self.globalstats = { 'exitstatus': {} }
+ self.globalstats = { 'returncode': {} }
def ensuredir(self, dest):
"""Ensures that the destination folder exists"""
# Heuristics to check if dest is a folder
if local_filename[-1] == '/':
- folder = local_filename
+ folder = local_filename
+ log_sep = '/'
else:
- folder = os.path.dirname(local_filename)
+ folder = os.path.dirname(local_filename)
+ log_sep = '.'
self.ensuredir(local_filename)
stdout, stderr = await proc.communicate()
if stdout:
- output = open(local_filename + '.stdout', 'w')
+ output = open(local_filename + log_sep + 'stdout', 'w')
output.write(stdout.decode())
output.close()
print(f'[stdout] {url} {stdout.decode()}')
if stderr:
- output = open(local_filename + '.stderr', 'w')
+ output = open(local_filename + log_sep + 'stderr', 'w')
output.write(stderr.decode())
output.close()
if self.debug:
print(f'[stderr] {url} {stderr.decode()}')
- output = open(local_filename + '.returncode', 'w')
+ output = open(local_filename + log_sep + 'returncode', 'w')
output.write(str(proc.returncode) + '\n')
output.close()
- output = open(local_filename + '.date', 'w')
+ output = open(local_filename + log_sep + 'date', 'w')
output.write(str(datetime.datetime.now()) + '\n')
output.close()
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE)
- if not str(proc.returncode) in self.globalstats['exitstatus']:
- self.globalstats['exitstatus'][str(proc.returncode)] = []
+ if not str(proc.returncode) in self.globalstats['returncode']:
+ self.globalstats['returncode'][str(proc.returncode)] = []
- self.globalstats['exitstatus'][str(proc.returncode)].append(url);
+ self.globalstats['returncode'][str(proc.returncode)].append(url);
- if not str(proc.returncode) in self.stats['exitstatus']:
- self.stats['exitstatus'][str(proc.returncode)] = []
+ if not str(proc.returncode) in self.stats['returncode']:
+ self.stats['returncode'][str(proc.returncode)] = []
- self.stats['exitstatus'][str(proc.returncode)].append(url);
+ self.stats['returncode'][str(proc.returncode)].append(url);
if self.debug:
print(f'[{cmd!r} exited with {proc.returncode}]')
progress_bar.close()
def get(self, filepairs):
- self.stats = { 'exitstatus': {} }
+ self.stats = { 'returncode': {} }
loop = asyncio.get_event_loop()
loop.set_debug(self.debug)
if stats != None:
print('Statistics (exit status / total downloads): ', end='')
- for status in stats['exitstatus']:
- print(status + ': ' + str(len(stats['exitstatus'][status])), end='; ')
+ for status in stats['returncode']:
+ print(status + ': ' + str(len(stats['returncode'][status])), end='; ')
print('')