def write_data_page(text: str) -> None: page = pywikibot.Page(site, "User:AntiCompositeBot/EssayImpact/data") utils.save_page( text=text, page=page, summary=f"Updating assesment data (Bot) (EssayImpact {__version__}", minor=False, bot=False, )
def write_table(text: str) -> None: page = pywikibot.Page( site, "Wikipedia:WikiProject Wikipedia essays/Assessment/Links") utils.save_page( text=text, page=page, summary=f"Updating assesment table (Bot) (EssayImpact {__version__}", minor=False, bot=False, )
def main(): utils.check_runpage(site, "redwarnusers") data = run_query() table = make_table(data) page = pywikibot.Page(site, "User:AntiCompositeBot/RedWarn users") utils.save_page( text=table, page=page, summary=f"Updating statistics (RWU {__version__}) (Bot)", mode="replace", bot=False, minor=True, )
def update_page( new_text: str, title: str, mass: bool = False, exp: bool = False, total: Optional[int] = None, ) -> None: """Saves new report to the appropriate page.""" title = "User:AntiCompositeBot/" + title if exp: title += "/expiring" if mass: title += "/mass" page = pywikibot.Page(site, title) # Replace everything below the Hosts header, but not above it top, sep, end = page.text.partition("== Hosts ==") text = top + new_text if total is None: summary = f"Updating report (Bot) (ASNBlock {__version__})" else: summary = f"Updating report: {total} ranges (Bot) (ASNBlock {__version__})" if simulate: logger.debug(f"Simulating {page.title(as_link=True)}: {summary}") logger.debug(text) else: utils.check_runpage(site, task="ASNBlock") try: utils.save_page( text=text, page=page, summary=summary, bot=False, minor=False, mode="replace", force=False, new_ok=False, no_change_ok=True, ) except Exception as e: logger.error("Page not saved, continuing", exc_info=e)
def create(self, date: datetime.date, throttle: Optional[acnutils.Throttle] = None) -> None: if not self.should_run(date): logger.debug( f"Skipping {self.title.template}, not on the schedule for {date.isoformat()}" ) return real_title = self.format(self.title, date) if not real_title.startswith("Category:"): real_title = "Category:" + real_title page = pywikibot.Page(site, real_title) if page.exists(): logger.debug( f"Skipping {self.title.template}, already exists {page.title(as_link=True)}" ) return real_text = self.format(self.text, date) if throttle: throttle.throttle() acnutils.check_runpage(site, "CatCron") # logger.debug(real_title) # logger.debug(real_text) acnutils.save_page( text=real_text, page=page, summary=("Creating daily/monthly maintenance categories " f"(CatCron {__version__})"), bot=True, minor=False, mode="replace", new_ok=True, )
def update_page_text(page: pywikibot.Page, target: str) -> None: new_text = string.Template("""#REDIRECT [[$target]] {{Redirect category shell| {{R from subpage}} }} """).substitute(target=target) summary = ( f"Redirecting to [[{target}]] per [[WP:DCS]] " "([[Wikipedia:Bots/Requests for approval/AntiCompositeBot 3|dcs_redir]] " f"{__version__})") if simulate: logger.debug(f"Simulating {page.title(as_link=True)}: {summary}") logger.debug(new_text) else: utils.save_page( text=new_text, page=page, summary=summary, bot=True, minor=True, mode="replace", )