From 2e4e8740ebb09926846834f78c833321d635db77 Mon Sep 17 00:00:00 2001 From: klea Date: Sun, 17 May 2026 13:29:02 +0000 Subject: wikibot-manual(archivebot): Update in bulk It only writes to wiki pages it only should be changing, so avoid doing updates slowly and spamming #archiveteam-bs --- wikibot-manual/archivebot.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/wikibot-manual/archivebot.py b/wikibot-manual/archivebot.py index 7246a8d..ae8d656 100644 --- a/wikibot-manual/archivebot.py +++ b/wikibot-manual/archivebot.py @@ -30,6 +30,35 @@ import pywikibot.pagegenerators as pagegenerators from archiveteamfun import * + +#{{ stubbed out changes call, only valid if the page is only edited by the bot. +import atexit +BATCH_SIZE = 50 +pending_changes = {} +_original_save = pywikibot.Page.save +site = pywikibot.Site() + +def commit_pending_changes(): + global pending_changes + if not pending_changes: return + print('[Wiki] Submitting %s changes.' % (len(pending_changes))) + for title, data in pending_changes.items(): + page = pywikibot.Page(site, title) + page.text = data['text'] + _original_save(page, data['summary']) + print("[Wiki] Page [[%(title)s{title}]] updated with summary: %(summary)s" % {'title': title, 'summary': data['summary']}) + pending_changes.clear() + +def stub_save(self, summary = ""): + global pending_changes + pending_changes[self.title()] = {'text': self.text, 'summary': summary} + print("[Wiki Stub] Saved [[%(page)s]] locally with summary: %(summary)s" % {'page': self.title(), 'summary': summary}) + if len(pending_changes) >= BATCH_SIZE: commit_pending_changes() + +atexit.register(commit_pending_changes) +pywikibot.Page.save = stub_save +#}} + Entry = collections.namedtuple('Entry', ('sorturl', 'url', 'label', 'note', 'line')) truncationpattern = re.compile(r'^[^:/]+://(www\.)?') -- cgit v1.3.1-10-gc9f91