예제 #1
0
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,
    )
예제 #2
0
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,
    )
예제 #4
0
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)
예제 #5
0
    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",
        )