Mediawiki 机器人找出最近几个小时的变化

Mediawiki bot to find out the changes of the last hours

要求:

我想使用一个机器人(mediawiki api 或直接数据库访问),找出最近几个小时所有页面的变化。我需要一个差异并想在之后处理文本。猜测正确的方向(上次编辑的差异)就足够了。我知道如何迭代页面。

背景:

我想处理差异以找出新的下载链接作为模板调用的一部分。对于这一步,我不需要帮助。

你可以使用pywikibot,这应该是一个(也许)好的开始:

from pywikibot import Site
from datetime import timedelta

my_site = Site(language, family) # Or set default site with pywikibot config file

# From this object you may get the changes by timestamp, pywikibot.Timestamp are datetime objects as well.
current_time = my_site.getcurrenttime()
my_site.recentchanges(start = current_time, end=current_time - timedelta(hours=6))

您可以迭代在过去 X (6) 小时内更改的页面,并且对于每个页面:

from pywikibot import Page

current_page = Page(my_site, page_title)  # Page title written in the recentchanges 
return object
revisions = current_page.revisions(total=some_number, content=True)

之后,您可以使用一些内部机制 api 来获取两个修订版之间的差异:

from pywikibot.diff import PatchManager

PatchManager(first_rev_text, second_rev_text).print_hunks()  # print_hunks is for interactive changes, but you can work with any internals api here (that might not be simple).

这不是您需要的完整代码,但您可以从这里开始工作并添加更多逻辑来解决您的问题, 祝你好运:)