Exemplo n.º 1
0
def mirroringAndModifyPages(srcFam, srcCode, dstFam, dstCode, pagesName,
                            categories, modifications, options):
    """Synchronize wiki pages from named page list
        and named categories list
    
    return the number of succes synchronized pages and files
    
  """

    # configure sites
    siteSrc = Site(fam=srcFam, code=srcCode)
    siteDst = Site(fam=dstFam, code=dstCode)

    # logging now to modify pages on dest
    siteDst.login()

    # disable slow down wiki write mechanics
    siteDst.throttle.maxdelay = 0

    # init pages to copy
    pages = pagesName

    nbMods = 0
    nbPagesSync = 0
    nbPagesUpload = 0

    # get pages in categories
    if (categories):
        pages.extend(getPagesTitleFromCategorie(siteSrc, categories))

    if (options["pagesSync"]):
        # copy all pages !
        (nbPagesSync, nbPagesUpload) = mirroringPagesWithDependances(
            siteSrc, siteDst, pages, options)

    if (modifications and options["modifyPages"]):
        nbMods = modifyPages(siteSrc, siteDst, pages, modifications)

    return (nbPagesSync, nbPagesUpload, nbMods)
Exemplo n.º 2
0
        page_protected.save()

        page_platzhalter = Page(self.wiki,
                                "Benutzer:THE IT/RE/Arthur Stein/platzhalter")
        page_platzhalter.text = self.join_lists(list_platzhalter)
        page_platzhalter.save()
        return True

    @staticmethod
    def join_lists(some_list) -> str:
        snippet = "]]\n* [["
        return f"* [[{snippet.join(some_list)}]]"

    @staticmethod
    def is_protected(lemma: Page) -> bool:
        protection_dict = lemma.protection()
        if "edit" in protection_dict.keys():
            if protection_dict["edit"][0] == "sysop":
                return True
        return False


if __name__ == "__main__":
    WS_WIKI = Site(code="de", fam="wikisource", user="******")
    WS_WIKI.login()
    with ArthurStein(wiki=WS_WIKI,
                     debug=False,
                     log_to_screen=True,
                     log_to_wiki=False) as bot:
        bot.run()