extend 'parent>child' categories
continuation of ed21908f
allow for children to have an arbitrary distance from their parent,
e.g. reddit -> danbooru -> imgur:gallery -> imgur:album
would still be covered by 'reddit>imgur' or even 'danbooru>imgur'
This commit is contained in:
@@ -18,7 +18,7 @@ from .output import stdout_write
|
|||||||
|
|
||||||
|
|
||||||
class Job():
|
class Job():
|
||||||
"""Base class for Job-types"""
|
"""Base class for Job types"""
|
||||||
ulog = None
|
ulog = None
|
||||||
|
|
||||||
def __init__(self, extr, parent=None):
|
def __init__(self, extr, parent=None):
|
||||||
@@ -33,15 +33,29 @@ class Job():
|
|||||||
self.status = 0
|
self.status = 0
|
||||||
|
|
||||||
cfgpath = []
|
cfgpath = []
|
||||||
if parent and parent.extractor.category != extr.category:
|
if parent:
|
||||||
cat = "{}>{}".format(
|
if extr.category == parent.extractor.category or \
|
||||||
parent.extractor.category, extr.category)
|
extr.category in parent.parents:
|
||||||
cfgpath.append((cat, extr.subcategory))
|
parents = parent.parents
|
||||||
cfgpath.append((extr.category, extr.subcategory))
|
else:
|
||||||
|
parents = parent.parents + (parent.extractor.category,)
|
||||||
|
|
||||||
|
if parents:
|
||||||
|
for category in parents:
|
||||||
|
cat = "{}>{}".format(category, extr.category)
|
||||||
|
cfgpath.append((cat, extr.subcategory))
|
||||||
|
cfgpath.append((extr.category, extr.subcategory))
|
||||||
|
self.parents = parents
|
||||||
|
else:
|
||||||
|
self.parents = ()
|
||||||
|
else:
|
||||||
|
self.parents = ()
|
||||||
|
|
||||||
if extr.basecategory:
|
if extr.basecategory:
|
||||||
if not cfgpath:
|
if not cfgpath:
|
||||||
cfgpath.append((extr.category, extr.subcategory))
|
cfgpath.append((extr.category, extr.subcategory))
|
||||||
cfgpath.append((extr.basecategory, extr.subcategory))
|
cfgpath.append((extr.basecategory, extr.subcategory))
|
||||||
|
|
||||||
if cfgpath:
|
if cfgpath:
|
||||||
extr._cfgpath = cfgpath
|
extr._cfgpath = cfgpath
|
||||||
extr.config = extr._config_shared
|
extr.config = extr._config_shared
|
||||||
|
|||||||
Reference in New Issue
Block a user