[common] only call 'skip()' & 'finalize()' when defined
This commit is contained in:
@@ -53,6 +53,7 @@ class Extractor():
|
||||
request_interval_min = 0.0
|
||||
request_interval_429 = 60.0
|
||||
request_timestamp = 0.0
|
||||
finalize = skip = None
|
||||
|
||||
def __init__(self, match):
|
||||
self.log = logging.getLogger(self.category)
|
||||
@@ -103,16 +104,10 @@ class Extractor():
|
||||
self._init()
|
||||
self.initialize = util.noop
|
||||
|
||||
def finalize(self, status):
|
||||
pass
|
||||
|
||||
def items(self):
|
||||
return
|
||||
yield
|
||||
|
||||
def skip(self, num):
|
||||
return 0
|
||||
|
||||
def config(self, key, default=None):
|
||||
return config.interpolate(self._cfgpath, key, default)
|
||||
|
||||
|
||||
@@ -201,7 +201,8 @@ class Job():
|
||||
if extractor.status:
|
||||
self.status |= extractor.status
|
||||
self.handle_finalize()
|
||||
extractor.finalize(self.status)
|
||||
if extractor.finalize is not None:
|
||||
extractor.finalize(self.status)
|
||||
|
||||
return self.status
|
||||
|
||||
@@ -285,15 +286,17 @@ class Job():
|
||||
pass
|
||||
|
||||
def _init(self):
|
||||
self.extractor.initialize()
|
||||
self.pred_url = self._prepare_predicates(
|
||||
"file", "image", True)
|
||||
self.pred_post = self._prepare_predicates(
|
||||
"post", None, False)
|
||||
self.pred_queue = self._prepare_predicates(
|
||||
"child", "chapter", False)
|
||||
extr = self.extractor
|
||||
|
||||
init = self.extractor.config("init", False)
|
||||
extr.initialize()
|
||||
self.pred_url = self._prepare_predicates(
|
||||
"file", "image", extr.skip)
|
||||
self.pred_post = self._prepare_predicates(
|
||||
"post", None, None)
|
||||
self.pred_queue = self._prepare_predicates(
|
||||
"child", "chapter", None)
|
||||
|
||||
init = extr.config("init", False)
|
||||
if init and init != "lazy":
|
||||
self.initialize()
|
||||
|
||||
@@ -315,7 +318,8 @@ class Job():
|
||||
if (prange := extr.config(target + "-range")) or \
|
||||
alt is not None and (prange := extr.config(alt + "-range")):
|
||||
try:
|
||||
skip = extr.skip if skip and not pfilter else None
|
||||
if pfilter:
|
||||
skip = None
|
||||
flag = target if alt is not None else None
|
||||
predicates.append(util.predicate_range(prange, skip, flag))
|
||||
except ValueError as exc:
|
||||
|
||||
@@ -160,13 +160,15 @@ class TestExtractorModule(unittest.TestCase):
|
||||
|
||||
extr.request = fail_request
|
||||
extr.initialize()
|
||||
extr.finalize()
|
||||
if extr.finalize is not None:
|
||||
extr.finalize(0)
|
||||
|
||||
def test_init_ytdl(self):
|
||||
try:
|
||||
extr = extractor.find("ytdl:")
|
||||
extr.initialize()
|
||||
extr.finalize()
|
||||
if extr.finalize is not None:
|
||||
extr.finalize(0)
|
||||
except ImportError as exc:
|
||||
if exc.name in ("youtube_dl", "yt_dlp"):
|
||||
raise unittest.SkipTest(f"cannot import module '{exc.name}'")
|
||||
|
||||
Reference in New Issue
Block a user