コード例 #1
0
def getUsersAndTimestamps(
        site: pywikibot.site.BaseSite,
        page: pywikibot.Page) -> Dict[str, pywikibot.Timestamp]:
    res = {}
    site.loadrevisions(page,
                       starttime=datetime(2019, 12, 2, 0, 0),
                       rvdir=True,
                       content=True)
    actualRevs = page._revisions.values()
    newText = None
    allUsers = set()
    for wikilink in pywikibot.link_regex.finditer(page.text):
        title = wikilink.group("title").strip()
        user = title[title.find(":") + 1:]
        allUsers.add(user)
    for rev in [x for x in actualRevs]:
        oldText = page.getOldVersion(rev.parent_id) if not newText else newText
        newText = rev.text
        addedText = newText[len(oldText):]
        for wikilink in pywikibot.link_regex.finditer(addedText):
            title = wikilink.group("title").strip()
            user = title[title.find(":") + 1:]
            if user in allUsers:
                res[user] = rev.timestamp
    return res