#!/usr/bin/env python # -*- coding: utf-8 -*- # # markpages.py # # Copyright 2016 GOLDERWEB – Jonathan Golder # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. # # """ Bot to mark pages which were/are subjects of redundance discussions with templates """ from datetime import datetime from pywikibot import pagegenerators from pywikibot.bot import CurrentPageBot import jogobot from lib.redfam import RedFamWorker class MarkPagesBot( CurrentPageBot ): # sets 'current_page' on each treat() """ Bot class to mark pages which were/are subjects of redundance discussions with templates """ def __init__( self, genFactory, **kwargs ): """ Constructor Parameters: @param genFactory GenFactory with parsed pagegenerator args to build generator @type genFactory pagegenerators.GeneratorFactory @param **kwargs Additional args @type iterable """ # Init attribute self.__redfams = None # Will hold a generator with our redfams # We do not use predefined genFactory as there is no sensefull case to # give a generator via cmd-line for this right now self.genFactory = pagegenerators.GeneratorFactory() # Build generator with genFactory self.build_generator() # Run super class init with builded generator super( MarkPagesBot, self ).__init__(generator=self.gen) @property def redfams(self): """ Holds redfams generator to work on in this bot """ # Create generator if not present if not self.__redfams: end_after = datetime.strptime( jogobot.config["red.markpages"]["mark_done_after"], "%Y-%m-%d" ) self.__redfams = RedFamWorker.gen_by_status_and_ending( 2, end_after) return self.__redfams def build_generator( self ): """ Builds generator """ self.gen = self.genFactory.getCombinedGenerator() def treat_page( self ): """ Handles work on current page """ # Here is the place where to do what ever you want print( self.current_page.title() )