Merge branch 'fs#83-wrapper-compatibility' into fs#82-subtask-wrapper
This commit is contained in:
@@ -49,16 +49,67 @@ class DiscussionParserBot(
|
||||
onlyinclude_re = re.compile(
|
||||
jogobot.config["redundances"]["reddiscs_onlyinclude_re"] )
|
||||
|
||||
def __init__( self, generator ):
|
||||
def __init__( self, genFactory, **kwargs ):
|
||||
"""
|
||||
Constructor
|
||||
|
||||
Parameters:
|
||||
@param generator: The page generator that determines on which pages
|
||||
to work.
|
||||
@type generator: generator.
|
||||
@param genFactory GenFactory with parsed pagegenerator args to
|
||||
build generator
|
||||
@type genFactory pagegenerators.GeneratorFactory
|
||||
@param **kwargs Additional args
|
||||
@type iterable
|
||||
"""
|
||||
super( DiscussionParserBot, self ).__init__(generator=generator)
|
||||
|
||||
# Copy needed args
|
||||
self.genFactory = genFactory
|
||||
|
||||
# Build generator with genFactory
|
||||
self.build_generator()
|
||||
|
||||
# Run super class init with builded generator
|
||||
super( DiscussionParserBot, self ).__init__(generator=self.gen)
|
||||
|
||||
def build_generator(self):
|
||||
"""
|
||||
Builds generator to work on, based on self.genFactory
|
||||
"""
|
||||
# Check wether there are generators waiting for factoring, if not
|
||||
# use configured categories
|
||||
if not self.genFactory.gens:
|
||||
self.apply_conf_cat_generators()
|
||||
|
||||
# Create combined Generator (Union of all Generators)
|
||||
gen = self.genFactory.getCombinedGenerator()
|
||||
|
||||
if gen:
|
||||
# The preloading generator is responsible for downloading multiple
|
||||
# pages from the wiki simultaneously.
|
||||
self.gen = pagegenerators.PreloadingGenerator(gen)
|
||||
|
||||
else:
|
||||
pywikibot.showHelp()
|
||||
|
||||
def apply_conf_cat_generators( self ):
|
||||
"""
|
||||
Builds generators for categories which are read from jogobot.config
|
||||
|
||||
Parameters:
|
||||
@param genFactory: The GeneratorFactory to which the builded
|
||||
generators should be added.
|
||||
@type genFactory: pagegenerators.GeneratorFactory
|
||||
"""
|
||||
# Create Generators for configured Categories
|
||||
for category in jogobot.config["redundances"]["redpage_cats"]:
|
||||
gen = self.genFactory.getCategoryGen(
|
||||
category, gen_func=pagegenerators.CategorizedPageGenerator)
|
||||
|
||||
# If there is one, append to genFactory
|
||||
if gen:
|
||||
self.genFactory.gens.append(gen)
|
||||
|
||||
# Reset gen for next iteration
|
||||
gen = None
|
||||
|
||||
def run( self ):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user