add '-s/--simulate' to run data extraction without download

Useful for quick testing (even though -g and -j kind of do the same)
and to fill a download archive without actually downloading the files.

-s does the same as the default behaviour, except downloading stuff.
Maybe it should get a more fitting name, as it does actually write to
disk (cache, archive)?
pull/133/head
Mike Fährmann 6 years ago
parent 15cce22d82
commit 2df1a15fb8
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -275,6 +275,8 @@ def main():
jobtype = job.KeywordJob
elif args.list_data:
jobtype = job.DataJob
elif args.simulate:
jobtype = job.SimulationJob
else:
jobtype = job.DownloadJob

@ -209,7 +209,7 @@ class DownloadJob(Job):
def handle_queue(self, url, keywords):
try:
DownloadJob(url, self).run()
self.__class__(url, self).run()
except exception.NoExtractorError:
self._write_unsupported(url)
@ -227,6 +227,18 @@ class DownloadJob(Job):
return instance
class SimulationJob(DownloadJob):
"""Simulate the extraction process without downloading anything"""
def handle_url(self, url, keywords, fallback=None):
self.pathfmt.set_keywords(keywords)
self.out.skip(self.pathfmt.path)
if self.sleep:
time.sleep(self.sleep)
if self.archive:
self.archive.add(keywords)
class KeywordJob(Job):
"""Print available keywords"""

@ -113,6 +113,10 @@ def build_parser():
"-j", "--dump-json", dest="list_data", action="store_true",
help="Print JSON information",
)
output.add_argument(
"-s", "--simulate", dest="simulate", action="store_true",
help="Simulate data extraction; do not download anything",
)
output.add_argument(
"-K", "--list-keywords", dest="list_keywords", action="store_true",
help=("Print a list of available keywords and example values "

Loading…
Cancel
Save